ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

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

【Prometheus + Alertmanager + Grafana 监控平台部署】 Prometheus Alertmanager Grafana 监控平台部署说明本文只记录部署操作步骤与配置要点。安装包内已提供的文件docker-compose.yaml、prometheus.yml、alerts/*.yml、node_targets.json、alertmanager/config.yml、install_node_exporter.sh、node_exporter.service不再重复列出内容按需修改即可。一、组件与端口组件作用端口Prometheus采集、存储、告警规则判定9090Alertmanager告警去重/分组/路由到飞书9093Grafana可视化数据源对接 Prometheus3000node_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:GIDPrometheus/prometheus65534:65534nobodyAlertmanager/alertmanager65534:65534*Grafana/var/lib/grafana472:0grafana:root执行# Prometheuschown-R65534:65534 prometheus/chmod-R755prometheus/# AlertmanagerUID 以上面自查结果为准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 UIhttp://IP:9090/targets查看采集目标状态应为 UPhttp://IP:9093Alertmanager UIhttp://IP:3000Grafana若端口打不开检查防火墙是否放行 9090 / 9093 / 3000。五、Grafana 配置5.1 登录访问http://IP:3000默认用户名密码admin / admin首次登录强制修改密码。5.2 添加数据源Connections → Data sources → Add data source → PrometheusPrometheus 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 Dashboard3662Prometheus 2.0 Overview六、安装 node_exporter被监控主机安装包已提供. ├── install_node_exporter.sh ├── node_exporter-1.9.1.linux-amd64.tar.gz └── node_exporter.service在被监控主机上执行chmodx 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-rulerule familyipv4 source addressPrometheus主机IP/32 port port9100 protocoltcp acceptfirewall-cmd--reload七、添加 / 移除监控节点目标主机安装 node_exporter见第六章。编辑prometheus/prometheus_config/node_targets.json按已有格式追加主机。改node_targets.json无需任何操作文件服务发现会自动加载。改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:feishuwebhook_configs:-url:http://中转服务IP:端口/alertsend_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 prometheusTarget 状态 DOWN在 Prometheus 主机执行curl http://目标IP:9100/metrics检查 9100 端口与防火墙告警不推送先看http://IP:9093是否收到告警再查中转服务日志规则文件未生效promtool check rules校验语法确认rule_files路径能匹配到数据保留时间过短默认 15 天用--storage.tsdb.retention.time30d调整安装包可私信我获取
返回列表