设为首页 收藏本站
查看: 3938|回复: 2

[经验分享] ZABBIX使用QQ报警(更新Mojo::web

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-19 09:10:28 | 显示全部楼层 |阅读模式
安装依赖库
yum install mysql mysql-server mysql-devel mysql-libs mysql-connector-odbc openssl openssl-devel httpd mod_ssl mod_perl mod_auth_mysql gcc gcc-c++ autoconf glibc glibc-common gd gd-devel libjpeg libjpeg-devel libpng libpng-devel rrdtool rrdtool-devel rrdtool-php libjpeg-turbo net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel java-devel libjpeg-turbo-devel libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql freetype libpng fontconfig pixman cairo harfbuzz pango php php-gd php-devel libmcrypt fontconfig libxml2 jpeg-6b freetype libpng mutt php-libxml php-mcrypt php-mysql php-mysqli php-pdo-mysql php-zip php-zlib php-xml php-xmlrpc php-bcmath mariadb mariadb-server mariadb-devel xinetd libev php-fpm php-pear php-mbstring php-ldap ssh2 php-pecl-ssh2 php-devel php-pear libssh2 libssh2-devel openldap openldap-devel nmap traceroute glib2 glib2-devel wget dialog unzip php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcryt nano net-snmp-utils perl cpan -y

接下来是要启动server端的login.pl脚本
// 需要perl
# yum –y install perl cpan
使用下列命令安装的时候会要求设置,一路回车,最后一个问答是镜像站点设置,输入以下地址(貌似以后每次用到cpan安装模块都会要求设置一次才会工作)
ftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/
http://mirrors.hust.edu.cn/CPAN/
以下虚线内只是cpan的常规使用说明,与本文无关
-----------------------------------------------------------------------
cpan的配置文件: /usr/lib/perl5/5.8.8/CPAN/Config.pm
cpan>h
获得帮助 
cpan>m
列出CPAN上所有模块的列表 
CPAN> d /bioperl/
查询有关bioperl的模块
CPAN> install modulename
安装指定的模块
CPAN>o conf init
如要重新配置CPAN,可先进入CPAN,然后在CPAN命令行(即CPAN>)键入以下指令:
退出 
cpan>q

可以更改urlist改变镜像站点.
如果需要重新配置CPAN,输入:
#cpan
进入cpan后,输入:
#CPAN>o conf init

安装perl组件出错:
/usr/bin/make — NOT OK
Running make test
Can’t test without successful make
Running make install
make had returned bad status, install seems impossible
一.可以尝试
#cpan
cpan>o conf make /usr/bin/make
cpan>o conf commit
cpan>exit
然后用perl命令再安装一下该组件,看能否成功。
二.原因也可能是默认缓存/root/.cpan中的数据损坏rm -rf ~/.cpan删除后在perl -MCPAN -e shell中执行reload index然后执行install Bundle::CPAN最后执行reload CPAN即可正常通过命令行install MODULES
http://it.chinawin.net/softwaredev/article-3b0.html
如何卸载perl模块
-----------------------------------------------------------------------------
// 下面涉及的模块基本都需要安装,安装过程很慢,需要输入”yes” ,中间有些是y或n
# [url=]cpan -fi JE Time::HiRes  Data::Dumper Digest::MD5 LWP::UserAgent JSON YAML Sys::HostIP Plack:App:URLMap Twiggy::Server Plack::Middleware::Header Time::Piece Time::Seconds JSON LWP::UserAgent LWP::Protocol::https Webqq::Encryption Mojo::Webqq[/url]
// 这个单独拿出来安装是因为这个邮件模块需要验证邮箱的登录,也是最肯能出错的地方,登录的报错也能看到
# cpan Mail::SendEasy
Pass:如果已经装完,邮件又发不出去,想重新安装下这个模块排查,可以执行下列命令:
#find / `perl -e 'print "@INC"'` -name '*.pm' -print | grep Mail | grep -v build | xargs rm -rf
# cpan Mail::SendEasy
Pass:另外要注意的是,不要刚刚新建的邮箱,否则有可能会提示”lock”
Pass:上面模块标示绿色的,可以能已经停止开发和使用了 Webqq::Client地址:https://metacpan.org/pod/Webqq::Client
需要调用新的模块,模块说明地址:https://metacpan.org/pod/Mojo::Webqq

报警需要脚本两个,一个是perl,用来登录webQQ以及发送验证码到邮箱进行登录
                                二是qq_sms.sh脚本,用来监听端口以及发送告警信息                     下面是两个脚本内容截图
------------------------------------------------------------------------------------------------------------------------------------
#!/usr/bin/perl
use Mojo::Webqq;
use Mojo::Util qw(md5_sum);
use Data::Dumper;
use Digest::MD5 qw(md5_hex);
use LWP::UserAgent;
use JSON
#注意:
#程序内部数据全部使用UTF8编码,因此二次开发源代码也请尽量使用UTF8编码进行编写,否则需要自己做编码处理
#在终端上执行程序,会自动检查终端的编码进行转换,以防止乱码
#如果在某些IDE的控制台中查看执行结果,程序无法自动检测输出编码,可能会出现乱码,可以手动设置输出编码
#手动设置输出编码参考文档中关于 log_encoding 的说明

#帐号可能进入保护模式的原因:
#多次发言中包含网址
#短时间内多次发言中包含敏感词汇
#短时间多次发送相同内容
#频繁异地登陆
  
#推荐手机安装[QQ安全中心]APP,方便随时掌握自己帐号的情况
#由于腾讯只能用二维码扫描登录,以下密码就不要改动了,已无意义
my $qq = 2246199518;                              #登录的QQ号
# my $pwd = "0";                                        #使用帐号密码方式登录时需要
# my $pwd_md5 = md5_sum($pwd);        #得到原始密码的32位长度md5

#############验证码##############

#插件需要使用到 input_qrcode 事件
#需要login中开启delay参数(设置为延迟登录)
my $client=Mojo::Webqq->new(
    ua_debug    =>  0,                             #是否打印详细的debug信息
    qq          =>  $qq,                               #必选,登录的qq帐号,用于帐号密码登录或保存登录cookie使用
#    pwd         =>  $pwd_md5,               #可选,如果选择帐号密码登录方式,必须指定帐号密码的md5值
    login_type  =>  "qrlogin",                 #"qrlogin"表示二维码登录,"login"表示帐号密码登录
           );
#注意: 腾讯已经关闭了帐号密码的登录方式,这种情况下只能使用二维码扫描登录
#客户端进行登
$client->load("PostQRcode",data=>{
        smtp    =>'smtp.163.com',                                  #邮箱的smtp地址  
        port    =>'25',                                                      #smtp服务器端口,默认25
        from    =>'xxxx@163.com',                                #发件人
        to      =>'xxxxxx@163.com',         #收件人
        user    =>'xxxx@163.com',                                 #smtp登录帐号
        pass    =>'xxxxxxxx',                                           #smtp登录密码

});
#######################################################################################
                #客户端进行二维码登录
                $client->login(delay=>1);
                #客户端加载ShowMsg插件,用于打印发送和接收的消息到终端
                $client->load("ShowMsg");
                #ready事件触发时表示客户端一切准备就绪,建议尽量将自己的代码写在ready内
                #$client->on(ready=>sub{
                #设置接收消息事件的回调函数,在回调函数中对消息以相同内容进行回复
                    #$client->on(receive_message=>sub{
                    #my ($client,$msg)=@_;
                #已以相同内容回复接收到的消息
                    #$client->reply_message($msg,$msg->content);
                #你也可以使用$msg->dump() 来打印消息结构
                    #my $group_uin = $msg->{from_uin};
                    #});

#新版本Mojo::Webqq接口
# 监听的端口,接收来自客户端(qq_sms.sh)的消息
# 这里的hots和port是可以更改的,但是qq_sms.sh脚本也需要改成对应的
#    $client->load("Openqq",data=>{
#    listen => [{host=>10.0.10.31,port=>5010}],             #监听的地址和端口,支持多个
#    auth   => sub {my($param,$controller) = @_},        #可选,认证回调函数,用于进行请求鉴权
#          post_api=> 'http://127.0.0.1:5010/post_api',             #可选,设置接收消息的上报接口
#    });
#新版本中监听端口只能监听127.0.0.1
#老版本Webqq::Client接口
$client->load("Openqq",data=>[ {host=>"0.0.0.0",port=>5010}, ]);
#自定义问答知识库
$client->load("KnowledgeBase");
$client->load("SmartReply");
$client->load("StockInfo");
      # 执行函数,很多朋友都漏了
      $client->run()
---------------------------------------------------------------------------------------------------------------
#!/bin/bash
API_ADDR="127.0.0.1:5010"          # 你login.pl中定义的host和port
qq_num=3028241698
# 处理下编码,用于合并告警内容的标题和内容,即$2和$3
message=`echo -e "$2\n$3"|od -t x1 -A n -v -w1000000000 | tr " " %`         


send_messege(){
#api_url="http://$API_ADDR/openqq/send_message?qq=$qq_num&content=$message"
api_url="http://$API_ADDR/openqq/send_message?id=$qq_num&content=$message"   
curl $api_url
}
# 发送消息,执行函数,很多朋友复制的时候漏了
send_messege

qq_unm:可以填写ID号码,根据实际情况,所以此处更改成对QQ的报警
        解释:qq_num 实际在调用的时候是群的gid号码,而不是qq群号,一定一定要知道
                  gid获取的方法同样可以通过webAPI进行获取。方法就是使用图上api_url变量中的值
                    可根据网页中的帮助,获得gid或id
        示例:
http://127.0.0.1:5000/openqq/get_user_info
http://127.0.0.1:5000/openqq/send_message?id=xxx&content=hello
http://127.0.0.1:5000/openqq/send_message?id=xxx&content=%e4%bd%a0%e5%a5%bd (中文需要utf8编码并进行urlencode)

                     spacer.jpg
后台运行login.pl
[iyunv@zabbix data]# nohup ./login.pl &
spacer.jpg netstat -tunlp|grep 5010
检查端口和服务器正常启用

将qq_sms.sh移动到zabbix脚本目录下,目录如果不知道可以在zabbix_server.conf文件中找到
默认在/usr/lib/zabbix/alertscripts
移动并赋予权限
chmod +x .....
chown zabbix.zabbix ...

创建告警媒体
添加用户
创建动作



运维网声明 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-128515-1-1.html 上篇帖子: zabbix-自定义键值-监控LNMP可用性 下篇帖子: zabbix低级发现添加计算类型的key值注意问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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