zabbix配置微信报警
原文:https://jingyan.baidu.com/article/5225f26b4ad810e6fb090858.html
在运维工作中,及时接收服务器报警信息是非常重要的内容,如何及时接收报警信息呢,现在已有邮件报警、短信报警、微信报警,但是我们生活中使用频率最多的软件应该就是微信了吧,使用微信报警能够及时接收到报警信息,也不会忽略。能够更及时处理服务器故障,有利于提高工作效率。
#!/bin/bash
CropID='ww55cbc85cf6da7a29'
Secret='aYzwkRWHXCLGz92Ayx7FWWxaXwtxdv4rfQK-G5atnHo'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
echo $Gtoken
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local AppID=1000002
local UserID=@all
local PartyID=1
local Msg=$(echo "$@" | cut -d " " -f3-)
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'"$AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t"},\n'
printf '\t"safe:":0\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
配置微信企业号
-
首先需要申请一个微信企业号,在企业号里配置好对应的组织架构,即给哪个部门发送报警信息。申请微信公众号的过程就不过多赘述了,只是要注意,一定要申请企业号,如下图所示。后面只讲申请好以后需要做的事情。
-
点击通讯录,在组织架构里创建公司和部门,微信企业号的架构是3层架构,第一层是公众号名称,第二层是企业名,然后在企业名下创建子部门,即第三级架构。创建好企业名后,点击企业名旁边的小三角图标(鼠标移过去就可以看到),点击添加子部门,就可以添加第三层部门了。点击修改部门就可以看到部门的信息,以及后面我们需要的一个重要信息:部门ID。如下图所示:
-
所有信息添加完成后,为部门添加需要接收报警信息的成员。点击新增成员,然后在弹出来的页面里添加成员信息。填写完成后点击保存,这个账号里面必须填上微信号、手机号、邮箱等三者中的一个,且和接收报警的微信号能够匹配。
-
用你添加的微信号扫描企业号的二维码并关注这个二维码。
-
创建企业号管理组和报警应用,点击企业号管理页面左边的应用中心,然后在新页面里点击新建应用,选择应用类型(消息型应用),填写相关资料后保存。
-
保存好以后如下图所示,点击创建的新应用运维中心,就能看到运维中心的相关资料,记下第二个重要资料:应用ID
-
创建管理组,点击企业号管理界面左边的设置,然后点击中间的权限设置,点击新建,开始创建管理组。管理组是用来调用刚才创建的应用来给对应部门的人员发送微信消息。
填写管理组的相关资料
设置权限,运维管理组只能查看和管理运维部门、运维中心应用。
填写好以后保存,就能看到运维管理组的相关资料,这时候需要记下两个重要信息,分别是运维管理组的CorpID和Secret。
至此,微信企业号这里的配置就弄好了。
END
微信报警脚本配置
-
完成了微信企业号这边的配置,同时收集了下面几个重要的资料:
应用ID 、部门ID 、成员账号 、cropid、Secret
下面就需要将这几个资料添加到报警脚本里面去,下图就是报警脚本的内容。文本内容如下:
CropID=''
Secret=''
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
echo $Gtoken
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=1
local UserID=$1
local PartyID=
local Msg=$(echo "$@" | cut -d " " -f3-)
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'"$AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t"},\n'
printf '\t"safe:":0\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
-
添加好了以后我们来测试这个脚本是否可以正常运行。根据脚本的内容可以知道,脚本运行时后面需要带三个参数,分别是:接收数据的用户、报警信息标题、报警信息内容。下图是测试的结果:可以看到输出了一个access token,返回的消息是ok。说明正确接收。脚本配置完毕。将配置好的脚本转移到zabbix配置文件的alertscript目录下,并给脚本修改用户、属组,添加执行权限
chown zabbix.zabbix wechat.sh
chmod u+x wechat.sh
mv wechat.sh /usr/local/zabbix3/alertscript/ (这个路径每个人都可能不一样,要小心配置)
END
































浙公网安备 33010602011771号