Alertmanager 企业微信告警配置
背景
公司用的是企业微信做日常工作交流,那么告警用邮箱的话,第一个是比较麻烦(不是人人都会时时查看邮件),第二个是邮件丢失的可能性还是有的
开始
创建告警机器人
访问企业微信后台
配置 prometheus
安装 prometheus
和 alertmanage
,注意参照文章安装的时候暂时跳过修改配置文件的步骤,安装可参照
https://www.itwordsweb.net/linux_doc/prometheus_grafana_alarm.html
参照上面文章安装好 prometheus
和 alertmanage
后,修改配置文件
prometheus.yml
示例
global:
scrape_interval: 15s
evaluation_interval: 60s
rule_files:
- /etc/prometheus/rules/node.yml
alerting:
alertmanagers:
- static_configs:
- targets: ["10.18.193.95:9093"]
scrape_configs:
- job_name: CF_SERVER_OF
static_configs:
- targets:
- 10.18.193.95:9100
- 10.18.193.91:9100
- job_name: CF_SERVER_QC
static_configs:
- targets:
- 10.26.1.11:9100
- 10.26.1.17:9100
/data/prometheus/rules
目录下新建文件 node.yml
node.yml
示例
groups:
- name: 基础状态告警
rules:
- alert: 内存使用率过高
expr: (1-(node_memory_MemAvailable_bytes/(node_memory_MemTotal_bytes)))*100 > 90
for: 5m
labels:
severity: warning
annotations:
summary: "{{$labels.instance}}:{{$labels.nodename}} 内存使用率过高!"
description: "{{$labels.job}}:{{$labels.instance}}:{{$labels.nodename}} 内存使用率超过 90%!当前值为:{{ $value }}"
老规矩,运行 docker cp /data/prometheus/rules cf_prometheus:/etc/prometheus/
把配置文件复制到 prometheus
,再重启 prometheus
配置 alertmanager
alertmanager.yml
示例
global:
# 在没有报警的情况下声明为已解决的时间
resolve_timeout: 5m
templates:
# 这个是企业微信告警模板文件
- "./template/cf.tmpl"
route:
group_by: ["alertname"]
group_wait: 10s
# 告警信息发送之前的等待时长
group_interval: 30s
# 重复报警的间隔时长
repeat_interval: 5m
# 这个名称要和下面的对应
receiver: "wxwork"
receivers:
# 这个名称要和上面的对应
- name: "wxwork"
wechat_configs:
# 是都发送恢复信息
- send_resolved: true
# 填写机器人的 AgentId
agent_id: "XXXXXX"
# 这个表示所有可以看到这个机器人应用的人都能接收到告警消息
to_user: "@all"
# 填写机器人的 Secret
api_secret: "XXXXXX"
# 填写企业 ID
corp_id: "XXXXXX"
配置 template/cf.tmpl
文件
cf.tmpl
示例
{{ define "wechat.default.message" }}
{{ range $i, $alert :=.Alerts }}
========监控报警==========
告警状态:{{ .Status }}
告警级别:{{ .Labels.severity }}
告警类型:{{ .Labels.alertname }}
告警 IP :{{ .Labels.instance }}
告警主机: {{ .Labels.nodename}}
告警摘要:{{ .Annotations.summary }}
告警详情:{{ .Annotations.description }}
告警时间:{{ .StartsAt.Format "2006-01-02 15:04:05" }}
恢复时间:{{ $alert.EndsAt.Format "2006-01-02 15:04:05" }}
========end=============
{{ end }} {{ end }}
启动 alertmanager
nohup /data/alertmanager/alertmanager --config.file="/data/alertmanager/alertmanager.yml" > /data/alertmanager/alertmanager.log 2>&1 &
看效果
人为触发告警后,企业微信看到的效果是这样子的
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Linux 小白鼠!
觉得文章不错,打赏一点吧,1分也是爱~
打赏
微信
支付宝