首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

深入 Prometheus 监控生态 - 第六篇:与 Grafana 实现系统全面监控(健康状态和任务状态看板)

  • 25-02-16 21:01
  • 3715
  • 11961
blog.csdn.net

文章目录

  • 前言
  • 部署 Grafana 和连接 Prometheus 数据源
    • 简单部署 Grafana
  • 构建系统监控看板
    • 1. 监控信息查看
    • 2. 看板制作(表格图)
      • 配置表格图(Line Chart)
  • 配置告警规则与通知
    • 1. Prometheus 中的告警规则
    • 2. Grafana 告警配置(常用)
    • 3. 企业微信通知推送
  • 总结


前言

Grafana 是一款强大的开源监控和数据可视化工具,广泛应用于 IT 基础设施的监控和性能分析。它支持多种数据源,如 Prometheus、MySQL、Elasticsearch 等,能够将繁杂的数据转换为易于理解的图表、曲线图和统计面板。结合 Prometheus 监控体系,我们将在 Grafana 中构建一个全面的系统健康状态监控看板,涵盖任务状态、硬件健康、资源使用等关键指标,并配置实时告警与企业微信通知功能,帮助运维团队及时应对潜在问题。


部署 Grafana 和连接 Prometheus 数据源

简单部署 Grafana

  1. 下载与安装:根据操作系统选择适合的安装方式(例如,Linux 下通过 apt 或 yum 安装,或者 Docker 中使用 Grafana 镜像)。

    # 使用 Docker 安装 Grafana
    docker run -d --name=grafana -p 3000:3000 grafana/grafana
    
    • 1
    • 2
  2. 初次登录:启动后,打开 http://localhost:3000,默认用户名和密码均为 admin。登录后可以根据需求修改密码。

  3. 添加数据源 Prometheus:

    • 在 Grafana 主页面,进入 Configuration > Data Sources,点击 Add data source。
    • 选择 Prometheus 作为数据源,配置 Prometheus 服务器的地址(通常为 http://:9090),点击 Save & Test 确认连接成功。

构建系统监控看板

1. 监控信息查看

Prometheus 提供了众多监控指标(metrics),例如任务状态、CPU、内存、磁盘等资源使用情况。通常硬件健康和任务状态可以通过安装的 node_exporter 或其他特定的 exporter 监控。例如,基于 IPMI 协议的监控常用于硬件健康状态,返回的值通常为 1 表示健康、0 表示不健康(具体可根据设备官方相应文档或浏览器访问该 exporter 页面,一般都会有参数说明)。

  • 在监控设备 exporter 页面(通常),查看返回参数信息。
  • 在 Prometheus 首页,点击 Graph ,输入参数可查看返回状态信息。并且可在此页面编写 Prometheus 公式,公式可应用于 Grafana 的 看板 和警告。

2. 看板制作(表格图)

为了直观地展示系统运行状态,Grafana 提供监控数据可视化展示,即看板,但需由用户制作。下面具体说说看板内表格图的详细的配置步骤。

首先在 Dashboards > New Dashboard 新建一个看板,并在看板里面 Add > Visualization 添加一个视图。

配置表格图(Line Chart)

  1. 表格图:

    • 视图里边,右上角选择 Table 类型。
  2. 配置查询(Query):

    • 输入 Prometheus 查询公式(上面查询公式)。例如,监控 CPU 使用率的公式为:
      100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
      
      • 1
    • Grafana 会生成一条显示 CPU 使用率的表格。
  3. 监控信息调整:

    • 加入监控信息后会发现,生成的默认表格只有两列,左侧是时间,右侧是返回值,那我们就要把有用的信息提取出来。
    • 在 Query > Options > Format 选择 Table ,Type 选择 Instant ,这样发现除时间、返回值以外的,什么 instance、job、hostname 等等全都出来了,和 Pormetheus 在网页上返回的信息一致。
    • 这时要将不要的列去掉,在 Transform > Add transformation 添加 Organize fieIds,将不要的列叉掉,将要的列 Rename 改名,方便查阅。
    • 同时 Transform 还支持多项调整,比如:Filter data by values 支持根据属性值调整返回信息,Add fieId from calculation 支持通过不同列的值计算得出新列等。
  4. 监控设备命名:

    • 若是通过大量 IP 监控设备,在视图上无法快速确认该 IP 是什么设备,所以一般会将 IP 命名为指定设备。
    • 右侧点击 Add fieId override > FieIds with name ,并选择那一列的值需要改名,点击 Edit value mappings 根据返回 IP 值修改监控设备名称。
  5. 表格样式调整:

    • 右侧 Override x 就是用于调整所选列的样式,如:Column width 就是列宽,Threshold 就是配置相应的阈值和颜色。
    • 可通过 Add fieId override > FieIds with name 新建,再 Add fieId property > Column width 追加属性即可。
    • 在 Override x 基础上,Add fieId property > ‘Cell options > Cell type’ 选择 Colored text ,Add fieId property > Thresholds 配置相应的阈值和颜色。例如,设定低于 80% 为绿色(健康),80-90% 为黄色(警告),超过 90% 为红色(严重)。
  6. 其他:

    • 配置错误可以对该 视图 点击右上角 Edit 重新修改并保存。

配置告警规则与通知

1. Prometheus 中的告警规则

在 Prometheus 中定义告警规则,可以使监控更加灵活并减轻 Grafana 的负担。我们可以先在 Prometheus 中写好规则,再通过 Grafana 来显示和推送告警。

  1. 编写 Prometheus 告警规则:

    • 在 Prometheus 配置文件中添加规则文件路径。
    • 例如,监控 CPU 使用率高于 90% 时触发告警:
      groups:
      - name: CPU Alert
        rules:
        - alert: HighCPUUsage
          expr: (100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)) > 90
          for: 1m
          labels:
            severity: critical
          annotations:
            summary: "Instance {{ $labels.instance }} CPU usage high"
            description: "CPU usage is above 90% (current value: {{ $value }}%)"
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
  2. 在 Grafana 中应用告警:

    • 将 Prometheus 中的告警规则显示在 Grafana,看板中的折线图或表格图可以自动引用这些告警。

2. Grafana 告警配置(常用)

  1. 设置告警规则:
    • 选择图表中的 Alert > Create Alert。
    • 配置告警规则的触发条件(根据 Prometheus 公式配置报警规则)。例如,当 CPU 使用率超过 90% 持续 1 分钟,触发告警。
    • 添加通知渠道(Notification channel),如企业微信。

3. 企业微信通知推送

企业微信支持 API 方式接收告警信息,需先在企业微信后台创建应用,并获取企业 ID、应用 ID、应用 Secret。

  1. 配置企业微信推送 API:

    • 企业微信后台创建应用,记录 CorpID(企业ID)、AgentID(应用ID)、Secret(应用Secret)。
    • 配置 Grafana 中的 Notification Channel,使用企业微信 Webhook API(配置 Integration 类型选择 WeCom)。
  2. API 推送设置:

    • 在 Grafana 中,进入 Configuration > Notification channels,选择 Webhook 作为通知方式。

    • Webhook URL 格式示例:

      https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
      
      • 1
    • 配置示例代码:

      {
        "msgtype": "text",
        "text": {
          "content": "告警通知:{{ .Labels.alertname }} - {{ .Annotations.description }}"
        },
        "touser": "@all",
        "agentid": ""
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    • 替换相应的参数并测试通知是否可行。通过此配置,当告警触发时,企业微信将自动收到通知。


总结

通过 Grafana 和 Prometheus 的结合,运维团队可以创建高度可视化和动态的监控看板,并在关键指标异常时自动告警。合理设置折线图、表格图的动态变色和告警通知,有助于快速定位并处理系统问题,实现了实时、便捷、智能的 IT 监控管理。

目前,已更新的 Prometheus 及其相关篇章有:

  • 深入 Prometheus 监控生态 - 第一篇:原理与架构详解
  • 深入 Prometheus 监控生态 - 第二篇:网络等硬件设备监控(snmp-exporter)
  • 深入 Prometheus 监控生态 - 第三篇:操作系统信息监控(node-exporter)
  • 深入 Prometheus 监控生态 - 第四篇:服务器硬件信息监控(ipmi-exporter)
  • 深入 Prometheus 监控生态 - 第五篇:利用 API 信息进行监控(NAS 备份任务监控 + 解决思路)
  • 深入 Prometheus 监控生态 - 第六篇:与 Grafana 实现系统全面监控(健康状态和任务状态看板)
注:本文转载自blog.csdn.net的运维の小LIAN的文章"https://blog.csdn.net/weixin_41004518/article/details/143358503"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top