正文
Prometheus+alertmanager实现告警的简单验证
背景
学习源自: http://www.mydlq.club/article/126/
上午没搞定, 中午睡不着,继续学习处理.
发现最恶心的有点事 alertmanager的 --cluster.listen-address --web.listen-address 两个参数
很多资料里面只写了第一个参数, 没写第二个参数. 导致我端口冲突(测试kafka私用)
无法正常使用, 浪费了至少 1h 的时间. 还是需要多查看 -h 以及一些帮助文档的.
复制
服务启动设置.
cd /prometheus/xxxx
nohup ./prometheus --config.file=prometheus.yml --storage.tsdb.retention.time=168h --web.listen-address=:19090 --web.enable-lifecycle >/dev/null 2>&1 &
nohup ./alertmanager --web.listen-address=":19093" --cluster.listen-address="0.0.0.0:19094" --config.file=alertmanager.yml --storage.path="/prometheus/alertdata/" --data.retention=120h >/dev/null 2>&1 &
复制
Alertmanager 预警邮件模板
vim mail.temp
{{ define "email.to" }}380235180@qq.com{{ end }}
{{ define "email.title" }}来自济南小老虎的报警{{ end }}
{{ define "email.to.html" }}
{{ range .Alerts }}
<p>==========<strong>告警通知</strong>==========</p>
<strong>告警程序:</strong> prometheus_alert<br>
<strong>告警级别:</strong> {{ .Labels.severity }}<br>
<strong>告警类型:</strong> {{ .Labels.alertname }}<br>
<strong>告警实例:</strong> {{ .Labels.instance }}<br>
<strong>告警信息:</strong> {{ .Annotations.summary }}<br>
<strong>告警描述:</strong> {{ .Annotations.description }}<br>
<strong>当前状态:</strong> {{ .Status }}<br>
<strong>触发时间:</strong> {{ .StartsAt.Format "2023-01-01 15:04:05" }}<br>
<strong>监控界面地址:</strong> <a href="{{ .GeneratorURL }}">点击跳转</a><br>
{{ end }}
{{ end }}
复制
Alertmanager 预警自己的配置文件
vim alertmanager.yml
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.qq.com:25'
smtp_from: '380235180@qq.com'
smtp_auth_username: '380235180@qq.com'
smtp_auth_password: 'xxxxxxxx'
smtp_require_tls: false
templates:
- '*.temp'
route:
group_by: ['alertname', 'cluster']
group_wait: 30s
group_interval: 10m
repeat_interval: 30m
receiver: 'email'
routes:
- receiver: 'email'
group_wait: 30s
match:
alertname: email-test
receivers:
- name: 'email'
email_configs:
- to: '{{ template "email.to" }}'
headers: { Subject: '{{ template "email.title" }}【告警状态: {{ .Status }}】' }
html: '{{ template "email.to.html" .}}'
send_resolved: true
复制
prometheus的设置
修改配置文件
vim prometheus.yml
alerting:
alertmanagers:
- static_configs:
- targets: ['127.0.0.1:19093']
rule_files:
- "*-rule.yml"
复制
prometheus 设置告警规则
vim email-rule.yml
groups:
- name: Instances
rules:
- alert: InstanceDown
expr: up > -1
for: 1m
labels:
severity: page
alertname: email-test
annotations:
description: '{{ $labels.instance }} 实例的 {{ $labels.job }} 任务宕机已经超过 1 分钟.'
summary: '实例 {{ $labels.instance }} 宕机'
复制
动态刷新
curl -XPOST http://127.0.0.1:19093/-/reload
curl -XPOST http://127.0.0.1:19090/-/reload
复制
说明
网上资料挺多的, 可以简单实现 .但是很多写法还是不熟悉, 需要再次验证.
复制