从一台裸机开始:服务器运维要练的几手基本功

2026-10-01 13:45 1011 次浏览

第一次拿到 root 权限的人,最容易犯的错不是命令敲错,而是不知道哪一步会把机器弄挂。远程重启网卡、随手改 sshd 端口、磁盘写满后还往里灌日志,这些操作在本地虚拟机上无所谓,放到一台在跑的独立服务器上就是事故。运维要练的不是记住多少命令,而是建立一套判断:哪些改动安全、哪些改动必须留后路、机器出问题时先看哪一项。这篇按从开机到稳定运行的顺序,把几个真正用得上的基本功讲清楚。

开机之后先做三件事,别急着装环境

很多人拿到机器第一反应是装宝塔、装 Docker,环境跑起来再说。顺序反了。系统层面的基线没打好,后面每加一个服务都在给自己埋雷。

我一般会先确认三件事。第一件是时间同步,服务器时间漂移会让日志对不上、证书校验失败、定时任务乱跑,装个 chrony 或 ntpd 保持同步,成本几乎为零。第二件是磁盘分区规划,系统盘和数据盘分开,日志单独挂一个分区,这样日志写爆的时候不会把根分区一起带走。

第三件是 SSH 加固。改默认端口、禁用密码登录只留密钥、限制重试次数,这三步做完,机器被暴力破解扫描的概率会下降一大截。注意改端口之前先确认防火墙放行了新端口,否则下一次就登不上了。

  • 时间同步:chrony / ntpd,偏移超过 1 秒就该查
  • 分区规划:/var/log 独立挂载,给 20G 以上
  • SSH:改端口 + 密钥登录,改完先用另一个终端验证再退出

真正要盯的指标,其实只有几个

监控面板上几十个曲线,新手容易看花眼。按我的经验,日常真正需要盯的是四类:CPU 的 load average、内存的 available 而不是 free、磁盘的 IO 等待和剩余空间、网络连接数。

load average 超过核数就说明有排队,但要注意它包含不可中断的 IO 等待,磁盘慢的时候 CPU 看起来不忙 load 也会高。内存看 free 会误判,Linux 会把空闲内存拿去做缓存,available 才反映真实可用量。磁盘空间要设阈值告警,80% 就该处理,写满之后再清理往往来不及。

连接数这块,netstat 或 ss 看到的 TIME_WAIT 数量是判断服务健康的重要信号。短连接服务 TIME_WAIT 堆积到几万,新连接就可能被拒绝,这时候调内核参数或者上连接池比加机器管用。

这些指标配好告警之后,大部分故障在用户感知之前就能发现。省下的是半夜被电话叫醒的次数。

出故障时的排查顺序,比工具更重要

机器变慢或者服务不可用,新手容易一上来就重启。重启能解决一部分问题,但把现场也一起清掉了,同样的故障下次还会来。我自己的顺序是先看现象再动手。

第一步确认范围:是单台机器还是整个机架,是某个服务还是所有服务。如果所有服务都慢,问题多半在系统层或网络层;如果只有一个服务异常,去看它的日志和资源占用。

第二步看资源:top 或 htop 看谁在吃 CPU,iostat 看磁盘是不是打满了,free 看有没有触发 OOM。第三步看日志:系统日志看内核和硬件报错,应用日志看异常堆栈。这三步走完,八成的问题能定位到具体进程。

这里有个取舍:要不要保留现场做深度分析。如果业务在跑、用户在投诉,先恢复服务再复盘;如果是内部系统、影响面小,可以留着现场慢慢查。判断标准是业务损失和排查收益哪个大。

选机器的时候也可以把这个考虑进去。像香港大带宽服务器 XXVII,Platinum-8168*2 配 64G 内存、100M 带宽,月付 $913.50,配置给得比较足,跑多个服务时资源不会互相挤,排查问题时也更容易分清是谁的问题。如果只是跑几个轻量服务,这个配置就偏浪费了,一台 16G 的机器足够。

备份和演练,是运维里最不性感但最保命的部分

备份这件事,做了不等于有用。常见的情况是备份脚本跑了半年,真出事要恢复的时候发现备份文件是空的,或者恢复流程根本跑不通。

我的习惯是备份完必须验证:随机抽一个文件恢复出来对比,每季度做一次完整的恢复演练。演练会发现很多平时想不到的问题,比如依赖的某个包版本变了、恢复脚本里的路径写死了、备份窗口和业务高峰撞上了。

成本上,备份占用的存储和带宽是实打实的支出,但和丢数据的代价比,这笔钱省不得。真要说省,可以省在保留周期上:日备保留 7 天、周备保留 4 周,比无脑保留 90 天要省不少空间。

最后给个可直接执行的结论。刚上手的机器,先按上面三件事打基线,再配好四类告警,然后写一份恢复流程并演练一次。机器选型上,跑几个轻量服务 16G 内存够用,多服务混跑或者有数据库,直接上 64G 起步,像前面提到的那款香港大带宽机型就属于这一档。别在配置上抠,运维的坑多数不是性能不够,而是余量不足导致一个小问题连锁成大故障。