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
安装时间稍长,耐心等...
安装Mojo-Webqq
cd /usr/src/
git clone https://github.com/sjdy521/Mojo-Webqq.git
cd Mojo-Webqq/
perl Makefile.PL
make && make install
创建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();
添加执行权限
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
将QQ登录二维码下载到本地使用手机QQ扫码登录,如果你是用的SecureCRT远程访问的CentOS主机,可直接使用以下命令传输文件到Windows主机本地。
sz /tmp/mojo_webqq_qrcode_default.png
然后在SecureCRT的download目录可找到mojo_webqq_qrcode_default.png二维码图片,打开使用手机QQ扫码,,允许登录smartQQ。
在手机QQ上添加你需要接收告警消息的QQ号码为好友后,在Zabbix服务器上创建QQ消息发送脚本。
默认告警脚本位置:/zabbix安装目录/share/zabbix/alertscripts/ ,
不知道的可以使用 find / -name alertscripts 查找地址
例如我这里为
/usr/lib/zabbix/alertscripts
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也可
保存后,添加所需权限。
chmod +x /usr/lib/zabbix/alertscripts/QQClient.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
测试能否收到消息
bash -x QQClient.sh 好友QQ号码 测试消息1 测试消息2
出现发送成功说明没问题
在Zabbix前端添加QQ消息发送配置。管理-报警媒介类型-创建媒介类型。
名称:QQ告警
类型:脚本
脚本名称:QQClient.sh
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理-用户-Admin报警媒介-添加
类型:QQ消息
收件人为接受告警消息的好友QQ号码
配置-动作-触发器类型创建新动作 根据具体的应用创建动作名称,触发条件等等。操作选项卡,点击 新的
点击添加
恢复操作选项卡与此类似
完成配置后即可实现QQ消息自动接收Zabbix告警消息。-----测试----
管理-用户-Admin(你要通知的用户)-报警媒介-添加-收件人填入需要通知的QQ好友的号码
然后在配置-主机中添加一个要测试的IP地址(这里使用PING测试,为了方便测试可以把监控项的间隔改小一点)
测试项添加完成,然后断开被测试IP的网络
可以看到,已经收到告警
---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