yum安装所必须的软件包

yum install lrzsz chrony gcc gcc-c++ git openssl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y

安装cpanm工具

curl -L https://cpanmin.us/ -o /usr/bin/cpanm && chmod +x /usr/bin/cpanm

安装相关依赖的perl插件

cpanm --mirror http://mirrors.sohu.com/CPAN/ Digest::MD5 Encode::Locale IO::Socket::SSL Mojolicious Time::Piece Time::Seconds Compress::Raw::Zlib Digest::SHA --force

安装时间稍长,耐心等...

Zabbix 添加QQ消息的方式进行告警_第1张图片

安装Mojo-Webqq

cd /usr/src/

git clone https://github.com/sjdy521/Mojo-Webqq.git

cd Mojo-Webqq/

perl Makefile.PL

make && make install

Zabbix 添加QQ消息的方式进行告警_第2张图片

创建Mojo-Webqq启动脚本

vi /usr/local/bin/MojoWebqq.pl 


#!/usr/bin/env perl

use Mojo::Webqq;

my ($host,$port,$post_api);


$host = "0.0.0.0"; #发送消息接口监听地址,没有特殊需要请不要修改

$port = 5000;      #发送消息接口监听端口,修改为自己希望监听的端口

#$post_api = ‘http://xxxx‘;  #接收到的消息上报接口,如果不需要接收消息上报,可以删除或注释此行


my $client = Mojo::Webqq->new();

$client->load("ShowMsg");

$client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});

$client->run();

Zabbix 添加QQ消息的方式进行告警_第3张图片

添加执行权限 

chmod +x /usr/local/bin/MojoWebqq.pl

后台启动Mojo-Webqq进程

/usr/local/bin/MojoWebqq.pl  >>/var/log/Mojo-Webqq.log 2>&1 &

查看启动日志信息

tail -f /var/log/Mojo-Webqq.log

blob.png

将QQ登录二维码下载到本地使用手机QQ扫码登录,如果你是用的SecureCRT远程访问的CentOS主机,可直接使用以下命令传输文件到Windows主机本地。

sz /tmp/mojo_webqq_qrcode_default.png

Zabbix 添加QQ消息的方式进行告警_第4张图片


然后在SecureCRT的download目录可找到mojo_webqq_qrcode_default.png二维码图片,打开使用手机QQ扫码,,允许登录smartQQ。

Zabbix 添加QQ消息的方式进行告警_第5张图片

在手机QQ上添加你需要接收告警消息的QQ号码为好友后,在Zabbix服务器上创建QQ消息发送脚本。

默认告警脚本位置:/zabbix安装目录/share/zabbix/alertscripts/ ,

不知道的可以使用 find / -name alertscripts 查找地址

例如我这里为

/usr/lib/zabbix/alertscripts

blob.png

vi /usr/lib/zabbix/alertscripts/QQClient.sh 使用vi编辑器添加


#!/bin/bash

#好友的QQ号码

qq=好友的QQ号码

#Mojoqq服务器地址与端口号

server="127.0.0.1"

port="5000"

#消息内容处理下编码,用于合并告警内容的标题和内容,即$2和$3

message=`echo -e "$2\n$3"|od -t x1 -A n -v -w100000 | tr " " %`

#调用的api接口

api_url="http://$server:$port/openqq/send_friend_message"

parameter="uid=$qq&content=$message"

#post方式提交请求发送QQ好友消息

curl -d $parameter $api_url


注意:这里的server为你的Zabbix服务器IP,如果在本机填127.0.0.1也可

Zabbix 添加QQ消息的方式进行告警_第6张图片

保存后,添加所需权限。

chmod +x /usr/lib/zabbix/alertscripts/QQClient.sh

chown -R zabbix.zabbix /usr/lib/zabbix/


测试能否收到消息

bash -x QQClient.sh 好友QQ号码 测试消息1 测试消息2

Zabbix 添加QQ消息的方式进行告警_第7张图片

出现发送成功说明没问题


在Zabbix前端添加QQ消息发送配置。管理-报警媒介类型-创建媒介类型。

Zabbix 添加QQ消息的方式进行告警_第8张图片

名称:QQ告警

类型:脚本

脚本名称:QQClient.sh

脚本参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

管理-用户-Admin

Zabbix 添加QQ消息的方式进行告警_第9张图片

报警媒介-添加

类型:QQ消息

收件人为接受告警消息的好友QQ号码

Zabbix 添加QQ消息的方式进行告警_第10张图片

配置-动作-触发器类型创建新动作

blob.png

根据具体的应用创建动作名称,触发条件等等。

Zabbix 添加QQ消息的方式进行告警_第11张图片


操作选项卡,点击 新的

Zabbix 添加QQ消息的方式进行告警_第12张图片

Zabbix 添加QQ消息的方式进行告警_第13张图片

Zabbix 添加QQ消息的方式进行告警_第14张图片

点击添加

恢复操作选项卡与此类似

Zabbix 添加QQ消息的方式进行告警_第15张图片

blob.png

完成配置后即可实现QQ消息自动接收Zabbix告警消息。

-----测试----

管理-用户-Admin(你要通知的用户)-报警媒介-添加-收件人填入需要通知的QQ好友的号码

Zabbix 添加QQ消息的方式进行告警_第16张图片

然后在配置-主机中添加一个要测试的IP地址(这里使用PING测试,为了方便测试可以把监控项的间隔改小一点)

Zabbix 添加QQ消息的方式进行告警_第17张图片

blob.png

测试项添加完成,然后断开被测试IP的网络

可以看到,已经收到告警

Zabbix 添加QQ消息的方式进行告警_第18张图片


---END--


PS:如果想更换发消息的QQ号码,登录http://w.qq.com

扫描登录后,然后注销退出,运行

/usr/local/bin/MojoWebqq.pl  >>/var/log/Mojo-Webqq.log 2>&1 &

使用新的二维码扫描登录即可




参考

https://blog.51cto.com/xfell/1880994

http://www.bubuko.com/infodetail-1971742.html

https://www.cnblogs.com/zhaijunming5/p/6899795.html