Zabbix

ZABBIX 3.4.4实现QQ群消息告警

环境:

[root@i-uw33wt6i ~]# zabbix_server -V
zabbix_server (Zabbix) 3.4.4
[root@i-uw33wt6i ~]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)

安装相关软件包

yum install lrzsz chrony gcc gcc-c++ git openssl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
systemctl enable chronyd  
systemctl start chronyd   #设置开机自启动

安装Mojo-Webqq

curl -L https://cpanmin.us/ -o /usr/bin/cpanm && chmod +x /usr/bin/cpanm  
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  
cpanm  Mojo::SMTP::Client MIME::Lite  

cd /usr/src/ && git clone https://github.com/sjdy521/Mojo-Webqq.git
cd Mojo-Webqq/ && perl Makefile.PL
make && make install

编辑QQ登录脚本

vim /usr/local/bin/MojoWebqq.pl  
#!/usr/bin/env perl  
use Mojo::Webqq;  
my ($host,$port,$post_api);  
$host = "0.0.0.0";        ##发送消息接口监听地址,修改为自己希望监听的地址
$qq = "627848678";        #修改为你自己的实际QQ号码(用此QQ发送报警信息到指定的QQ)
$port = 5000;             ##发送消息接口监听端口,修改为自己希望监听的端口
my $client = Mojo::Webqq->new(qq=>$qq);  #配置邮件,发送登录的二维码图片到邮箱中,如果不使用邮箱可以在/tmp下找到对应图片(进入这个邮箱找到二维码,用手机QQ扫描登录)
$client->load("PostQRcode",data=>{  
        smtp    =>  'smtp.qq.com',   #邮箱的smtp地址
        port    =>  '25',            #smtp服务器端口,默认25
        from    =>  '627848678@qq.com',   #发件人
        to      =>  '627848678@qq.com',  #收件人
        user    =>  '627848678@qq.com',  #smtp登录帐号
        pass    =>  '***************',   #smtp登录密码(一定要写客户端验证密码)
  });  
  
$client->login();  
#$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/zabbix/zabbix-Mojo-Webqq.log 2>&1 &

查看实时日志

tail -f /var/log/zabbix/zabbix-Mojo-Webqq.log
[18/01/02 10:31:17] [info] 当前正在使用 Mojo-Webqq v2.1.4
[18/01/02 10:31:17] [warn] 检测到该账号有其他运行中的客户端(pid:2269), 请先将其关闭
[18/01/02 10:31:17] [info] 客户端停止运行
[18/01/02 10:31:27] [info] 当前正在使用 Mojo-Webqq v2.1.4
[18/01/02 10:31:27] [info] 客户端加载cookie[ /tmp/mojo_webqq_cookie_default.dat ]
[18/01/02 10:31:27] [info] 执行插件[ Mojo::Webqq::Plugin::PostQRcode ]
[18/01/02 10:31:27] [info] 初始化 smartqq 客户端参数...
[18/01/02 10:31:27] [info] 正在获取登录二维码...
[18/01/02 10:31:27] [info] 清除残留的历史二维码图片
[18/01/02 10:31:27] [info] 二维码已下载到本地[ /tmp/mojo_webqq_qrcode_default.png ]
[18/01/02 10:31:28] [info] 登录二维码已经发送到邮箱: *********@qq.com
[18/01/02 10:31:28] [info] 等待手机QQ扫描二维码...

测试发送QQ消息脚本

#!/bin/bash
qq=$1
server="192.168.100.10"   #Mojoqq服务器地址与端口号
port="5000"
#消息内容处理下编码,用于合并告警内容的标题和内容,即$2和$3
message=`echo -e "$2\n$3"|od -t x1 -A n -v -w1000000000 | tr " " %`
#调用的api接口
api_url="http://$server:$port/openqq/send_group_message"
parameter="uid=$qq&content=$message"
#post方式提交请求发送QQ消息
curl -d $parameter $api_url

测试结果:

(4)

本文由 樱花博客 作者:樱花 发表,转载请注明来源!

关键词:

热评文章

发表评论