服务器运维到底要学哪些东西?从装系统到看监控,一条条拆开说

2026-10-03 19:38 1003 次浏览

第一次拿到一台独立服务器,root 密码发过来,很多人打开 SSH 敲完 ls 就停住了。系统是装好的,可接下来该干什么、先看哪里、出了问题从哪查,没人告诉过你。运维这件事被说得玄乎,其实拆开就是几个固定动作:知道机器现在什么状态,知道出问题时去哪找线索,知道改坏了怎么退回去。把这三件事练熟,剩下的都是查手册。下面按接手一台新机器之后的实际顺序讲,每一步都给能直接敲的命令。

开机第一件事:确认系统版本和网络通不通

别急着装软件。先敲 cat /etc/os-release,确认是 CentOS 7、Debian 12 还是 Ubuntu 22.04。不同发行版的包管理命令完全不同,用错一个字母后面全乱。我一般会把这个输出记在便签里,重装系统之后对一下。

接着看网络。ip addr 看网卡有没有拿到 IP,ping -c 4 8.8.8.8 看外网通不通,再 ping -c 4 www.baidu.com 看 DNS 解析正不正常。这两条能区分是链路断了还是 DNS 配错了,排查方向完全不同。

最后确认防火墙状态。systemctl status firewalld 或者 ufw status,看 22 端口是不是放行的。不少人装完系统连不上,就是因为防火墙把 SSH 挡了,还得进 VNC 控制台救。

看负载和内存:别只看数字,要看它卡在哪

top 是最常用的,但很多人只盯着 CPU 百分比。我的习惯是先看第一行的 load average 三个数字,分别代表过去 1 分钟、5 分钟、15 分钟的平均负载。如果 1 分钟的值远高于 15 分钟的,说明负载正在往上冲,得马上查是哪个进程。

再按 M 按内存排序,看 RES 这一列。一个 Java 进程吃掉 8G 很常见,但如果一个 php-fpm 子进程吃 2G,那多半是代码里有内存泄漏。内存这块关键看 available 而不是 free,free 里的 buff/cache 是可回收的,不用慌。

磁盘 IO 用 iostat -x 1,重点看 %util 这个值。持续超过 80% 说明磁盘快跑满了,这时候加 CPU 没用,得换 SSD 或者把日志挪到别的盘。我见过不少机器卡顿,最后查出来是 MySQL 的 binlog 和网站日志写在同一个盘上互相抢 IO。

磁盘和日志:出问题之前先留出退路

df -h 每周至少看一次。/ 分区用到 80% 就该处理,到 95% 很多服务会直接写不进去然后崩掉。常见的占空间大户是 /var/log 和 Docker 的 /var/lib/docker。

日志别只靠 tail,用 journalctl -u 服务名 --since "1 hour ago" 能按时间过滤。更省事的做法是配 logrotate,让系统自己按天切割、保留 7 天、超期删除。这条配置写一次,能省掉后面无数次手动清理。

备份要单独说。本地备份和机器一起挂掉等于没备,异地备份才是真的。哪怕只是每天 mysqldump 导一份推到另一台机器,也比什么都不做强。这部分花的时间平时看不见,出事那天能救命。

  • df -h:查各分区使用率,超过 80% 就该清理
  • du -sh /*:从根目录往下找是谁占的空间
  • journalctl -u nginx:按服务看日志,比翻文件快

防火墙、SSH 和权限:把门关好再谈优化

默认的 22 端口每天被扫几百次是常态。改端口、禁用密码登录、只留密钥,这三步做完能挡掉绝大多数暴力破解。改之前务必先确认密钥能登录,再关密码,否则容易把自己锁在外面。

权限上,网站目录给 www 用户,别用 root 跑 PHP。数据库只监听 127.0.0.1,需要远程连就单独开白名单。这些设置不影响性能,但决定了机器被攻破之后损失有多大。

如果业务本身跑在物理机上,选一台带独立 IP 和充足带宽的独立服务器,安全策略能做得更干净。像 西雅图物理服务器5 这类 E5-2680*2 / 32G / 100M 的配置,月付 $129.00,跑中小型站点和自建监控足够,机器在自己手里,端口和权限怎么设都由你定。

什么时候该上监控,什么时候还不用

一两台机器,靠 SSH 和几个脚本就能盯住。机器上了五台以上,或者业务不能接受几分钟的停机,就该上监控了。Zabbix、Prometheus 这些工具本身不难,难的是想清楚要监控什么。

我的判断标准很简单:凡是出问题会导致用户投诉的指标,都要监控。CPU 持续 90%、内存耗尽、磁盘写满、网站返回 502、证书还有 7 天过期,这几项覆盖了日常八成故障。告警发到手机,半夜能响,比看板做得漂亮重要得多。

刚入门的人不用一上来就搭全套。先手动敲命令,把每台机器的正常状态记下来,知道健康时长什么样,出问题才认得出异常。命令敲熟了,再交给工具自动化。运维的底子是判断力,工具只是放大器。