alertmanager
alertmanager 下载
下载后直接将压缩包丢到服务器解压就行,mv重命名
tar -zxvf alertmanager-0.25.0.linux-amd64.tar.gz
mv alertmanager-0.25.0.linux-amd64.tar.gz alertmanager
vim /etc/systemd/system/alertmanager.service
[Unit]
Description=alertmanager
[Service]
ExecStart=/opt/alertmanager/alertmanager --config.file "/opt/alertmanager/alertmanager.yml"
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
ExecStart 解压后的目录
alertmanager.yml 配置信息
#全局
global:
#resolve 表示告警已解决,timeout 等待时间 将已恢复的情况推送出去。如果在时间内没有收到相同告警的新触发就会将已恢复的告警情况推送出去
resolve_timeout: 5m
#告警模板
templates:
- /opt/*.tmpl
route:
group_by: ['alertname'] #指标统计模板
group_wait: 10s #当alert有告警数据后需要等待10s后初始推送通知
group_interval: 5m #当第一次推送通知发出后,在间隔(group_interval)时间内,又收到了新的告警,则需要等待5m后推送通知
repeat_interval: 3h #告警通知推送成功后,如果问题一直未恢复,再次发送通知间隔(repeat_interval)
receiver: 'default-receiver' #根节点 默认接收者,#webhook:比如你发了一条朋友圈,后端将这条消息推送到所有好友的客户端朋友圈里
#配置多个webhook推送地址
routes: #子路由
- receiver: 'webhook-java' #子路由 推送名称
group_wait: 10s # 等待10s在进行下一个推送
continue: true #推送成功后结束跳出本次推送,默认为false 需要设置为true,在可以配置多个推送地址
- receiver: 'webhook-dingding'
group_wait: 10s
continue:false # 最后一个推送地址 可以不用配置continue
receivers:
- name: 'default-receiver' #名称同以上
webhook_configs: #路径配置
- url: 'https://ip:8060/dingtalk/webhook1/send'
- name: 'webhook-java'
webhook_configs: #java路径webhook路径配置
- url: 'http://ip:8080/prometheus/webhook'
告警模板
vim /opt/templet.tmpl
{{ define "templet.default.message" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
======== 异常告警 ========
告警名称:{{ $alert.Labels.alertname }}
告警级别:{{ $alert.Labels.severity }}
告警机器:{{ $alert.Labels.instance }} {{ $alert.Labels.device }}
告警详情:{{ $alert.Annotations.summary }}
告警时间:{{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
========== END ==========
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
======== 告警恢复 ========
告警名称:{{ $alert.Labels.alertname }}
告警级别:{{ $alert.Labels.severity }}
告警机器:{{ $alert.Labels.instance }}
告警详情:{{ $alert.Annotations.summary }}
告警时间:{{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
恢复时间:{{ $alert.EndsAt.Format "2006-01-02 15:04:05" }}
========== END ==========
{{- end }}
{{- end }}
{{- end }}
prometheus.yml 配置信息 alert默认端口9093
#关联alertmanager
alerting:
alertmanagers:
- static_config:
- targets: ["ip:9093"]
#获取rule,告警信息指标
rule_files:
- "rules/*.rules"
** alertmanager.yml 配置信息中有一个钉钉推送的配置,如果不需要可以删减掉 下一篇写**