1.alertmanager配置文件说明
# cat /root/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m # resolve_timeout:解析超时时间
http_config:
proxy_url: 'http://192.168.13.190:7777'
route: # route标记:告警如何发送分配
group_by: ['alertname'] # group_by:采用哪个标签作为分组的依据
group_wait: 10s # group_wait:分组等待的时间
group_interval: 10s # group_interval:上下两组发送告警的间隔时间
repeat_interval: 1h # repeat_interval:重复发送告警时间。默认1h
receiver: 'rocketchat' # receiver 定义谁来通知报警
receivers: # receiver标记:告警接受者
- name: 'rocketchat'
webhook_configs:
- url: 'http://211.149.224.155:3000/hooks/ZanvEXd5t2Qaoycvm/Wwff7ndDeCq8DqFnaGhi4gdGWHpXJnaWyQoQzESypwwBvApJ'
send_resolved: true
主要配置的作用:
global: 全局配置,包括报警解决后的超时时间、SMTP 相关配置、各种渠道通知的 API 地址等等。
route: 用来设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。
receivers: 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式。
检查alertmanager配置文件
# /root/alertmanager/amtool check-config /root/alertmanager/alertmanager.yml
Checking '/root/alertmanager/alertmanager.yml' SUCCESS
Found:
- global config
- route
- 0 inhibit rules
- 1 receivers
- 0 templates
2.prometheus配置alert规则
# vi /root/prometheus-2.25.0.linux-amd64/prometheus.yml
增加以下内容
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:['192.168.8.124:9093']
rule_files:
- "rules/*.yml"
- job_name: 'alertmanager'
scrape_interval: 10s
static_configs:
- targets: ['192.168.8.124:9093']
# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 1 rule files found
Checking rules/node_alerts.yml
SUCCESS: 1 rules found
# cd /root/prometheus-2.25.0.linux-amd64
# mkdir rules && cd rules/
# touch linux_rule.yml
# groups:组告警
groups:
# name:组名。报警规则组名称
#NAME?
# rules:定义角色
rules:
# alert:告警名称。 任何实例5分钟内无法访问发出告警
- alert: NodeFilesystemUsage
# expr:表达式。 获取磁盘使用率 大于百分之80 触发
expr: 100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100) > 80
# for:持续时间。 表示持续一分钟获取不到信息,则触发报警。0表示不使用持续时间
for: 1m
# labels:定义当前告警规则级别
labels:
# severity: 指定告警级别。
severity: warning
# annotations: 注释 告警通知
annotations:
# 调用标签具体指附加通知信息
summary: "Instance {{ $labels.instance }} :{{ $labels.mountpoint }} 分区使用率过高" # 自定义摘要
description: "{{ $labels.instance }} : {{ $labels.job }} :{{ $labels.mountpoint }} 这个分区使用大于百分之80% (当前值:{{ $value }})" # 自定义具体描述
# systemctl restart prometheus
3.Web查看:
http://192.168.8.124:9090/alerts
http://192.168.8.124:9090/targets
4.prometheus rules参考
URL:https://awesome-prometheus-alerts.grep.to/rules