当前位置: 首页 > news >正文

Prometheus 监控系统全维度指南

以下是整理后的 Prometheus 监控系统全维度指南,涵盖概述、生态组件、工作流程、部署实践(含告警、可视化、服务发现)等核心内容,结构清晰且信息完整:

一、Prometheus 概述

Prometheus 是开源的服务监控系统与时序数据库,核心特性包括:

  • 多维数据模型:通过 “度量名称 + 键值对” 标识时间序列数据。
  • 内置时序数据库:本地存储时序数据,也支持对接 InfluxDB、OpenTSDB 等远端存储。
  • PromQL 查询语言:支持复杂的多维数据查询与聚合。
  • 基于 HTTP 的 Pull 采集:主动拉取目标服务的监控指标,也可通过 PushGateway 接收推送数据。
  • 动态服务发现:支持文件、DNS、Consul、Kubernetes 等多种发现机制。
  • Grafana 集成:可作为数据源实现可视化展示。

二、生态组件与角色

组件功能说明
Prometheus Server核心组件,负责采集、存储指标,基于告警规则生成告警,由 Retrieval(采集)、Storage(存储)、PromQL(查询)模块组成。
Exporters指标暴露器,收集非内建监控能力的服务 / 主机指标(如 Node Exporter 监控服务器、mysqld_exporter 监控 MySQL),并通过 HTTP 接口供 Server 拉取。
Alertmanager独立告警模块,接收 Server 告警后进行去重、分组,并路由到邮件、钉钉等接收方。
PushGateway接收短生命周期任务的指标推送,再由 Server 拉取,解决短期任务无法被 Pull 的问题。
Grafana第三方可视化工具,支持 Prometheus 数据源,提供丰富的仪表盘与告警展示。

三、工作流程

  1. 数据采集:Server 主动拉取 Exporters / 目标服务的指标,或通过 PushGateway 拉取推送的指标。
  2. 数据存储:采集的指标以时序格式存储在本地 TSDB 或远端存储中。
  3. 告警生成:Server 基于告警规则计算指标,触发条件时将告警发送到 Alertmanager。
  4. 告警分发:Alertmanager 对告警进行去重、分组后,发送到邮件、钉钉等接收渠道。
  5. 数据可视化:Grafana 接入 Prometheus 数据源,以图表形式展示监控数据。

四、部署实践

1. 基础组件部署(Prometheus Server、Node Exporter)
  • Prometheus Server 部署

    # 下载解压
    cd /opt && wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
    tar xf prometheus-2.45.0.linux-amd64.tar.gz && mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus# 配置 systemd 服务
    cat > /etc/systemd/system/prometheus.service << 'EOF'
    [Unit]
    Description=Prometheus Server
    After=network.target
    [Service]
    Type=simple
    ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data/
    ExecReload=/bin/kill -HUP $MAINPID
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    EOF# 启动并设为开机自启
    systemctl daemon-reload && systemctl enable --now prometheus
    
  • Node Exporter 部署(监控服务器系统指标):

    # 下载解压
    cd /opt && wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
    tar xf node_exporter-1.6.1.linux-amd64.tar.gz && mv node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin# 配置 systemd 服务
    cat > /etc/systemd/system/node_exporter.service << 'EOF'
    [Unit]
    Description=Node Exporter
    After=network.target
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/node_exporter
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    EOF# 启动并设为开机自启
    systemctl daemon-reload && systemctl enable --now node_exporter
    
  • 关联 Prometheus 与 Node Exporter:编辑 prometheus.yml,添加 Node Exporter 监控目标:

    scrape_configs:- job_name: "node_exporter"static_configs:- targets: ["localhost:9100"]  # Node Exporter 默认端口
    

    重启 Prometheus:systemctl restart prometheus

2. 钉钉告警集成(Prometheus + Alertmanager + 钉钉中间件)
  • 部署 prometheus-webhook-dingtalk

    cd /opt && wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
    tar xf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz && mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /usr/local/dingtalk# 配置 systemd 服务
    cat > /etc/systemd/system/dingtalk-webhook.service << 'EOF'
    [Unit]
    Description=Prometheus Webhook for DingTalk
    After=network.target
    [Service]
    Type=simple
    WorkingDirectory=/usr/local/dingtalk
    ExecStart=/usr/local/dingtalk/prometheus-webhook-dingtalk --config.file=config.yml
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    EOF
    
  • 配置钉钉机器人与中间件:钉钉群创建自定义机器人,获取 Webhook 地址加签 Secret,编辑 config.yml

    timeout: 5s
    templates:- contrib/templates/legacy/template.tmpl
    default_message:title: '{{ template "legacy.title" . }}'text: '{{ template "legacy.content" . }}'
    targets:webhook1:url: "https://oapi.dingtalk.com/robot/send?access_token=你的Webhook"secret: "你的加签Secret"
    
  • 配置 Alertmanager:编辑 alertmanager.yml,转发告警到钉钉中间件:

    global:resolve_timeout: 5m
    route:receiver: 'dingtalk-webhook1'
    receivers:
    - name: 'dingtalk-webhook1'webhook_configs:- url: 'http://localhost:8060/dingtalk/webhook1/send'send_resolved: true
    
  • 配置 Prometheus 告警规则:创建告警规则文件(如 node_rules.yml),定义 Node Exporter 宕机告警:

    groups:
    - name: node_alertsrules:- alert: NodeExporterDownexpr: up{job="node_exporter"} == 0for: 1mlabels:severity: criticalannotations:summary: "Node Exporter 服务宕机"
    

    在 prometheus.yml 中关联规则文件:

    rule_files:- "node_rules.yml"
    
3. Grafana 可视化部署
  • 安装并启动 Grafana

    yum install -y grafana-7.4.0-1.x86_64.rpm
    systemctl enable --now grafana-server
    
  • 配置 Prometheus 数据源:浏览器访问 http://服务器IP:3000,添加数据源:

    • 类型选择 “Prometheus”,URL 填写 http://localhost:9090,保存并测试。
  • 导入仪表盘:从 Grafana 官方仪表盘库 搜索 “Node Exporter”,复制 ID 后导入,即可查看服务器指标可视化面板。

4. 服务发现实践
  • 基于文件的服务发现:创建目标配置文件(如 targets/node-exporter.yaml):

    - targets:- 192.168.10.80:9100labels:job: node_exporter
    

    在 prometheus.yml 中配置文件发现:

    scrape_configs:- job_name: "nodes"file_sd_configs:- files: ["targets/node-exporter.yaml"]refresh_interval: 2m
    
  • 基于 Kubernetes 的服务发现:配置 prometheus.yml 对接 Kubernetes API,发现 Pod、Node 等资源:

    scrape_configs:- job_name: "kubernetes-nodes"kubernetes_sd_configs:- role: noderelabel_configs:- action: labelmapregex: __meta_kubernetes_node_label_(.+)
    

五、常见问题与排查

  • 指标未采集:检查 Exporter 服务是否运行、Prometheus 配置的 targets 是否正确。
  • 告警未触发:确认告警规则表达式是否正确、Prometheus 已加载规则文件、Alertmanager 配置的接收方是否有效。
  • 钉钉无通知:检查钉钉机器人 Webhook/Secret 是否正确、dingtalk-webhook 服务是否运行、Alertmanager 与中间件的网络连通性。

通过以上步骤,可搭建从指标采集→存储→告警→可视化的完整 Prometheus 监控体系,满足服务器、数据库、容器等多场景的监控需求。

http://www.dtcms.com/a/524175.html

相关文章:

  • Gradle 增量构建与构建缓存:自定义 Task 如何实现 “只构建变化内容”?
  • 【笑脸惹桃花】1024,阶段性回望与小结
  • 农产品网站建设策划方案网站获取qq号码 代码
  • 网站服务器的作用和功能有哪些福田欧辉是国企吗
  • R语言高效数据处理-变量批量统计检验
  • 云图-地基云图
  • R语言基于selenium模拟浏览器抓取ASCO数据-连载NO.03
  • 多分组火山图绘制-Rscript_version1.0
  • 【开题答辩全过程】以基于Hadoop的电商数据分析系统为例,包含答辩的问题和答案
  • 申威服务器安装Java11(swjdk-11u-9.ky10.sw_64.rpm)详细操作步骤(附安装包)
  • UVa 1596 Bug Hunt
  • 企业数据仓库
  • 如何用 HTML 生成 PC 端软件
  • Apache Spark算法开发指导-特征转换Normalizer
  • 泗洪网站建设变化型网页网站有哪些
  • 渭南哪家公司可以做网站小程序开发制作价格
  • 广州城市建设规划局网站我想给网站网站做代理
  • 蓝蜂 MQTT 网关打通 120 台设备数据,助汽车零部件厂降本 40%​
  • C++异常详细介绍
  • AKKO 3180键盘插到联想笔记本无法使用问题
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第六天)
  • 从项目中学习CAN和CANFD报文结构(新手入门)
  • SpreadJS 赋能在线 Excel:协同编辑与精细化权限管控的技术实现
  • RabbitMQ 持久性详解
  • cms网站栏目介绍html免费模板下载
  • 太原网站建设培训班wordpress购买按钮插件
  • 北斗导航 | 接收机自主完好性监测(RAIM)在列车中的应用:原理、现状、挑战与案例
  • 前端Sass完全指南:从入门到精通
  • 网站建设地域名高校网站建设 网站群
  • 破局制造业数据孤岛,大腾智能PDM实现产研协同