请启用 Javascript 以查看内容

zabbix告警推送至个人微信

 ·   ·  ☕ 4 分钟  ·  ✍ CNSRE · 👀... 阅读

作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210518420293/
相关话题:https://www.cnsre.cn/tags/zabbix/


自从接触zabbix后,就一直想着怎么才能把告警推送到个人微信上。有这样的想法主要是个人微信的使用频率远远要比钉钉,企业微信,邮箱,飞书等使用频率要高。比如我,就遇到过在周末的时候,因为没有及时登录钉钉查看zabbix告警通知,导致一些告警没来得及处理,对环境产生了影响。
前段时间朋友给推荐了pushplus,一开始主要在jenkins做构建通知用的,后来就想,能不能使用zabbix的告警通知推送到微信上呢?

先介绍下pushplus吧,pushplus 官方介绍
pushplus(推送加)集成了微信、企业微信、钉钉、短信、邮件等实时信息推送平台
你只需要调用简单的API,即可帮助你迅速完成消息的推送,使用简单方便
我们的所做的一切只是为了让推送变的更简单

pushplus

登录官网注册pushplus

访问官网后点击登录,微信扫描即可注册。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

获取pushplus Token

注册成功后。点击一对多,然后新建一个群组。群组编码作为群组的唯一标示,后续需要使用。群组名称随意填写。
创建成功之后点击群组上的查看二维码,将二维码发给需要加入群组的同事。以后推送的消息加入群组的用户都会收的到。在“订阅人”中可以主动的移除不想要的用户。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
然后保存你的token和群组编码。

zabbix_server端设置

查看pushplus调用方式.
附上脚本
脚本很简单,shell直接调用接口即可

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=en_US.UTF-8

 ################################################# "
 # 脚本名称 : zabbix告警推送个人微信脚本            # "
 # 作    者 : sre运维博客                          # "
 # 网    址 : https:www.cnsre.cn                   # "
 ################################################# "


token=c651d07axxxxxxxxxxx  
topic=$1
title=$2                   
content=$3                 
url=http://www.pushplus.plus/send
json="{\"token\":  \"$token\", \"title\": \"$title\", \"content\": \"$3\", \"template\": \"html\", \"topic\": \"$topic\"}"
curl -H "Content-Type: application/json" -X POST -d "$json" $url
  • token 在 pushplus 官网中一对一一对多中查看 你的token
  • topic 在 创建的群组 中的 群组编码
  • title 消息标题
  • content 具体消息内容,根据不同template支持不同格式
  • url http://www.pushplus.plus/send
楼下网友留言说脚本无法使用,后来经过查看发现是注册地址的问题
需要注意你的注册的官网地址 hxtrip 还是 pushplus
不过我还是推荐使用 pushplus 因为 pushplus 在国内是备案了的。

将脚本部署在alertscripts目录下,如果你不知道在那,你可以回想一下你钉钉告警,或者是企业微信告警的脚本放在那。如果实在记不起来,那就find找下alertscripts目录吧

zabbix web端设置

创建报警媒介类型

登录zabbix web端点击管理报警媒介类型创建媒体类型
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
名称:随意写
类型:选择脚本
脚本名称:按照实际名称填写
脚本参数:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

创建动作

点击配置动作创建动作
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
动作
名称:随意写
条件:根据自己的告警需求填写
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
操作
默认操作步骤持续时间:1h
默认标题:你也可以随意写。也可以用下面的。

1
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障! 故障通知!!

消息内容:和标题一样

1
2
3
4
5
6
7
8
9
告警主机:{HOSTNAME1}<br>
IP地址:{HOST.CONN} <br>
告警时间:{EVENT.DATE} {EVENT.TIME}(UTC)<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}<br>

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
操作步骤–点击新的
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
选择发送到用户,点击添加admin选择
仅送到,选择你刚创建的,最后点击添加
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
最为为这样
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
恢复操作
恢复操作和操作一样
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
添加完后
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

创建用户报警媒介

选择管理用户admin
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

测试告警

添加完过后,接下来就测试吧。
我这边选择了一个触发器调了下告警的值,最后展示下告警以及恢复。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210518420293/
相关话题:https://www.cnsre.cn/tags/zabbix/


您的鼓励是我最大的动力
alipay QR Code
wechat QR Code

Avatar
作者
CNSRE
一位只会重启的运维






目录