公司刚上线的新业务,老板天天问服务器稳不稳,流量有没有异常。你总不能每次都登录后台查日志吧?这时候,一个直观的网络监控仪表盘就显得特别实用。它就像汽车的仪表盘,一眼就能看出当前系统的“心跳”和“油量”。
明确你要监控什么
别一上来就装工具。先想清楚你关心哪些指标。比如你们做电商,那网站响应时间、订单接口成功率、带宽使用率可能就是重点。如果是做视频直播的,CDN节点延迟、丢包率就得盯着。常见的监控项包括:
- 服务器CPU、内存、磁盘使用率
- 网络出入流量、连接数
- 关键服务状态(如MySQL、Redis是否存活)
- 应用层面的API响应时间、错误率
选一套趁手的工具组合
市面上有不少现成方案,Zabbix、Prometheus + Grafana 是用得比较多的组合。如果你团队技术能力偏弱,Zabbix 图形化做得不错,上手快。如果追求灵活性和高性能,Prometheus 配合 Grafana 做可视化更受青睐。
拿 Prometheus 举例,它通过定时抓取目标(exporter)暴露的指标数据。比如你想监控一台Linux服务器,得先在那台机器上跑 node_exporter。
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.6.0.linux-amd64.tar.gz
cd node_exporter-1.6.0.linux-amd64
./node_exporter &
启动后,默认会在 :9100 端口提供指标,访问 http://你的IP:9100/metrics 就能看到一堆文本格式的数据,比如 cpu_usage_guest、node_memory_MemAvailable_bytes 这类。
配置Prometheus抓取数据
编辑 prometheus.yml 文件,在 scrape_configs 下加一段:
scrape_configs:
- job_name: 'linux-server'
static_configs:
- targets: ['192.168.1.100:9100']
保存后重启Prometheus,打开它的Web界面(默认9090端口),在 Graph 标签页输入 node_memory_MemAvailable_bytes,就能看到内存变化曲线了。
用Grafana画出好看的图表
Prometheus自带的图太简陋,这时候上Grafana。安装好后,添加Prometheus作为数据源,地址填 http://localhost:9090。然后新建一个 Dashboard,点 Add Panel。
在 Query 里写上 PromQL 表达式,比如:
100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100
这表示内存使用率百分比。设置好图例、单位(选 %),换成面积图或仪表盘样式,整个面板立刻清爽多了。你可以继续加 CPU 使用率、负载、磁盘IO 的面板,拖拽排版,最后得到一个属于你们业务的专属监控大屏。
别忘了告警设置
光看着不够,真出问题得有人知道。在Grafana里每个Panel都可以设 Alert 规则。比如内存使用超过85%持续5分钟,就触发告警。通知方式可以接邮件、钉钉、企业微信机器人。举个钉钉的例子,先在群聊里加个自定义机器人,获取 webhook 地址,然后在Grafana的 Alert Notification 里配置进去。
<!-- 钉钉机器人消息模板示例 -->
{
"msgtype": "text",
"text": {
"content": "【告警】{{ .Status }}: {{ .Labels.job }} 实例内存过高!当前值:{{ .Value }}"
}
}
这样一旦触发,群里就会跳出消息,值班同事马上能处理。
小团队也能玩起来
不是非得上高大上的方案。如果你就管几台VPS,用 Uptime Kuma 这类轻量工具也行。它部署简单,一个命令就能跑起来,支持HTTP、Ping、DNS等监测,页面自带简洁仪表盘,还能手机推送通知。适合个人站长或者小项目过渡使用。
关键是把核心指标可视化出来,让信息透明。哪怕最开始只是几个数字加折线图,也比每次手动查强得多。随着业务增长,再逐步升级架构也不迟。