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

文章目录

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


前言

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


部署 Grafana 和连接 Prometheus 数据源

简单部署 Grafana

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

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

  3. 添加数据源 Prometheus

    • 在 Grafana 主页面,进入 Configuration > Data Sources,点击 Add data source
    • 选择 Prometheus 作为数据源,配置 Prometheus 服务器的地址(通常为 http://<Prometheus_IP>: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)
      
    • Grafana 会生成一条显示 CPU 使用率的表格。
  3. 监控信息调整

    • 加入监控信息后会发现,生成的默认表格只有两列,左侧是时间,右侧是返回值,那我们就要把有用的信息提取出来。
    • Query > Options > Format 选择 TableType 选择 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 textAdd fieId property > Thresholds 配置相应的阈值和颜色。例如,设定低于 80% 为绿色(健康),80-90% 为黄色(警告),超过 90% 为红色(严重)。
  6. 其他

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

配置告警规则与通知

1. Prometheus 中的告警规则

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

  1. 编写 Prometheus 告警规则

    • 在 Prometheus 配置文件中添加规则文件路径。
    • 例如,监控 CPU 使用率高于 90% 时触发告警:
      groups:
      - name: CPU Alertrules:- alert: HighCPUUsageexpr: (100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)) > 90for: 1mlabels:severity: criticalannotations:summary: "Instance {{ $labels.instance }} CPU usage high"description: "CPU usage is above 90% (current value: {{ $value }}%)"
      
  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
      
    • 配置示例代码:

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


总结

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

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

  • 深入 Prometheus 监控生态 - 第一篇:原理与架构详解
  • 深入 Prometheus 监控生态 - 第二篇:网络等硬件设备监控(snmp-exporter)
  • 深入 Prometheus 监控生态 - 第三篇:操作系统信息监控(node-exporter)
  • 深入 Prometheus 监控生态 - 第四篇:服务器硬件信息监控(ipmi-exporter)
  • 深入 Prometheus 监控生态 - 第五篇:利用 API 信息进行监控(NAS 备份任务监控 + 解决思路)
  • 深入 Prometheus 监控生态 - 第六篇:与 Grafana 实现系统全面监控(健康状态和任务状态看板)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剧本杀门店预约小程序,在线一键预约体验

剧本杀作为集社交、角色扮演、休闲娱乐为一体的游戏&#xff0c;吸引了年轻人的目光。当下&#xff0c;随着市场的发展&#xff0c;剧本杀行业正面临挑战&#xff0c;对于门店来说&#xff0c;如何找到新的发展方向&#xff0c;在市场中脱颖而出是重中之重&#xff01; 线上线…

Python自动化数据备份与同步

在日常运维工作中&#xff0c;定期备份重要数据是确保业务连续性和数据安全的关键步骤。本文将介绍如何使用Python的shutil库来复制文件和目录&#xff0c;并结合schedule库实现定时执行备份任务的功能。 1. 环境准备 首先&#xff0c;我们需要安装schedule库&#xff0c;这个…

使用Html5基本标签实现“时空电影网”案例步骤及详细代码

根据您的需求&#xff0c;我为您实现了对“时空电影网”电影节页面的美化。以下是详细的步骤&#xff1a; 设置一级标题“电影节”文字的颜色&#xff1a;将一级标题的颜色设置为深蓝色&#xff08;#0000FF&#xff09;。 <h1><font color"darkblue">电…

SpringBoot技术:闲一品交易的新机遇

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;闲一品交易平台当然也不能排除在外。闲一品交易平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&…

柔性数组的使用

1.只有一个malloc的情况 //柔性数组的使用 #include<stdio.h> #include<stdlib.h> #include<errno.h> struct s {int i;int a[]; }; int main() {struct s* ps (struct s*)malloc(sizeof(struct s) 20 * sizeof(int));if (ps NULL){perror("malloc&…

gradio RuntimeError: async generator raised StopAsyncIteration

主要是return和yield混用导致的&#xff0c;yield是可以流式回复&#xff0c;return一次性回答&#xff1b;需要通义&#xff0c;都改成yield&#xff0c;但不是流式的内容需要最后再加个return 移除了所有的 return 语句&#xff0c;改为 yield 加 return。在生成器函数中&…

SpringAI你知道吗???

目前AI的浪潮已经居高不下了&#xff0c;因此我最近也开始了有关AI的项目&#xff0c;再开始AI的项目之前&#xff0c;我们也要先熟知AI的开发文档和知识&#xff0c;才能更好的开发项目&#xff0c;因此特地从官网查看了有关SpringAI的使用。 Spring AI 官方说明文档&#xf…

从0到1,用Rust轻松制作电子书

我之前简单提到过用 Rust 做电子书&#xff0c;今天分享下如何用Rust做电子书。制作电子书其实用途广泛&#xff0c;不仅可以用于技术文档&#xff08;对技术人来说非常方便&#xff09;&#xff0c;也可以制作用户手册、笔记、教程等&#xff0c;还可以应用于文学创作。 如果…

c++应用网络编程之十三Linux下的epoll模式应用

一、epoll的应用 epoll在实际场景的应用是非常多的&#xff0c;特别是开源的框架中&#xff0c;基本都支持这种用法。大家可以在网上轻松的得到各种形式的epoll的封装代码&#xff0c;但是一定要明白的是&#xff0c;这些代码哪些是利用了epoll的机制&#xff0c;哪些是上层多…

计算机毕业设计django+大模型租房推荐系统 租房可视化 租房大屏可视化 租房爬虫 spark 58同城租房爬虫 房源推荐系统

开题报告&#xff1a;《Django大模型租房推荐系统》 一、研究背景与意义 随着城市化进程的加快&#xff0c;房屋租赁市场日益繁荣。然而&#xff0c;传统的房屋租赁方式存在信息不对称、交易流程繁琐等问题&#xff0c;给租户和房主带来了诸多不便。因此&#xff0c;开发一套…

SAP-MM委外的异常处理

业务场景&#xff1a; 在公司创建委外订单时&#xff0c;BOM下层原材料维护为0.5&#xff0c;产成品为1&#xff0c;共计4行&#xff0c;3个物料&#xff0c;底层原材料都是同一个 物料&#xff0c;也就是总计2个原材料&#xff0c;产成品数量4个&#xff0c;三个物料编码。 …

网站安全,WAF网站保护暴力破解

雷池的核心功能 通过过滤和监控 Web 应用与互联网之间的 HTTP 流量&#xff0c;功能包括&#xff1a; SQL 注入保护&#xff1a;防止恶意 SQL 代码的注入&#xff0c;保护网站数据安全。跨站脚本攻击 (XSS)&#xff1a;阻止攻击者在用户浏览器中执行恶意脚本。暴力破解防护&a…

ubuntu进程相关操作

进程相关操作 1.查看进程top/htop top 命令输出解释 在 top 命令中&#xff0c;字段通常表示如下&#xff1a; USER&#xff1a;进程的所有者。PR&#xff1a;优先级。NI&#xff1a;nice 值&#xff08;优先级调整&#xff09;。VIRT&#xff1a;进程使用的虚拟内存总量。…

如何在算家云搭建LongWriter(长文创作)

一、 LongWriter 简介 在自然语言处理领域&#xff0c;随着对长文本处理需求的不断增加&#xff0c;能够高效生成长文本的语言模型变得至关重要。LongWriter 的推出正是为了打破传统语言模型在生成超长文本时的限制。LongWriter-glm4-9b 是基于glm-4-9b进行训练的&#xff0c;…

C语言串口接收GPS数据

要在C语言中接收GPS数据&#xff0c;需要使用串口通信来与GPS设备进行数据交互。一个简单的串口通信代码主要包含了以下几个部分&#xff1a; 1.标准库头文件 stdio.h&#xff1a;包含输入输出函数&#xff0c;如 printf string.h&#xff1a;包含字符串处理函数&#xff0c…

【天线&空中农业】蜜蜂检测系统源码&数据集全套:改进yolo11-ASF

改进yolo11-dysample等200全套创新点大全&#xff1a;蜜蜂检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.30 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视频可…

NavVis LX系列产品典型应用—现有住宅装修改造-沪敖3D

现有住宅装修改造项目的 数据捕捉和测量技术 当Jay Ure着手翻新和美化自己的新家时&#xff0c;他敏锐地发现这是现场测试NavVis VLX的绝佳机会。 为了全面评估&#xff0c;他聘请了一位工程师&#xff0c;采用传统的全站仪技术进行地形测绘。之后&#xff0c;他用移动扫描设…

《云主机配置全攻略》

《云主机配置全攻略》 一、云主机配置的重要性二、配置云主机的关键要素&#xff08;一&#xff09;CPU 的选择&#xff08;二&#xff09;内存的考量&#xff08;三&#xff09;硬盘的抉择&#xff08;四&#xff09;带宽的确定&#xff08;五&#xff09;机房线路的考虑&…

点评项目-12-好友关注

好友关注主要有三个功能&#xff1a; 1.关注和取关 2.共同关注 3.关注推送 关注和取关 涉及到的表&#xff0c;中间表&#xff1a;tb_follow,是博主 User 和粉丝 User 的中间表 请求一&#xff0c;查询是否关注了该用户&#xff1a; 请求路径&#xff1a;follow/or/not/…

Android 在github网站下载项目:各种很慢怎么办?比如gradle下载慢;访问github慢;依赖下载慢

目录 访问github慢gradle下载慢依赖下载慢 前言 大家好&#xff0c;我是前期后期&#xff0c;在网上冲浪的一名程序员。 为什么要看这篇文章呢&#xff1f;问题是什么&#xff1f; 我们在Github上面看到一些好的项目的时候&#xff0c;想下载下来研究学习一下。但经常遇到各…