用 Prometheus + Grafana 搭建一套可用的服务监控
「服务挂了半小时才发现」是每个运维的噩梦。搭建一套监控并不需要很多成本,Prometheus + Grafana 这套开源组合,一个下午就能跑起来。
架构
- Prometheus:定时拉取各服务的指标数据并存储
- node_exporter:采集主机层面的指标(CPU、内存、磁盘、网络)
- Grafana:指标可视化与告警通知
快速上手
docker run -d -p 9090:9090 prom/prometheus
docker run -d -p 9100:9100 prom/node-exporter
docker run -d -p 3000:3000 grafana/grafana
在 Prometheus 配置里把 node_exporter 加为 scrape target:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
先监控哪些指标
新手别贪多,先把这几类做扎实:
- CPU 使用率、负载
- 内存使用量与可用量
- 磁盘使用率(尤其根分区)
- 网络流量与连接数
- 服务进程存活状态
告警要「少而准」
告警太多会让人麻木。建议从几条核心规则开始:磁盘使用率 > 85%、内存可用 < 10% 持续 5 分钟、服务进程 down。让每条告警都有明确的可执行动作。
小结
监控的价值不在于装了多少工具,而在于「问题发生前预警、发生后快速定位」。先跑起来,再逐步完善。