zabbix告警推送至个人微信
文章原文
自从接触zabbix
后,就一直想着怎么才能把告警推送到个人微信上。有这样的想法主要是个人微信的使用频率远远要比钉钉,企业微信,邮箱,飞书等使用频率要高。比如我,就遇到过在周末的时候,因为没有及时登录钉钉查看zabbix
告警通知,导致一些告警没来得及处理,对环境产生了影响。
前段时间朋友给推荐了pushplus
,一开始主要在jenkins
做构建通知用的,后来就想,能不能使用zabbix
的告警通知推送到微信上呢?
先介绍下pushplus
吧,pushplus
官方介绍
pushplus
(推送加)集成了微信、企业微信、钉钉、短信、邮件等实时信息推送平台
你只需要调用简单的API,即可帮助你迅速完成消息的推送,使用简单方便
我们的所做的一切只是为了让推送变的更简单
pushplus
登录官网注册pushplus
获取pushplus Token
注册成功后。点击一对多
,然后新建一个群组。群组编码作为群组的唯一标示,后续需要使用。群组名称随意填写。
创建成功之后点击群组上的查看二维码
,将二维码发给需要加入群组的同事。以后推送的消息加入群组的用户都会收的到。在“订阅人”中可以主动的移除不想要的用户。
然后保存你的token和群组编码。
zabbix_server端设置
查看pushplus调用方式.
附上脚本
脚本很简单,shell直接调用接口即可
#!/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端点击管理
--报警媒介类型
--创建媒体类型
名称:随意写
类型:选择脚本
脚本名称:按照实际名称填写
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
创建动作
点击配置
--动作
--创建动作
动作
名称:随意写
条件:根据自己的告警需求填写
操作
默认操作步骤持续时间: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>
操作步骤--点击新的
选择发送到用户,点击添加
--admin
--选择
仅送到,选择你刚创建的,最后点击添加
最为为这样
恢复操作
恢复操作和操作一样
添加完后
创建用户报警媒介
选择管理
--用户
--admin
测试告警
添加完过后,接下来就测试吧。
我这边选择了一个触发器
调了下告警的值,最后展示下告警以及恢复。
文章原文