使用zabbix 3.0版本,關於zabbix的安裝部署這裏再也不講述,官網有詳細文檔,網上也有不少教程。此處只講述配置QQ消息發送告警消息的配置方法。
前端
環境:linux
CentOS 7.3 x86_64 虛擬機一臺c++
QQ賬號一個git
安裝:github
全新最小化安裝一臺CentOS 7.3系統的虛擬機,若是你的Zabbix都部署在公網環境,那麼此服務器也建議公網環境。安裝完成後,禁用selinux。web
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configcentos
setenforce 0api
禁用防火牆服務bash
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=>{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協議的客戶端框架,歡迎加入開發團隊。