Prometheus通过企业微信接收告警

准备工作

step 1: 访问企业微信 注册企业微信账号(不需要企业认证)。

step 2: 访问应用管理 创建第三方应用,点击创建应用按钮 -> 填写应用信息:

Prometheus配置

  • prometheus.yml 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']

rule_files:
- "rules.yml"

scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
  • rules.yml 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
groups:
- name: prometheus_go_goroutines
rules:
- alert: go_goroutines_numbers
expr: go_goroutines > 100
for: 15s
annotations:
summary: "prometheus的gorotine数据超过100!"
- name: node
rules:
- alert: server_status
expr: up{job="node"} == 0
for: 15s
annotations:
summary: "机器 {{ $labels.instance }} 宕机"
description: "机器 {{ $labels.instance }} 宕机"

Alertmanger配置

  • alertmanager.yml
1
2
3
4
5
6
7
8
9
10
11
12
route:
group_by: ['alertname']
receiver: 'wechat'

receivers:
- name: 'wechat'
wechat_configs:
- send_resolved: true
corp_id: 'xxx'
to_party: '1'
agent_id: '1000002'
api_secret: 'xxxx'

参数说明:

  • corp_id: 企业微信账号唯一ID,可以在我的企业中查看
  • to_party: 需要发送的组
  • agent_id: 第三方企业应用的ID,可以在自己创建的第三方企业应用详情页面查看
  • api_secret: 第三方企业应用的密钥,可以在自己创建的第三方企业应用详情页面查看

配置模板

  • alertmanager.yml
1
2
templates:
- './template/wechat.tmpl'
  • wechat.tmpl
1
2
3
4
5
6
7
8
9
10
11
12
13
{{ define "wechat.default.message" }}
{{ range .Alerts }}
========start=========
告警程序: prometheus_alert
告警级别: {{ .Labels.serverity }}
告警类型: {{ .Labels.alertname }}
故障主机: {{ .Labels.instance }}
告警主题: {{ .Annotations.summary }}
告警详情: {{ .Annotations.description }}
触发时间: {{ .StartsAt.Format "2019-11-02 15:08:05" }}
=========end===========
{{ end }}
{{ end }}

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :