公司那台跑着网站和数据库的老服务器,上周半夜硬盘报警邮件炸出来三条——结果早上一看,MySQL已经挂了俩小时。别笑,这事儿真不少见。监控告警不是给大厂准备的奢侈品,普通用户装个轻量级工具链,就能提前掐住故障苗头。
先搞懂什么叫“工具链”
它不是单个软件,而是一串咬合运转的小工具:数据采集(比如每5秒抓一次CPU温度)、传输汇总(把几十台设备指标送到一起)、规则判断(“内存使用超90%就喊人”)、最后发通知(钉钉、微信、甚至手机短信)。环环相扣,少一环就容易漏报。
小团队/个人推荐组合
不用上Prometheus+Grafana全套,三样够用:
• 采集端:node_exporter(开源免费,支持Linux/Windows,一行命令就跑起来)
• 告警引擎:Alertmanager(专注做判断和去重,比如同一故障10分钟内只发1次微信)
• 通知出口:Webhook直连企业微信机器人,不用装APP、不翻墙、5分钟配好。
举个实操例子
想让服务器磁盘快满时自动发微信提醒?在Alertmanager配置里加这么一段:
rule_files:
- "rules/disk_full.yml"
route:
receiver: 'wechat'
receivers:
- name: 'wechat'
wechat_configs:
- api_url: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-key-here'
send_resolved: true再新建rules/disk_full.yml:
- alert: DiskUsageHigh
expr: 100 - (node_filesystem_free_bytes{mountpoint="/"} * 100 / node_filesystem_size_bytes{mountpoint="/"}) > 92
for: 5m
labels:
severity: warning
annotations:
summary: "根分区使用率超92%!"
description: "当前使用 {{ $value | printf "%.1f" }}%,请清理日志或扩容"保存后重启服务,下次df -h看到根分区飘红,手机微信立马弹窗——比自己定时ssh上去敲命令靠谱多了。
别踩这些坑
• 时间不同步:所有机器必须校准NTP,否则告警时间乱套;
• 规则写太狠:“CPU>80%就告警”,结果备份任务一跑就狂震,改成“持续5分钟>80%”更稳;
• 忘关测试通知:调试完记得删掉测试群的Webhook,不然半夜改配置,老板群先收到三条“test alert”。
工具链不是越重越好,能让你睡安稳觉、故障前10分钟收到消息,就算搭对了。