文章原文
自从接触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
#!/bin/bash
##########################
# pushplus推送zabbix告警 #
#########################
topic=$1    #topic为你的群组
title=$2    #title你要的标题内容
content=$3  #你要的具体消息内容
url=http://pushplus.hxtrip.com/send #pushplus POST和PUT请求接口
json="{\"token\":  \"$token\", \"title\": \"$title\", \"content\": \"$3\", \"template\": \"html\", \"topic\": \"$topic\"}"
curl -H "Content-Type: application/json" -X POST -d "$json" $url

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

zabbix web端设置

创建报警媒介类型

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

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

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

创建动作

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

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

消息内容:和标题一样

告警主机:{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系统运维|自动化运维|云计算|运维监控
文章原文

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐