前两天朋友老张打电话来吐槽:公司那台跑了三年的 CentOS 服务器突然卡死,网站打不开,客户投诉电话都快爆了,他翻了半天日志才发现是磁盘满了——可没人提前告警。
别等出事才想起来看监控
其实不用花大几千买商业监控系统。现在有一堆成熟、稳定、能直接上手的开源服务器监控软件,装好就能盯 CPU、内存、磁盘、网络,还能发微信/邮件告警,连树莓派都能跑。
Zabbix:老牌全能选手,适合想自己掌控全局的人
Zabbix 跑了十几年,社区活跃,文档全,中文资料也多。支持自动发现主机、自定义监控项、图形化报表,连 JVM、MySQL、Nginx 都有现成模板。
一键部署(基于 Docker):
docker run -d --name zabbix-server \ -p 10051:10051 \ -e DB_SERVER_HOST="mysql" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \  --restart unless-stopped \  zabbix/zabbix-server-mysql:alpine-6.0.23装完打开 http://your-ip:8080,默认账号 Admin / zabbix,三分钟就能看到本机 CPU 曲线。
Prometheus + Grafana:云原生时代新宠,图好看还灵活
如果你用 Docker 或 Kubernetes,Prometheus 几乎是默认选择。它不靠 Agent,而是主动“拉取”指标(比如 Node Exporter 暴露的 /metrics 接口),数据存在本地 TSDB,写规则也简单。
在 Linux 主机上跑 Node Exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztar xvfz node_exporter-1.6.1.linux-amd64.tar.gz./node_exporter &然后浏览器访问 http://localhost:9100/metrics,就能看到 raw 指标,比如 node_memory_MemAvailable_bytes 7234560000。
再配个 Grafana,导入 ID 1860 的「Node Exporter Full」仪表盘,CPU、IO、负载一目了然,颜色清爽,老板路过都会多看两眼。
Netdata:秒级响应,装上就动,适合单机快速诊断
Netdata 是个“即插即用”的狠角色。一行命令安装,3 秒启动,自带 Web 界面,每秒刷新一次数据,滑动鼠标就能拖拽查看历史。特别适合排查突发抖动——比如某次 rsync 备份把 IO 打满,它立刻标红高亮。
Ubuntu/Debian 上执行:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)完成后访问 http://your-server:19999,不用配置、不用数据库,连 SQLite 都不依赖。
其他实用选择
Monit:轻量到只有几 MB,适合老旧 VPS 或嵌入式设备。配置文件像写句子:check process nginx with pidfile /var/run/nginx.pid,挂了自动重启。
Cacti:老牌 RRDtool 图形工具,适合习惯画趋势图的老运维,界面土但稳,十年不崩。
怎么选?看这三点
• 就一台阿里云 ECS,想马上知道硬盘快满了?Netdata 最省事;
• 公司十几台机器,还要监控中间件和业务接口?Zabbix 或 Prometheus 更靠谱;
• 服务器资源紧张(1G 内存以下)?试试 Monit,吃不到 10MB 内存。
所有软件都开源免费,GitHub 上 star 过万,社区有人答疑,文档有中文翻译。别再靠手动 top、df、netstat 查问题了——让机器自己盯着,你该去喝杯咖啡了。