首页 > 代码库 > 最新Zabbix通过QQ消息的方式接收告警的部署

最新Zabbix通过QQ消息的方式接收告警的部署

  使用zabbix 3.0版本,关于zabbix的安装部署这里不再讲述,官网有详细文档,网上也有很多教程。此处只讲述配置QQ消息发送告警消息的配置方法。

环境:

CentOS 7.3 x86_64 虚拟机一台

QQ帐号一个

安装:

  全新最小化安装一台CentOS 7.3系统的虚拟机,如果你的Zabbix都部署在公网环境,那么此服务器也建议公网环境。安装完成后,禁用selinux。

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config

setenforce 0

技术分享

禁用防火墙服务

systemctl stop firewalld

systemctl disable firewalld

技术分享

修改默认的yum源地址为国内阿里云,加快访问速度。

sed -i "s:mirrorlist=http\://mirrorlist.centos.org:#mirrorlist=http\://mirrorlist.centos.org:g" /etc/yum.repos.d/CentOS-Base.repo

sed -i "s:#baseurl=http\://mirror.centos.org:baseurl=http\://mirrors.aliyun.com:g" /etc/yum.repos.d/CentOS-Base.repo

技术分享

使用yum安装所必须的软件包

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

技术分享

启用系统时间自动同步

systemctl enable chronyd

systemctl start chronyd

技术分享

安装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=http://www.mamicode.com/>{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。

技术分享

在日志可查看到成功登录信息

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

技术分享

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

默认告警脚本位置 /zabbix安装目录/share/zabbix/alertscripts/ ,例如我这里为

/data/zabbix/share/zabbix/alertscripts/ 

vi /data/zabbix/share/zabbix/alertscripts/QQClient.sh 使用vi编辑器添加

#!/bin/bash


#好友的QQ号码

qq=$1


#Mojoqq服务器地址与端口号

server="192.168.1.10"

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为你的QQ消息服务器IP地址或域名,就是上面部署的那台CentOS 7.3虚拟机。


技术分享

保存后,添加所需权限。

chmod +x /data/zabbix/share/zabbix/alertscripts/QQClient.sh

chown -R zabbix.zabbix /data/zabbix/share/

技术分享

在Zabbix前端添加QQ消息发送配置。这里为zabbix 3.2.3版本,管理-报警媒介类型-创建媒介类型。

技术分享

名称:QQ消息

类型:脚本

脚本名称:QQClient.sh

脚本参数:{ALERT.SENDTO}

      {ALERT.SUBJECT}

      {ALERT.MESSAGE}

技术分享

管理-用户-Admin

技术分享

报警媒介-添加

技术分享

类型:QQ消息

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

技术分享

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

技术分享

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

技术分享

操作选项卡,点击 新的。

技术分享

配置用户Admin,QQ消息。

技术分享

恢复操作选项卡与此类似

技术分享

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


Mojo-Webqq项目,Perl语言编写的基于smartqq协议的客户端框架,欢迎加入开发团队。 

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



本文出自 “服务器系统交流” 博客,请务必保留此出处http://1130739.blog.51cto.com/1120739/1903722

最新Zabbix通过QQ消息的方式接收告警的部署