人际关系处理时间
万万没想到,配个报警,花了我⼀天的时间,以下可以直接粘贴使⽤,亲测可⽤,都是⼀步⼀步摸索的结晶,有⽤请点个赞吧!转载请备注出处
解释以下为什么不使⽤grafana配和预警,因为grafana⽐较局限,⽽且在使⽤模板的情况下是不允许进⾏Alert预警的,所以最后我才直接采⽤了Prometheus下的alertmanager报警,放弃了grafana。
⽬录
Prometheus下的alertmanager报警配置及本地时间配置
1.企业账号注册
添加Grafana的应⽤:
剩下的⾃⼰填写啊,真的不想在这⾥花太多时间
后⾯要⽤到的字段:
to_user:
agent_id 和 api_secret:
2.alertmanager的下载配置
切记下载对应版本,否则都启动不起来,别问我怎么知道的!啊,想想就上头!
3. 对alertmanager进⾏配置
这⾥分为三步
第⼀进⾏⽂件解压: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 }}
{{ 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"
发布评论