news 2026/9/11 19:10:10

【Prometheus + Alertmanager + Grafana 监控平台部署】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Prometheus + Alertmanager + Grafana 监控平台部署】

Prometheus + Alertmanager + Grafana 监控平台部署

说明:本文只记录部署操作步骤配置要点。安装包内已提供的文件(docker-compose.yamlprometheus.ymlalerts/*.ymlnode_targets.jsonalertmanager/config.ymlinstall_node_exporter.shnode_exporter.service)不再重复列出内容,按需修改即可。


一、组件与端口

组件作用端口
Prometheus采集、存储、告警规则判定9090
Alertmanager告警去重/分组/路由到飞书9093
Grafana可视化,数据源对接 Prometheus3000
node_exporter部署在被监控主机,暴露系统指标9100

数据流:

node_exporter(:9100) ──拉取──> Prometheus(:9090) ──告警──> Alertmanager(:9093) ──webhook──> 飞书中转服务 ──> 飞书群 │ └──数据源──> Grafana(:3000)

二、目录结构

. ├── alertmanager │ └── config.yml ├── docker-compose.yaml ├── grafana │ └── grafana_data └── prometheus ├── prometheus_config │ ├── alerts │ │ ├── blackbox_alerts.yml │ │ ├── kafka_alerts.yml │ │ ├── milvus_standalone_rule.yml │ │ └── rules.yml │ ├── node_targets.json │ └── prometheus.yml └── prometheus_data

三、部署前准备:目录权限

三个组件在容器内均以非 root 用户运行,宿主机挂载目录属主不一致会直接导致启动失败。

组件容器内数据目录运行 UID:GID
Prometheus/prometheus65534:65534(nobody)
Alertmanager/alertmanager65534:65534*
Grafana/var/lib/grafana472:0(grafana:root)

执行

# Prometheuschown-R65534:65534 prometheus/chmod-R755prometheus/# Alertmanager(UID 以上面自查结果为准)chown-R65534:65534 alertmanager/chmod-R755alertmanager/# Grafanachown-R472:0 grafana/chmod-R755grafana/

需要 root 执行,命令前加sudo


四、启动

docker-composeup-d

验证

dockercomposeps# 三个服务均应为 Updockerlogs-fprometheusdockerlogs-falertmanagerdockerlogs-fgrafana

访问地址

地址用途
http://<IP>:9090Prometheus UI
http://<IP>:9090/targets查看采集目标状态(应为 UP)
http://<IP>:9093Alertmanager UI
http://<IP>:3000Grafana

若端口打不开,检查防火墙是否放行 9090 / 9093 / 3000。


五、Grafana 配置

5.1 登录

访问http://<IP>:3000,默认用户名密码admin / admin首次登录强制修改密码

5.2 添加数据源

Connections → Data sources → Add data source → Prometheus

  • Prometheus server URL填:http://prometheus:9090
  • 其余保持默认,点Save & test,提示Successfully queried the Prometheus API即通。

不要填localhost:9090—— Grafana 容器内的 localhost 指向它自己,连不通。

5.3 导入仪表盘

Dashboards → New → Import→ 填入 ID1860→ Load → 选择 Prometheus 数据源 → Import。

其他常用仪表盘:

Dashboard ID说明
1860Node Exporter Full(推荐)
11074Node Exporter for Prometheus Dashboard
3662Prometheus 2.0 Overview

六、安装 node_exporter(被监控主机)

安装包已提供:

. ├── install_node_exporter.sh ├── node_exporter-1.9.1.linux-amd64.tar.gz └── node_exporter.service

被监控主机上执行:

chmod+x install_node_exporter.sh ./install_node_exporter.sh

安装后验证(在被监控主机上):

systemctl status node_exportercurl-shttp://localhost:9100/metrics|head-5

需放行 9100 端口,且仅允许 Prometheus 主机访问:

firewall-cmd--permanent--add-rich-rule='rule family="ipv4" source address="<Prometheus主机IP>/32" port port="9100" protocol="tcp" accept'firewall-cmd--reload

七、添加 / 移除监控节点

  1. 目标主机安装 node_exporter(见第六章)。
  2. 编辑prometheus/prometheus_config/node_targets.json,按已有格式追加主机。
  3. node_targets.json无需任何操作,文件服务发现会自动加载。
  4. prometheus.yml主配置(如新增 job)才需要重载:
curl-shttp://localhost:9090/-/reload-XPOST

配置校验

# 主配置语法dockerexecprometheus promtool check config /etc/prometheus/prometheus.yml# 告警规则语法dockerexecprometheus promtool check rules /etc/prometheus/alerts/rules.yml

八、Alertmanager 配置飞书告警

编辑alertmanager/config.yml,在receivers中把 webhook 地址指向中转服务

receivers:-name:'feishu'webhook_configs:-url:'http://<中转服务IP>:<端口>/alert'send_resolved:true

为什么需要中转:Alertmanager 发出的 JSON 结构与飞书自定义机器人要求的{"msg_type":"text","content":{"text":"..."}}(或 interactive 卡片)格式不一致,必须由一个中转程序做格式转换后再调用飞书 Webhook。若飞书机器人开启了签名校验,中转程序还需按timestamp + key生成 HMAC-SHA256 签名。

飞书侧:群设置 → 群机器人 → 添加自定义机器人,获取 Webhook 地址:

https://open.feishu.cn/open-apis/bot/v2/hook/<token>

配置校验与重载

dockerexecalertmanager amtool check-config /etc/alertmanager/config.ymlcurl-shttp://localhost:9093/-/reload-XPOST

九、常见问题速查

现象处理
Prometheus 报queries.active permission deniedchown -R 65534:65534 prometheus/
Grafana 报GF_PATHS_DATA is not writablechown -R 472:0 grafana/
Grafana 数据源连不上prometheus:9090确认两者在同一 compose 网络;容器内测试docker exec grafana wget -qO- http://prometheus:9090/-/healthy
/-/reload返回 404compose 补--web.enable-lifecycle,然后docker compose restart prometheus
Target 状态 DOWN在 Prometheus 主机执行curl http://<目标IP>:9100/metrics,检查 9100 端口与防火墙
告警不推送先看http://<IP>:9093是否收到告警,再查中转服务日志
规则文件未生效promtool check rules校验语法,确认rule_files路径能匹配到
数据保留时间过短默认 15 天,用--storage.tsdb.retention.time=30d调整

安装包可私信我获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 19:09:19

三种文本分类模型对比与Python复现:TextGCN、TextING与LEAM解析

简介&#xff1a;面向自然语言处理课程设计与期末项目&#xff0c;这份资源复现了TextGCN、TextING、LEAM三种经典文本分类方法&#xff0c;提供完整Python源码与详细注释。TextGCN基于图卷积网络&#xff0c;TextING基于图神经网络&#xff0c;LEAM则利用标签嵌入注意力机制&a…

作者头像 李华
网站建设 2026/9/11 19:09:16

共享单车租赁预测:从数据清洗到随机森林与SVM建模全流程

简介&#xff1a;共享单车租赁数量预测是交通出行类数据挖掘的典型场景&#xff0c;项目使用Python完成数据分析和可视化&#xff0c;并以随机森林、支持向量机两种模型进行租赁量回归预测。代码约300行&#xff0c;既涵盖Pandas、NumPy的数据清洗与特征预处理&#xff0c;也包…

作者头像 李华
网站建设 2026/9/11 19:06:15

插件、MCP、Skill 的区别?

&#x1f4cc; 一句话总结 《插件、MCP、Skill 的区别&#xff1a;工具封装&#xff08;平台生态&#xff09;、开放协议&#xff08;AI 的 USB-C&#xff09;、知识指令&#xff08;Markdown 编码的领域智慧&#xff09;——大模型能力扩展的三层演进》 详细总结 一、从一个…

作者头像 李华
网站建设 2026/9/11 19:06:12

喷涂机器人与人工喷涂对比:制造业喷涂自动化转型决策参考

一、制造业喷涂作业的转型背景近年来&#xff0c;制造业面临前所未有的挑战&#xff1a;用工成本持续攀升、熟练喷涂工人短缺、产品质量要求不断提高、环保监管日趋严格。在这样的背景下&#xff0c;越来越多的企业开始思考一个核心问题&#xff1a;喷涂机器人 vs 人工喷涂&…

作者头像 李华
网站建设 2026/9/11 19:02:32

基于AT89C51的烟雾浓度与温度检测火灾报警系统设计

简介&#xff1a;这是一份基于AT89C51单片机的温度烟雾火灾报警系统设计方案&#xff0c;面向单片机初学者与电子设计竞赛参赛者。系统具备火情探测、灯光报警、蜂鸣器报警和阈值调节等核心功能。烟雾采集选用MQ-2传感器&#xff0c;输出模拟信号&#xff0c;经ADC0832转换后送…

作者头像 李华