设为首页 收藏本站
查看: 2079|回复: 0

[经验分享] zabbix学习系列之QQ消息报警

[复制链接]

尚未签到

发表于 2017-12-31 17:48:04 | 显示全部楼层 |阅读模式
安装依赖包
  环境
  

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服务器端口,默认25from    =>  '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登录脚本
  

[iyunv@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":"发送成功"}[iyunv@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告警媒介配置
  管理-->报警媒介类型-->创建报警媒介
DSC0000.png

  绑定报警媒介和用户
  管理-->用户-->Admin-->报警媒介-->添加
DSC0001.png


绑定动作到用户
  监控项和触发器和动作和用户的关系
  先定义监控项,然后定义触发器,触发器设置阈值,触发器和动作绑定,如果监控项的的值超过的触发器设定的阈值,触发器被触发然后执行动作,也就是发送报警信息给某个用户
  用户和报警媒介的关系
  先配置一个报警媒介,也就是接收报警的方法,例如:QQ消息或者邮件,然后报警媒介和某个用户绑定,动作把报警信息发送到某个用户,某个用户接收报警信息的方法就是QQ或者邮件
  绑定动作到用户
  配置-->动作-->操作
DSC0002.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430320-1-1.html 上篇帖子: Zabbix应用三:Zabbix监控MySQL 下篇帖子: zabbix 编译安装指导
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表