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

Prometheus 告警规则

Prometheus 告警规则

Prometheus官方内置的第三方报警通知包括:邮件、 即时通讯软件(如Slack、Hipchat)、移动应用消息推送(如Pushover)和自动化运维工具(例如:Pagerduty、Opsgenie、Victorops)

Prometheus告警流程

须知:

  1. Prometheus 从监控目标上收集信息(scrape_interval 是多长时间采集一次,默认是1m其中srcape_interval可以配置全局生效,也可以基于单个metrics定义),然后将监控信息持久存储在本地存储上。
  2. Prometheus 对告警规则做定期计算,其中evaluation_interval只有全局值;然后更新告警
groups:
# 实例存活告警规则
- name: exportrules:
# 实例存活告警- alert: memory        # 名称expr: memory_used > 30    # 算法for: 10s        # 告警持续时间labels:user: prometheusseverity: "{{ $labels.job }}: Memory usage exceeded 30G”annotations:description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minutes."

注意:配置中的for语法就是用来设置告警持续时间的;如果配置中不设置for或者设置为0,那么pending状态会被直接跳过。
在这里插入图片描述

告警触发流程

  1. 假设采集周期为5s采集一次memory_used
  2. 采集到的指标告知给Alertmanager,当指标超过30时,这时会触发告警
  3. 然后根据采集到的指标按照10s一个周期计算表达式为真,并且符合for持续10s,将告警切换到pening状态
  4. 下个计算周期,表达式仍然为真,并且符合for 持续10s告警变更为Firing,并将告警从Prometheus发送给Alertmanager;
  5. 下个周期计算,表达式仍然为真,并且符合for 持续10s持续告警给Alertmanager;
  6. 一直到,表达式为假,告警状态边更为inactive,并发送给Alertmanager,告警已经解决

Alertmanager 分组 抑制 静默

分组
1、同类告警的聚合帮助运维排查问题
2、通过告警邮件的合并,减少告警数量
抑制

须知:抑制可以针对单个指标,也可以对分组。(下边内容我是以分组进行说明的)

告警延时的几个重要参数:
group_by:采用哪个标签作为分组的依据
group_wait:分组等待时间,比如:5s
group_interval:分组尝试再次发送告警的时间间隔,比如:5m
Repeat_interval:分组内发送相同告警的时间间隔,比如:60m
例:
有同组告警集A,如下:
a1
a2
a3
场景一:
a1先到达告警系统,此时在group_wait:5s的作用下,a1不会立刻告出来,a1等待5s,下一刻a2在5s内也触发,a1,a2会在5s后合并为一个分组,通过一个告警消息发出来;
a1,a2持续未解决,它们会在repeat_interval: 60m的作用下,每隔一小时发送告警消息

Alertmanager 配置文件说明

global:smtp_smarthost: 'smtp.163.com:25'        # 是用于发送邮件的邮箱的SMTP服务器地址+端口smtp_from: 'jugglee@163.com'             # 发送邮箱名称smtp_auth_username: 'jugglee@163.com'    # 邮箱名称smtp_auth_password: 'admin123'           # 是发送邮箱的授权码而不是登录密码smtp_require_tls: false                  # 不设置的话默认为true,当为true时会有starttls错误,可以用其他办法解决。为了简单这里直接设置为falsetemplates:                                 # 指出邮件的模板路径- '/alertmanager/template/*.tmpl'route:group_by: ['alertname', 'cluster', 'service']group_wait: 30sgroup_interval: 5mrepeat_interval: 10mreceiver: default-receiverreceivers:                                  # 下html指出邮件内容模板名,这里模板名为“alert.html”,在模板路径中的某个文件中定义
- name: 'default-receiver'email_configs:- to: 'whiiip@163.com'html: '{{ template "alert.html" . }}'headers: { Subject: "[WARN] 报警邮件test" }   # 为邮件标题
http://www.lryc.cn/news/4703.html

相关文章:

  • mulesoft MCIA 破釜沉舟备考 2023.02.13.02
  • 获取DLL运行时路径的方法
  • “华为杯”研究生数学建模竞赛2006年-【华为杯】D题:学生面试中教师安排的优化与算法(附获奖论文)
  • 【JavaScript】复习 【对象参数】【函数参数】
  • 如何批量提取文件名到excel表格?
  • CUDA线程层次一文搞懂|参加CUDA线上训练营
  • Linux文件默认权限:umask
  • SonicWall:请立即修复SMA 1000 漏洞
  • 基于VS调试分析 + 堆栈观察问题代码段
  • QFramework框架学习
  • 移动OA系统,联动企业协作让办公高效无间断
  • 结构体熟练掌握--实现通讯录
  • 腾讯云CVM服务器购买流程手把手方法教程攻略
  • 九龙证券|“春季躁动”行情要来?1月新增投资者数大增
  • C语言(按位运算符和位移运算符)
  • 删掉的照片怎么恢复?
  • 【java】40 个 SpringBoot 常用注解(建议收藏)
  • 【JMC】SMILES‑based deep generative scafold decorator for de‑novo drug design
  • 全链路异步,让你的 SpringCloud 性能优化10倍+
  • 131.《router v 5 与 react-router v 6》
  • 2023第十届北京老年产业博览会/中国养老护理人才培育计划
  • STM32F407VET6 / BLACK_F407VE开发板间隔0.5秒不断重启
  • 什么是圈复杂度
  • Hbase 数据迁移
  • Docker consul的容器服务更新与发现
  • 数据库关系模型
  • 你是真的“C”——详解指针知识
  • React/ReactNative面试攻略(偏RN)
  • Leetcode-每日一题1234. 替换子串得到平衡字符串(滑动窗口 + 哈希表)
  • linux命令小结-查看日志命令