Prometheus下的alertmanager报警配置及本地时间配置,解决UTC改本地
时间
万万没想到,配个报警,花了我⼀天的时间,以下可以直接粘贴使⽤,亲测可⽤,都是⼀步⼀步摸索的结晶,有⽤请点个赞吧!转载请备注出处
解释以下为什么不使⽤grafana配和预警,因为grafana⽐较局限,⽽且在使⽤模板的情况下是不允许进⾏Alert预警的,所以最后我才直接采⽤了Prometheus下的alertmanager报警,放弃了grafana。
⽬录
Prometheus下的alertmanager报警配置及本地时间配置
1.企业账号注册
添加Grafana的应⽤:
剩下的⾃⼰填写啊,真的不想在这⾥花太多时间
后⾯要⽤到的字段:
to_user:
agent_id 和 api_secret:
2.alertmanager的下载配置
切记下载对应版本,否则都启动不起来,别问我怎么知道的!啊,想想就上头!
3. 对alertmanager进⾏配置
这⾥分为三步
2022郑州各区教师招聘条件
第⼀进⾏⽂件解压:tar -zxvf alertmanager-0.21.0.
第⼆对⽂件进⾏配置
第⼀个⽂件是在/opt/software/prometheus/alertmanager/alertmanager路径下,修改的⽂件为l,⾥⾯原本的内容全部删除,放下⾯的配置:
global:
resolve_timeout: 5m
receivers:
- name: wechat
wechat_configs:
- agent_id: 'xx2' #这⾥时企业的id
api_secret: 'xxxxxxY' # 这⾥是企业的secret
corp_id: 'wxx4' # 这⾥是企业rp_id
send_resolved: true
to_user: 'JiangWanLin' # 企业的名字
route:
group_by:
- job
group_interval: 5m
group_wait: 30s
receiver: wechat
repeat_interval: 12h
routes:
- match:
alertname: Watchdog
receiver: wechat
templates:
- '/opt/software/prometheus/alertmanager/pl' # 这是你的模板⽂件,就是你报警信息的模板
参数说明:
corp_id: 企业账号唯⼀ ID, 可以在我的企业中查看。
to_party: 需要发送的组。
agent_id: 第三⽅企业应⽤的 ID,可以在⾃⼰创建的第三⽅企业应⽤详情页⾯查看。
api_secret: 第三⽅企业应⽤的密钥,可以在⾃⼰创建的第三⽅企业应⽤详情页⾯查看。
第⼆个⽂件是在/opt/software/prometheus/alertmanager/alertmanager路径下,修改的⽂件为pl
济南市人力资源服务中心说明:这个模板可以发出报警,并且恢复时也可提醒,使⽤本地时间,成效如下:
完整内容:
{{ define "ssage" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 -}}
**********告警通知**********
告警类型: {{ $alert.Labels.alertname }}
告警级别: {{ $alert.Labels.severity }}
{{- end }}
=====================
告警主题: {{ $alert.Annotations.summary }}
告警详情: {{ $alert.Annotations.description }}
故障时间: {{ $alert.StartsAt.Local }}
本地58同城
{{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- end -}}
{{- end }}
安全生产资格证书查询系统
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 -}}
**********恢复通知**********
告警类型: {{ $alert.Labels.alertname }}
告警级别: {{ $alert.Labels.severity }}
初级会计证考试在哪里报名{{- end }}
=====================
告警主题: {{ $alert.Annotations.summary }}
告警详情: {{ $alert.Annotations.description }}
故障时间: {{ $alert.StartsAt.Local }}
恢复时间: {{ $alert.EndsAt.Local }}
{{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- end -}}
{{- end }}
{{- end }}
{{- end }}
尖叫注意!我废了两⼩时才得出的结论!
alertmanager⽤的UTC时间,所以报警时间出来都是错误的所以在这⾥我跋⼭涉⽔终于到了使⽤本地时间的⽅法!就是alert.StartsAt.Local这种写法原罪还是⾃⼰太菜!但是好在解决了,全⽹⾸发~
第三个⽂件是在Prometheus下进⾏修改报警设置:
添加预警的指标,我这⾥写了⼀个test.rules:
groups:
- name: monitor_base
rules:
- alert: CpuUsageAlert_waring
expr: sum(avg(irate(node_cpu_seconds_total{mode!='idle'}[5m])) without (cpu)) by (instance) > 0.60
for: 2m
labels:
level: warning
annotations:
summary: "Instance {{ $labels.instance }} CPU usage high"
description: "{{ $labels.instance }} CPU usage above 60% (current value: {{ $value }})"
- alert: CpuUsageAlert_serious
#expr: sum(avg(irate(node_cpu_seconds_total{mode!='idle'}[5m])) without (cpu)) by (instance) > 0.85
expr: (100 - (avg by (instance) (irate(node_cpu_seconds_total{job=~".*",mode="idle"}[5m])) * 100)) > 85
for: 3m
labels:
level: serious
annotations:
湖北公务员考试结果什么时候公布
summary: "Instance {{ $labels.instance }} CPU usage high"