prometheus实战之三:告警规则

这篇具有很好参考价值的文章主要介绍了prometheus实战之三:告警规则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

本篇概览

  • 本文是《prometheus实战》系列的第三篇,一起来学习prometheus的告警功能,如下图所示,整个告警功能分为规则和通知两部分,本篇是有关规则的详细介绍,至于命中规则后如何向外部发出通知是下一篇的内容
    prometheus实战之三:告警规则
  • 本篇任务:如果指定机器的CPU使用率超过50%就告警

配置告警规则的基本流程

  • 新增告警规则的操作有以下四步

配置告警规则

  • 每个告警规则有五部分组成
  1. 名称(alert)
  2. 触发条件(expr),这是个PromQL表达式,例如CPU使用率超过50%,在触发条件被满足之前,告警的状态都是Inactive
  3. 持续时间(for),例如CPU使用率超过50%的时间持续30秒,在30秒之内,此告警状态为pending,超过30秒就进入firing状态
  4. 标签(labels),给告警打上标签,在使用时可以根据标签定位到指定告警
  5. 注解(annotations),对告警的描述,这些内容可以用来详明告警时刻的详细情况
  • 接下来配置一个规则并验证其效果
  • 首先用prometheus账号SSH登录prometheus服务器
  • 新建告警规则文件,我这里完整路径是/home/prometheus/prometheus/rules/cpu.rules,内容如下,每个参数都有详细说明
# 告警规则分组,每一个组下有多个告警规则
groups:
# 组名
- name: cpuAlertGroup
  # 告警规则数组
  rules:
  # 下面是一个具体的告警规则,名为hostCPUUsageTooHigh
  - alert: hostCPUUsageTooHigh
    # 基于PromQL的具体规则,这里是CPU使用率高于50%
    expr: (1 - sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance) ) * 100 > 50
    # 持续时间,实际情况满足expr后,规则从inactive
    for: 30s
    # 给规则自身设置标签
    labels:
      biz_type: cpu_usage
    annotations:
      # 告警内容摘要,可以用表达式获取变量的值
      summary: "Instance {{ $labels.instance }} CPU usgae high"
      # 告警内容详情,可以用表达式获取变量的值
      description: "{{ $labels.instance }} CPU usage above 50% (current : {{ $value }})"
  • 然后打开prometheus的配置文件prometheus.yml,通过配置rule_files参数的值,告诉prometheus在何处加载告警规则配置文件,具体配置如下图
    prometheus实战之三:告警规则
  • 重启prometheus服务(prometheus账号操作)
systemctl restart prometheus
  • 打开prometheus的web UI,如下图,可以看到告警规则已加载成功
    prometheus实战之三:告警规则
  • 告警的三种状态:Incative、Pending、Firing,具体的关系,我这边画了个草图
    prometheus实战之三:告警规则
  • 配置完成,可以验证告警效果了

触发告警

  • 由于这里配置的是CPU告警,接下来就想办法让应用服务器的CPU升高,这里继续用ffmpeg对视频文件转码,参考命令如下
~/bin/ffmpeg -i ~/videos/4kh264.mp4 -c:v libx265 -vtag hvc1 -c:a copy ./output.mp4
  • CPU使用率开始上涨,下图是还未达到阈值时的数据
    prometheus实战之三:告警规则

  • 此刻告警依然是inactive,未被触发
    prometheus实战之三:告警规则

  • 等到CPU利用率超过阈值的时候,应用服务器的实际情况如下图
    prometheus实战之三:告警规则

  • 再看prometheus的web UI,表达式显示也是超过了阈值,由于未满30秒,并未触发真正的告警(Firing),而是进入临时的Pending状态,此时annonation的内容中,配置的哪些变量已经被真实的值替换,显然,这样的内容可以帮我们定位到具体的故障信息
    prometheus实战之三:告警规则

  • CPU使用率持续30秒都大于50%的时候,此告警进入Firing状态,如果配置了告警通知,此刻已触出发了告警通知(这部分下一篇会实现)
    prometheus实战之三:告警规则

  • 至此,常规告警规则的编写和使用的操作已全部完成,接下来将曾经遇到的问题列出,帮大家跳过小坑文章来源地址https://www.toymoban.com/news/detail-433025.html

问题记录

  • 告警规则的label名不能用减号,但是可以用下划线
  • 下图这样写会导致prometheus启动失败
    prometheus实战之三:告警规则
  • 可以这样写
    prometheus实战之三:告警规则
  • 咱们熟悉了告警规则,接下来就要进军告警通知了,毕竟prometheus产生的告警需要第一时间让相关人员感知到,下一篇的alertmanager就承担着这份重任

你不孤单,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

到了这里,关于prometheus实战之三:告警规则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • strimzi实战之三:prometheus+grafana监控(按官方文档搞不定监控?不妨看看本文,已经踩过坑了)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 由于整个系列的实战都涉及到消息生产和消费,所以咱们需要一套监控服务,用于观察各种操作的效果,例如生产消息是否成功、消息是否被消费、有没有发生堆积等 因此,在前文完成了最基本的部

    2024年02月08日
    浏览(34)
  • 容器云平台监控告警体系(五)—— Prometheus发送告警机制

    在Prometheus的架构中告警被划分为两个部分,在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。本文主要讲解Prometheus发送告警机制也就是在Prometheus Server中定义告警规则和产生告警部分,不过多介绍Alertmanager组件。 在Prometheus中

    2023年04月23日
    浏览(36)
  • prometheus告警处理

    一.告警简介 1.工作流程 prometheus收集监测的信息 prometheus.yml 文件中定义 rules 文件,rules 里包含告警信息 prometheus 把告警信息 push 给 altermanager,alertmanager 里定义收件人和发件人 altermanager 发送文件到邮箱或微信 2.告警生命周期 定期采集监控数据 定期扫描告警规则,发现告警

    2023年04月08日
    浏览(28)
  • 云原生监控系统Prometheus:基于Prometheus构建智能化监控告警系统

    目录 一、理论 1.Promethues简介 2.监控告警系统设计思路 3.Prometheus监控体系 4.Prometheus时间序列数据 5.Prometheus的生态组件 6.Prometheus工作原理 7.Prometheus监控内容 8.部署Prometheus 9.部署Exporters 10.部署Grafana进行展示 二、实验 1.部署Prometheus 2.部署Exporters 2.监控远程MySQL 3.部署Grafana进行

    2024年02月07日
    浏览(35)
  • [云原生] Prometheus之部署 Alertmanager 发送告警

    Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。 Alertmanager 负责处理由 Prometheus Server 发来的告警通知,Alertmanager对告警通知进行分组、去重后,根据路由规则

    2024年04月10日
    浏览(37)
  • 【云原生】Prometheus之部署 Alertmanager 发送告警

    Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。 Alertmanager 负责处理由 Prometheus Server 发来的告警通知,Alertmanager对告警通知进行分组、去重后,根据路由规则

    2024年02月16日
    浏览(35)
  • 云原生周刊 | 使用 ChatGPT 协助解决 Prometheus 告警

    kubernetes-chatgpt-bot 这是一个适用于 Slack 的 ChatGPT 机器人,只要有监控告警发送到 Slack 频道中,你就可以通过机器人向 ChatGPT 咨询如何解决这个告警,ChatGPT 将会给出一个较为详细的解决方案。 Copacetic Copacetic 是一个使用 Go 语言编写的 CLI 工具,它可以根据 Trivy 等工具的漏洞扫

    2024年02月02日
    浏览(40)
  • prometheus部署及钉钉告警集成Grafana

    安装包 📎alertmanager-0.23.0.linux-amd64.tar.gz 📎node_exporter-1.3.1.linux-amd64.tar.gz 📎prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz 服务端口 Prometheus 9090 node_exporter 9100 alertmanager 9093 prometheus-webhook-dingtalk 8060 #修改配置文件之前先备份 /usr/local /usr/local /usr/local/prometheus/prometheus.yml /usr/lib/syste

    2024年02月11日
    浏览(30)
  • SpringBoot集成系统监控和告警工具包prometheus

    prometheus以开源软件的形式进行研发的系统监控和告警工具包 Grafana 是一个监控仪表系统,它是由 Grafana Labs 公司开源的的一个系统监测工具,只需要提供需要监控的数据,它就可以帮助生成各种可视化仪表,同时它还有报警功能,可以在系统出现问题时发出通知。 环境搭建:

    2024年03月09日
    浏览(46)
  • Prometheus+Grafana 监控平台实践-搭建&常用服务监控&告警

    Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机服务,分享日常使用的一些使用经验 文章较长,已安装可略

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包