Prometheus告警规则的配置主要包括以下几个步骤:
1、安装并配置Alertmanager
2、创建告警规则文件
3、在Prometheus配置文件中引用告警规则文件
4、重启Prometheus和Alertmanager服务
下面是详细的配置过程:
安装并配置Alertmanager
1、下载Alertmanager的二进制文件:
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager0.21.0.linuxamd64.tar.gz
2、解压下载的文件:
tar xzf alertmanager0.21.0.linuxamd64.tar.gz
3、进入解压后的目录:
cd alertmanager0.21.0.linuxamd64
4、创建配置文件alertmanager.yml,并编辑内容:
global:
resolve_timeout: 5m
route:
group_by: [alertname, cluster, service]
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: email
receivers:
name: email
email_configs:
to: youremail@example.com
from: alertmanager@example.com
smarthost: smtp.example.com:587
auth_username: youremail@example.com
auth_password: youremailpassword
templates:
/etc/alertmanager/template/*.tmpl
5、创建模板文件templates/mytemplate.tmpl,并编辑内容:
{{ define "mytemplate" }}
ALERT {{ $labels.alertname }} {{ $labels.cluster }} {{ $labels.service }} {{ $labels.instance }} is {{ $value }}!
{{ end }}
创建告警规则文件myrules.yml,并编辑内容
groups:
name: example_rules
rules:
alert: HighRequestLatency
expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
for: 10m
labels:
severity: page
annotations:
summary: "High request latency"
description: "Request latency is more than 0.5 seconds."
在Prometheus配置文件中引用告警规则文件myrules.yml
rule_files:
"myrules.yml"
重启Prometheus和Alertmanager服务
killall prometheus && killall alertmanager && nohup ./alertmanager config.file=alertmanager.yml & nohup ./prometheus config.file=prometheus.yml & sleep infinity & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & tail f /dev/null & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep f prometheus) & wait $(pgrep f alertmanager) & wait $(pgrep