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