服务器状态这件事,平时没人会一直盯着,但出了问题第一个念头就是“它到底还活着吗”。最直接的办法是ping一下。打开终端或者命令行,敲个ping加IP或者域名,看有没有回包。通了说明网络层是活的,但别高兴太早,ping通只代表机器没彻底断网,上面的服务是不是正常跑着,它不管。有时候ping延迟突然飙高或者丢包,也能说明网络链路在抖,这算是个初步的信号。
能SSH上去的话,事情就好办多了。登进去先敲uptime,看看负载和运行时间。如果负载数字比CPU核心数还高,那机器已经在拼命干活了,得留个心。接着top或者htop扫一眼,哪个进程在吃CPU、谁在占内存,一目了然。htop比top好看,颜色和进度条更直观,装一个不亏。内存用free -h看一眼,重点看available那一列,别被buff/cache吓到,Linux会拿空闲内存做缓存,看着用得挺多,实际上随时能释放。磁盘用df -h,根分区或者数据分区是不是快满了,满了的话服务随时可能写不进去日志然后崩掉。

网络层面的状态,ss -tunlp能列出当前监听的所有端口和对应的进程。想知道谁在连你的服务器,netstat -an | grep ESTABLISHED也能看个大概。流量方面,iftop或者nload可以实时看每张网卡的进出带宽,跑个下载或者压测的时候观察一下有没有跑满。磁盘IO如果怀疑是瓶颈,iostat -x 1 看一眼各个盘的util和await,数字高得离谱就说明盘扛不住了。
日志也是状态的一部分。journalctl -u 服务名 -f 能实时追某个服务的日志,或者直接tail -f /var/log/下面的文件。不过日志量大,别一股脑全翻,先看最近的错误行,grep一下ERROR或者WARN,效率更高。
不想每次都SSH的话,装个面板能省不少事。宝塔、1Panel、Cockpit这些,浏览器打开就能看到CPU、内存、磁盘、网络的实时曲线,还能一键重启服务、查看进程、管理文件。适合不想记命令的人,或者团队里有人不熟命令行。面板本身也占资源,小内存机器装之前掂量一下。
云服务器的话,控制台自带的监控是最省心的。阿里云、腾讯云、AWS这些,控制台里都有CPU使用率、内存、网络进出、磁盘读写的基础图表,还能设告警规则,超过阈值发短信或者邮件。缺点是有时候监控数据有延迟,粒度也粗,但日常看一眼够用了,而且不需要登录到服务器里面。
再专业一点就上监控系统。Prometheus加Grafana是现在比较流行的组合,采集各种指标存起来,画成仪表盘,还能设复杂的告警规则。Zabbix更老牌,功能全但配置重一些。Netdata的特点是开箱即用,装完就能看到一个很花哨的实时面板,每秒钟刷新,适合喜欢即时反馈的人。这些系统部署起来有点门槛,但一旦跑起来,历史趋势和告警就能帮你提前发现问题,而不是等用户投诉了才知道。
如果你只关心网站或者某个API是不是可访问,在线监控服务更直接。UptimeRobot、监控宝、阿里云站点监控这些,你填一个URL,它每隔几分钟发个请求,返回码不对或者超时就通知你。免费套餐一般够个人用,不用自己维护任何东西。
硬件层面的状态,服务器一般都有带外管理口,IPMI、iDRAC、iLO这些名字。浏览器登录进去,温度、风扇转速、电源状态、硬盘健康、内存报错,全都列得清清楚楚。还能远程开关机、挂载ISO装系统。硬盘快挂了、风扇不转了、电源有点异常,这些信息操作系统里不一定看得到,但管理口能提前告诉你。很多硬件故障都是从这里最早发现苗头的。
手机上看服务器状态也有工具。Termius、ServerCat、JuiceSSH这些,连上去敲命令,或者用云服务商的App看监控图表。应急的时候掏手机看一眼,比到处找电脑强。不过手机屏幕小,复杂操作还是得回电脑上。
说到底,用哪种方法看你的场景。个人小服务器,ping一下,SSH进去top和df看两眼,基本就摸清了。企业线上环境,监控系统加硬件管理口是标配,日常值班看面板,告警响了再深入排查。别等出事了才想起来看,平时养成瞄一眼的习惯,很多问题在变成故障之前就有征兆。