雨云云监控与告警实战:Prometheus+Grafana搭建全栈监控面板

Prometheus 拉指标 + Grafana 出面板 + Alertmanager 推告警,机器状态一目了然
发布于
2

跑了几台雨云云服务器之后最烦的是什么?不是部署,是不知道哪台出问题了——CPU 飙了赶在用户投诉前发现、磁盘快满了自己先知道、Nginx 502 谁先报警。Prometheus 负责拉指标和告警,Grafana 负责画图给人看,一套组合拳下来,机器出问题你比用户更早知情。

一、为什么选 Prometheus + Grafana

用 Shell 脚本看 top/free/df 也能知道自己机器怎么样,但跨多台机器、看历史趋势、设阈值告警就费劲了。Prometheus 是 CNCF 毕业项目,生态成熟;Grafana 是事实上的监控可视化标准。两者在雨云云服务器上跑,入门配置不到半小时。

二、在雨云上安装

# Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
tar xzf prometheus-*.tar.gz
cd prometheus-*
# 后台启动
./prometheus --config.file=prometheus.yml &

# Grafana(直接装 deb 包)
apt install -y software-properties-common
add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
apt update && apt install grafana
systemctl enable grafana-server
systemctl start grafana-server

Grafana 默认监听 3000 端口,浏览器打开 http://雨云IP:3000,默认账号 admin/admin,首次登录强制改密码。安全起见,安全组只放行你的 IP 访问 3000 端口。

三、Node Exporter 采集系统指标

每台被监控的雨云机器上装 node_exporter:

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar xzf node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter &

默认监听 9100 端口,暴露 CPU、内存、磁盘、网络等 1000+ 指标。然后在 Prometheus 的配置文件里加一条 scrape 目标。同节点内网 IP 互访免费,省流量。

四、MySQL 与 Nginx 指标采集

MySQL 用 mysqld_exporter,Nginx 先开启 stub_status,再用 nginx-prometheus-exporter 把 Nginx 状态转成 Prometheus 格式。这样数据库的连接数、慢查询、Nginx 活跃连接数都进面板了。

五、Grafana 面板与常用看板

Grafana 配好 Prometheus 数据源后,直接导入社区模板:

  • Node Exporter Full(ID 1860):系统全景面板
  • MySQL Overview(ID 7362):MySQL 性能面板
  • Nginx(ID 11199):Nginx 流量面板

不用自己画图,社区模板拿来调一调就能用。把关键指标(CPU/内存/磁盘使用率、QPS 曲线)钉在首页,扫一眼就知道机器状态。

六、告警规则与通知

监控最大的价值不是看图表——是出问题先知道。在 Prometheus 里配告警规则:

CpuHigh: expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m]))*100) > 80 for: 5m
DiskFull: expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes)*100 < 10 for: 1m

Alertmanager 接到告警后推送到企业微信/钉钉机器人、邮件,Alertmanager 是 Prometheus 生态里的告警分发组件,去重、分组、抑制都它管。

如果觉得 Prometheus 告警规则(PromQL)上手慢,Grafana 内置的 Alerting 也可以直接在面板上设阈值做告警,对入门更友好。

七、雨云部署建议

雨云新购用优惠码 admin01 走专属入口 https://www.jiyueip.com/link/5617 五折。Prometheus + Grafana 本身吃内存(TSDB 时序数据和 Grafana 渲染),建议用一台独立的小机器跑,和被监控业务机分开。如果只有一两台机器,2 核 4G 够跑全套;机器多了按 Prometheus 存储量线性加配置。

八、几个注意点

  • Prometheus 默认拉取间隔 15s,数据保留 15 天,调大保留期要加 –storage.tsdb.retention.time 参数;
  • 别把 Prometheus 和 Grafana 公网裸奔——安全组锁 IP + 反代加基础认证;
  • 告警风暴(一台机器挂了触发几十条)用 Alertmanager 的 group_by 和 repeat_interval 控制,别手机被刷屏。

常见问题

关于在雨云上搭建监控的常见疑问,下面一并解答。

常见问题(FAQ)

Prometheus 和 Grafana 装一起还是一台一台装?
建议 Prometheus + Grafana 装在单独一台监控机器上(与被监控业务机分开),每台被监控机器只装 node_exporter(极轻量)。这样监控挂了不影响业务,业务挂了监控还能报。
告警规则怎么配不会误报?
加 for 持续时间(如 CPU>80% 持续 5 分钟才告警),设合理阈值,group_by 合并同类告警,避免短暂毛刺触发。Grafana Alerting 对入门更友好。
雨云 2 核 4G 能跑这套监控吗?
几台机器规模完全够。Prometheus 主要吃内存(时序数据),Grafana 吃 CPU(渲染),2 核 4G 监控十来台机器没问题。
监控数据保留多久?
Prometheus 默认 15 天,可按需调大(--storage.tsdb.retention.time),但长期趋势分析建议配合 Thanos/VictoriaMetrics 或把数据推到 Grafana Loki。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600