大良营销网站建设特色,软件商店下载app,苏州中国建设银行招聘信息网站,wordpress实现翻页效果一、前言
要实现Prometheus的告警发送需要通过alertmanager组件#xff0c;当prometheus触发告警策略时#xff0c;会将告警信息发送给alertmanager#xff0c;然后alertmanager根据配置的策略发送到邮件或者钉钉中#xff0c;发送到钉钉需要安装额外的prometheus-webhook…一、前言
要实现Prometheus的告警发送需要通过alertmanager组件当prometheus触发告警策略时会将告警信息发送给alertmanager然后alertmanager根据配置的策略发送到邮件或者钉钉中发送到钉钉需要安装额外的prometheus-webhook-dingtalk组件用于发送告警信息到钉钉中,如果是用邮件的话直接在alertmanager配置即可不用安装额外组件
二、部署
这里就主要讲解发送告警信息到钉钉中的配置
2.1部署alertmanager
下载altermanager安装包我这边下载的是0.25.0版本
下载路径Releases · prometheus/alertmanager · GitHub mkdir /opt/alertmanager cd /opt/alertmanager
tar -zxvf alertmanager-0.25.0.linux-amd64.tar.gz
mv alertmanager-0.25.0.linux-amd64 alertmanager
cd alertmanager ls 配置系统管理启动alertmanager服务
vi /usr/lib/systemd/system/alertmanager.serivce
[Unit]
Descriptionalertmanager
Afternetwork.target[Service]
ExecStart/opt/alertmanager/alertmanager/alertmanager --config.file/opt/alertmanager/alertmanager/alertmanager.yml #配置启动服务命令指定配置文件
Userroot[Install]
WantedBymulti-user.target
2.2部署prometheus-webhook-dingtalk
在部署前先配置好钉钉机器人启用加签功能复制webhook地址和加签密钥 下载prometheus-webhook-dingtalk安装包我这边下载的是2.1.0版本 下载路径Releases · timonwong/prometheus-webhook-dingtalk · GitHub
mkdir /opt/dingtalk cd /opt/dingtalk
tar -zxvf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 dingtalk
cd dingtalk ls 复制重命名配置文件
cp config.example.yml config.yml
编辑配置文件
vi config.yml
templates:- /opt/dingtalk/dingtalk/template.tmpl #配置告警信息模板targets:webhook1:url: https://oapi.dingtalk.com/robot/send?access_tokencfe1e0d1cfb457a31b20d6005785f5c7367542d5bd82725eb1b2f6738d0be418 #配置上面记录的钉钉机器人的webhook# secret for signaturesecret: SEC60b0e5076407b1d1d97c26afa2acb54edf7270b9e23826a65c3f085e48c5dcfd #配置上面记录的钉钉机器人加签的密钥下面的内容按照默认配置即可webhook2:url: https://oapi.dingtalk.com/robot/send?access_tokenxxxxxxxxxxxxwebhook_legacy:url: https://oapi.dingtalk.com/robot/send?access_tokenxxxxxxxxxxxx# Customize template contentmessage:# Use legacy templatetitle: {{ template legacy.title . }}text: {{ template legacy.content . }}webhook_mention_all:url: https://oapi.dingtalk.com/robot/send?access_tokenxxxxxxxxxxxxmention:all: truewebhook_mention_users:url: https://oapi.dingtalk.com/robot/send?access_tokenxxxxxxxxxxxxmention:mobiles: [156xxxx8827, 189xxxx8325]
编辑告警模板
vi /opt/dingtalk/dingtalk/template.tmpl
{{ define __subject }}
[{{ .Status | toUpper }}{{ if eq .Status firing }}:{{ .Alerts.Firing | len }}{{ end }}]
{{ end }}{{ define __alert_list }}{{ range . }}
---
{{ if .Labels.owner }}{{ .Labels.owner }}{{ end }}**告警主题**: {{ .Annotations.summary }}**告警类型**: {{ .Labels.alertname }}**告警级别**: {{ .Labels.severity }} **告警主机**: {{ .Labels.instance }} **告警信息**: {{ index .Annotations description }}**告警时间**: {{ dateInZone 2006.01.02 15:04:05 (.StartsAt) Asia/Shanghai }}
{{ end }}{{ end }}{{ define __resolved_list }}{{ range . }}
---
{{ if .Labels.owner }}{{ .Labels.owner }}{{ end }}**告警主题**: {{ .Annotations.summary }}**告警类型**: {{ .Labels.alertname }} **告警级别**: {{ .Labels.severity }}**告警主机**: {{ .Labels.instance }}**告警信息**: {{ index .Annotations description }}**告警时间**: {{ dateInZone 2006.01.02 15:04:05 (.StartsAt) Asia/Shanghai }}**恢复时间**: {{ dateInZone 2006.01.02 15:04:05 (.EndsAt) Asia/Shanghai }}
{{ end }}{{ end }}{{ define default.title }}
{{ template __subject . }}
{{ end }}{{ define default.content }}
{{ if gt (len .Alerts.Firing) 0 }}
**侦测到{{ .Alerts.Firing | len }}个故障**
{{ template __alert_list .Alerts.Firing }}
---
{{ end }}{{ if gt (len .Alerts.Resolved) 0 }}
**恢复{{ .Alerts.Resolved | len }}个故障**
{{ template __resolved_list .Alerts.Resolved }}
{{ end }}
{{ end }}{{ define ding.link.title }}{{ template default.title . }}{{ end }}
{{ define ding.link.content }}{{ template default.content . }}{{ end }}
{{ template default.title . }}
{{ template default.content . }} 配置系统管理启动prometheus-webhook-dingtalk服务
vi /usr/lib/systemd/system/dingtalk.service
[Unit]
Descriptionprometheus-webhook-dingtalk
Afternetwork.target[Service]
ExecStart/opt/dingtalk/dingtalk/prometheus-webhook-dingtalk --config.file/opt/dingtalk/dingtalk/config.yml
Userroot[Install]
WantedBymulti-user.target
配置开机启动dingtalk服务
systemctl enable dingtalk systemctl start dingtalk
查看钉钉服务端口 netstat -tlpn 前面还没有配置和启动alertmanager服务现在来编辑alertmanager配置文件
vi /opt/alertmanager/alertmanager/alertmanager.yml
route:group_by: [dingding] #配置告警分组的标签group_wait: 30s #配置项定义分组等待时间当一组告警被触发后在这个时间段内其他属于同一组的告警也会被等待。这可以用于在一定时间内收集同一组告警以便一次性发送通知group_interval: 5m #配置项定义分组间隔时间一旦一个告警组的首个告警触发了通知等待指定的间隔时间后即使组内有其他告警也会重新触发通知。这可以避免过于频繁地发送通知repeat_interval: 1h #配置项定义重复通知的间隔时间在一组告警已经触发过一次通知后过了指定的间隔时间如果该组内的告警仍然处于触发状态会再次触发通知。这可以用于周期性地提醒用户receiver: web.hook #配置默认的接收者名称用于定义接收告警通知的目标routes:- receiver: web.hook #定义一个路由规则将告警发送到名为 web.hook 的接收者match_re: #使用正则表达式来匹配告警标签该配置是匹配所有告警alertname: .*
receivers:- name: web.hook #定义名为 web.hook 的接收者webhook_configs: #指定接收者的配置- url: http://10.1.60.118:8060/dingtalk/webhook1/send #指定启用的钉钉组件服务为接收者webhook1也是刚刚dingtalk配置文件的指定项send_resolved: true #表示也会发送已解决的告警通知
inhibit_rules: #- source_match: 和 - target_match: 定义了一条抑制规则这条规则表示当源告警的标签中 severity 是 critical 时会抑制目标告警中 severity 是 warning 的告警- source_match:severity: criticaltarget_match:severity: warningequal: [alertname, dev, instance] #指定了需要相等的标签列表只有这些标签相同的告警才会进行抑制
alertmanager服务开机启动
systemctl enable alertmanager systemctl start alertmanager
查看altermanager服务
netstat -tlpn
9094是alertmanager集群服务的通信端口9093是alertmanager的服务端口 访问alertmanager服务
http://10.1.60.118:9093 在Prometheus的配置文件中配置alertmanager服务地址并配置告警规则就可以使用alertmanager服务实现钉钉告警了