AlertManager实现企业微信报警(十三)

AlertManager实现企业微信报警

1.AlertManager对接企业微信

ALertManager支持的报警方式有邮件报警、钉钉报警、微信报警,本次将实现企业微信报警

2.企业微信配置

2.1.注册一个企业微信

在这里插入图片描述

2.2.创建一个报警机器人

在应用管理点击创建应用即可
在这里插入图片描述

2.3.创建部门

注册完企业微信就会有一个部门

在这里插入图片描述

2.4.记录重要信息用于配置

1、记下企业id号

在我的企业—最下面就会有企业id

ww48f74fc8ed3a07ba

在这里插入图片描述

2、记录部门id号

部门id为1

在这里插入图片描述

3、记录机器人id和secret

AgentId:1000003
Secret:j3ocaGJJM7KejlqzBIJ38b6D6t9QhqlIAh7k4fA1cT0

在应用管理找到机器人
在这里插入图片描述

3.配置prometheus

3.1.集成alertmanager

1.修改配置文件
[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml 
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 192.168.81.210:9093

2.加载配置
[root@prometheus-server ~]# curl -XPOST 192.168.81.210:9090/-/reload

3.2.编写一个磁盘告警的告警规则

1.添加规则
[root@prometheus-server ~]# vim /data/prometheus/rules/node.yml 
groups:
- name: node.rules
  rules:
  - alert: NodeFilessystemUsage
    expr: 100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100) > 80
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率过高"
      description: "{
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率超过80% (当前值: {
   
   { $value }}) "
      
2.加载配置
[root@prometheus-server ~]# curl -XPOST 192.168.81.210:9090/-/reload      

4.配置alertmanager支持微信报警

4.1.修改主配置文件增加微信报警

配置文件介绍

receivers:
- name: 'wechat'						//定义接收者名称
  wechat_configs:				//使用微信配置
    - corp_id: 'ww48f74fc8ed3a07ba'				//填写企业id
      to_party: '1'								//部门id
      agent_id: '1000003'			//机器人应用id
      api_secret: 'j3ocaGJJM7KejlqzBIJ38b6D6t9QhqlIAh7k4fA1cT0'		//机器人api secret值
      send_resolved: true
1.修改配置文件
[root@prometheus-server ~]# vim /data/alertmanager/alertmanager.yml
global:
  resolve_timeout: 5m

templates:										#定义微信告警内容模板
  - '/data/alertmanager/wechat.tmpl'
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 10m
  receiver: 'wechat'

receivers:
- name: 'wechat'
  wechat_configs:
    - corp_id: 'ww48f74fc8ed3a07ba'
      to_party: '1'
      agent_id: '1000003'
      api_secret: 'j3ocaGJJM7KejlqzBIJ38b6D6t9QhqlIAh7k4fA1cT0'
      send_resolved: true

4.2.编写微信告警内容模板

[root@prometheus-server ~]# vim /data/alertmanager/wechat.tmpl 
{
   
   { define "wechat.default.message" }}
{
   
   { range $i, $alert :=.Alerts }}
========监控报警==========
告警状态:{
   
   {   .Status }}
告警级别:{
   
   { $alert.Labels.severity }}
告警类型:{
   
   { $alert.Labels.alertname }}
告警应用:{
   
   { $alert.Annotations.summary }}
告警主机:{
   
   { $alert.Labels.instance }}
告警详情:{
   
   { $alert.Annotations.description }}
触发阀值:{
   
   { $alert.Annotations.value }}
告警时间:{
   
   { $alert.StartsAt.Format "2006-01-02 15:04:05" }}
========end=============
{
   
   { end }}
{
   
   { end }}

5.触发磁盘告警

将我们写的告警规则的阈值调小即可触发告警,将阈值改为10

[root@prometheus-server ~]# vim /data/prometheus/rules/node.yml 
groups:
- name: node.rules
  rules:
  - alert: NodeFilessystemUsage
    expr: 100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100) > 10
    for: 1m
    labels:
      serverity: warning
    annotations:
      summary: "主机 {
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率过高"
      description: "{
   
   { $labels.instance }} : {
   
   { $labels.mountpoint }} 磁盘使用率超过80% (当前值: {
   
   { $value }}) "

已经触发并发送告警

FIRING状态表示问题发生且已经发送告警
在这里插入图片描述

6.查看微信告警消息

6.1.问题发生的告警

由于我们有3台node节点,因此都会发到同一条告警消息中

告警状态为firing表示问题发生,且没有处理

在这里插入图片描述

6.2.问题解决的告警

告警状态为resolved表示问题已解决已经恢复正常

告警消息极其丰富,特别详细

6.查看微信告警消息

6.2.问题解决的告警

告警状态为resolved表示问题已解决已经恢复正常

告警消息极其丰富,特别详细

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/113985409
今日推荐