一、前置常识
对于被Prometheus监控的服务器,咱们都有一个up指标,能够晓得该服务是否在线。
up == 0 能够工作服务下线了。
up == 1 能够工作服务在线。
二、需要
对于下线超过1分钟的服务,产生告警信息。
三、实现步骤
1、编写告警规定
groups:
– name: Test-Group-001 # 组的名字,在这个文件中必须要惟一
rules:
– alert: InstanceDown # 告警的名字,在组中须要惟一
expr: up == 0 # 表达式, 执行后果为true: 示意须要告警
for: 1m # 超过多少工夫才认为须要告警(即up==0须要继续的工夫)
labels:
severity: warning # 定义标签
annotations:
summary: “服务 {{ $labels.instance }} 下线了”
description: “{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minutes.”
留神:
1、for 指定达到告警阈值之后,统一要继续多长时间,才发送告警数据。
2、labels中能够指定自定义的标签,如果定义的标签曾经存在,则会被笼罩。能够应用模板。
3、annotations 中的数据,能够应用模板,$labels示意告警数据的标签,{{$value}}示意工夫序列的值。
2、批改prometheus.yml执行告警规定的地位
rule_files:
– “rules/*_rule.yaml”
示意加载 prometheus.yaml目录下级目录下的rules目录下所有的以 _rule.yaml结尾的文件。
留神:
./promtool check config prometheus.yml 能够检测咱们的配置文件是否编写正确。
3、配置文件截图
4、页面上看告警数据信息
从上图中能够告警数据,存在3个状态,Inactive、Pending和Firing。
5、查问prometheus产生的告警数据
四、告警数据的状态
1、Inactive
示意没有达到告警的阈值,即expr表达式不成立。
2、Pending
示意达到了告警的阈值,即expr表达式成立了,然而未满足告警的持续时间,即for的值。
3、Firing
曾经达到阈值,且满足了告警的持续时间。
经测试发现,如果同一个告警数据达到了Firing,那么不会再次产生一个告警数据,除非该告警解决了。
eg:
比方:192.168.1.1:9080 这个服务的宕机工夫超过了1分钟,并且产生了一个Firing的告警数据,如果这台机器没有复原,则不会再次产生雷同的告警数据。
五、参考文档
1、https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8665 人正在系统学习中 相关资源:国标软件设计文档(操作手册(GB8567——88),测试分析 告(GB8567…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!