zabbix學習系列之QQ消息報警


安裝依賴包

環境

Zabbix: 3.2
OS:Centos 7

安裝依賴包

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

安裝cpanm包管理工具

curl -kL http://cpanmin.us | perl - App::cpanminus

使用cpanm在線安裝Mojo:Webqq

cpanm Mojo::Webqq

使用cpanm在線安裝郵件依賴模板

cpanm  Mojo::SMTP::Client MIME::Lite

編寫腳本

需要兩個腳本:

  • qqlogin.pl:在腳本里輸入QQ號,然后腳本把二維碼發送到腳本里定義的郵箱,然后手機登錄QQ掃描二維碼登錄QQ.(接收報警信息)
  • qqclient.sh:把報警信息發送給指定的QQ號或者QQ群

qqlogin.pl

#!/usr/bin/env perl
use Mojo::Webqq;
my ($qq,$host,$port,$post_api);
$qq = 1770XXXXXX;    #修改為你自己的實際QQ號碼(用此QQ發送報警信息到指定的QQ)
$host = "0.0.0.0";   #發送消息接口監聽地址,修改為自己希望監聽的地址
$port = 5000;        #發送消息接口監聽端口,修改為自己希望監聽的端口


my $client = Mojo::Webqq->new(qq=>$qq);
#配置郵件,發送登錄的二維碼圖片到郵箱中,如果不使用郵箱可以在/tmp下找到對應圖片(進入這個郵箱找到二維碼,用手機QQ掃描登錄,前提是手機QQ登錄的是1770XXXXXX的QQ)
$client->load("PostQRcode",data=>{
        smtp    =>  'smtp.163.com',        #郵箱的smtp地址
        port    =>  '25',                  #smtp服務器端口,默認25
        from    =>  'XXXXXXXXXXX@163.com', #發件人
        to      =>  'XXXXXXXXXXX@163.com', #收件人
        user    =>  'xxxxxxxxxxx@163.com', #smtp登錄帳號
        pass    =>  'XXXXXX',              #smtp登錄密碼(一定要寫客戶端驗證密碼)
    });

$client->login();
#$client->load("ShowMsg");          #接收用戶和群消息,沒有用,注釋掉吧
$client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
$client->run();

qqclient.sh

#!/bin/bash

#好友的QQ號碼
qq=$1

#Mojoqq服務器地址與端口號
server="172.16.1.229"
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

測試QQ登錄腳本

[root@zabbix ~]# perl qqlogin.pl
[17/05/24 15:46:17] [info] 當前正在使用 Mojo-Webqq v2.1.1
[17/05/24 15:46:17] [info] 客戶端加載cookie[ /tmp/mojo_webqq_cookie_default.dat ]
[17/05/24 15:46:17] [info] 執行插件[ Mojo::Webqq::Plugin::PostQRcode ]
[17/05/24 15:46:17] [info] 初始化 smartqq 客戶端參數...
[17/05/24 15:46:18] [info] 正在獲取登錄二維碼...
[17/05/24 15:46:19] [info] 二維碼已下載到本地[ /tmp/mojo_webqq_qrcode_default.png ]
[17/05/24 15:46:20] [info] 登錄二維碼已經發送到郵箱:  xxxxxxxxxx@163.com
[17/05/24 15:46:20] [info] 等待手機QQ掃描二維碼...
[17/05/24 15:47:06] [info] 手機QQ掃碼成功,請在手機上點擊[允許登錄smartQQ]按鈕...
[17/05/24 15:47:09] [info] 檢查安全代碼...
[17/05/24 15:47:09] [info] 獲取數據驗證參數...
[17/05/24 15:47:10] [info] 嘗試進行登錄(2)...
[17/05/24 15:47:10] [info] 帳號(1770xxxxxxx)登錄成功
[17/05/24 15:47:10] [info] 清除殘留的歷史二維碼圖片
[17/05/24 15:47:10] [info] 更新個人信息...
[17/05/24 15:47:11] [info] 更新好友信息...
[17/05/24 15:47:12] [info] 更新好友擴展信息...
[17/05/24 15:47:12] [info] 更新群列表信息...
[17/05/24 15:47:12] [info] 更新群列表擴展信息...
[17/05/24 15:47:12] [info] 更新討論組列表信息...
[17/05/24 15:47:12] [info] 執行插件[ Mojo::Webqq::Plugin::Openqq ]
[17/05/24 15:47:12] [info] Listening at "http://0.0.0.0:5000"
Server available at http://0.0.0.0:5000
[17/05/24 15:47:12] [info] 開始接收消息...

登錄到郵箱,打開郵件,掃描二維碼登錄QQ

測試發送QQ消息腳本

root@zabbix ~]#  bash -x qqclient.sh 9618154  nihao zabbixqq
+ qq=9618154
+ server=172.16.1.229
+ port=5000
++ echo -e 'nihao\nzabbixqq'
++ od -t x1 -A n -v -w100000
++ tr ' ' %
+ message=%6e%69%68%61%6f%0a%7a%61%62%62%69%78%71%71%0a
+ api_url=http://172.16.1.229:5000/openqq/send_friend_message
+ parameter='uid=9618154&content=%6e%69%68%61%6f%0a%7a%61%62%62%69%78%71%71%0a'
+ curl -d 'uid=9618154&content=%6e%69%68%61%6f%0a%7a%61%62%62%69%78%71%71%0a' http://172.16.1.229:5000/openqq/send_friend_message
{"code":0,"id":32030022,"status":"發送成功"}[root@zabbix ~]#

查看是否收到QQ消息

Zabbix報警配置

在zabbix服務端啟動qqlogin.pl,用來登錄發送報警的QQ  

 

setsid perl qqlogin.pl &

 

qqclient.sh從報警媒介里添加,zabbix調用這個腳本發送報警信息

Zabbix報警腳本路徑配置

打開zabbix_server.conf,開啟AlertScriptPath,並重啟zabbix

AlertScriptsPath=/usr/lib/zabbix/alertscripts

zabbix告警媒介配置

管理-->報警媒介類型-->創建報警媒介

綁定報警媒介和用戶

管理-->用戶-->Admin-->報警媒介-->添加

綁定動作到用戶

監控項和觸發器和動作和用戶的關系

先定義監控項,然后定義觸發器,觸發器設置閾值,觸發器和動作綁定,如果監控項的的值超過的觸發器設定的閾值,觸發器被觸發然后執行動作,也就是發送報警信息給某個用戶

用戶和報警媒介的關系

先配置一個報警媒介,也就是接收報警的方法,例如:QQ消息或者郵件,然后報警媒介和某個用戶綁定,動作把報警信息發送到某個用戶,某個用戶接收報警信息的方法就是QQ或者郵件

綁定動作到用戶

配置-->動作-->操作

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM