1. 程式人生 > >Zabbix 添加QQ消息的方式進行告警

Zabbix 添加QQ消息的方式進行告警

zabbix

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 &

使用新的二維碼掃描登錄即可




參考

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

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

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

Zabbix 添加QQ消息的方式進行告警