维护Linux服务器,核心目标就是保证业务稳定,避免关键时间服务器故障。系统安装、基础服务配置完成,仅仅只是起步,后续长期运维工作才是重点。
日常上班第一件事查看监控面板,观察CPU长期占用是否持续高于90%,内存有没有进程悄悄耗尽,磁盘根分区剩余容量。负载偏高不一定代表故障,但持续高负载就需要排查。一部分运维习惯手动执行top、free、df三条命令巡检,也有团队依靠Zabbix、Prometheus接收告警。工具选择没有硬性要求,核心是不要等到用户反馈网站打不开,才发现服务器异常。
系统漏洞补丁不能拖延,内核、OpenSSL、sudo这类漏洞会不断爆出。生产服务器不能随意重启,补丁更新需要规划流程,先在测试环境验证,确认无问题再滚动上线。CentOS迁移Rocky Linux、Ubuntu LTS大版本升级,这类操作要提前排期,尽量不要周五下午修改生产服务器,这是很多运维踩坑总结的经验。

备份不等于单纯复制文件到另一块硬盘,数据库需要逻辑备份搭配物理备份,配置文件单独留存,重要数据建议异地存放。备份完成之后,必须做恢复测试,没有验证过恢复能力的备份,等同于没有备份。不少事故案例里,运维到故障发生才发现备份脚本权限异常,备份任务早就失效。
安全配置方面,SSH登录尽量关闭密码认证,密钥登录叠加二次验证防护效果更好。定期复核防火墙规则,不要开放3306端口对公网。SELinux配置繁琐,但条件允许建议开启。定期清理账户,离职员工账号、临时测试账号及时删除,sudo权限遵循最小分配原则,不要直接开放root权限。部署Fail2ban、AIDE这类入侵检测工具,能降低被暴力破解风险。
日志需要定期查看,不用逐行阅读,清楚日志存放位置就行。/var/log/messages、/var/log/secure、journalctl为系统日志,应用日志单独存放。配置日志轮转策略,防止日志文件占满磁盘空间。故障排查时,日志是首要排查线索。
磁盘与文件系统持续监测,inode耗尽和磁盘空间满是两类不同故障,df -i指令查看inode使用情况。LVM支持在线扩容,但前提是卷组留有空闲空间。RAID电池、硬盘SMART硬件信息,可以通过IPMI带外管理查看。硬盘损坏一般会提前出现告警,不要等到硬盘彻底故障再更换。
性能调优不需要天天操作,但要清楚业务瓶颈。数据库、Web服务、消息队列,各自瓶颈位置不一样。修改内核参数、文件描述符上限、TCP backlog、IO调度器之前,提前做压力测试,不要直接照搬网上现成sysctl.conf配置,不同业务环境直接套用容易引发问题。
现在服务大多使用systemd管理,配置开机自启、服务依赖、资源限制。定时任务crontab做好管理,避免脚本高频执行持续写入日志。整理中间件版本、SSL证书到期清单,证书到期前及时续签。
账户权限管理和安全工作关联紧密,LDAP、AD统一认证会简化管理,本地账户同样不能随意配置。设置密码策略、登录失败锁定、会话超时。权限只分配业务必需范围,开发人员需要sudo权限,不要直接授予ALL权限。
网络故障很多时候和服务器本身无关,需要区分是应用卡顿还是网络问题。熟练使用tcpdump、ss、netstat、mtr排查网络。防火墙规则变更走审批流程,不要直接执行iptables -F清空策略。
硬件维护需要监测温度、风扇、电源状态,云服务器运维压力更小,物理机要关注硬件故障。机房断电、网卡损坏、内存ECC报错都属于紧急故障,提前配置带外管理口,服务器失联之后不用去机房本地操作。
文档和资产记录经常被忽略,但人员交接或者隔很久回头排查问题,文档缺失会增加排查难度。记录服务器用途、IP地址、运行服务、依赖组件、变更记录。Ansible、SaltStack自动化工具,批量操作减少手动工作量。脚本增加注释,不要编写只有自己看得懂的代码。
岗位职责在大小公司差异明显,小型团队运维一人包揽系统、网络、数据库工作;大型团队岗位拆分,系统管理员负责操作系统和硬件,DBA管理数据库,安全团队维护安全策略,网络团队处理交换机路由。不管分工如何,几个通用准则不变:所有变更做好记录,故障完成复盘,提前评估资源容量,安排值班。运维不只是故障救火,日常巡检、演练、容量评估,提前规避故障,减少突发事故。故障发生优先恢复业务,再定位根因,最后输出复盘文档,避免同类问题重复出现,就算做好了。
Linux服务器运维没有万能方案,依靠长期琐碎的日常操作维持稳定。服务器平稳运行的时候,运维的工作很难被感知,一旦停机,所有业务相关人员都会来找运维,这就是这份工作的特点。