Zabbix QQ报警配置

安装Mojo::Webqq模块

https://github.com/sjdy521/Mojo-Webqq

1、安装perl

Perl版本至少5.10.1+,推荐5.14+

yum安装,如果yum源比较旧,可用下面方法安装

https://github.com/sjdy521/Mojo-CentosPerl

wget https://github.com/sjdy521/Mojo-CentosPerl/archive/master.zip -O Mojo-CentosPerl.zip

unzip Mojo-CentosPerl.zip

cd Mojo-CentosPerl-master/

mv perl/ /usr/local/

把Mojo-CentosPerl包含的perl和cpanm设置下alias,避免和系统默认的perl混淆(或者直接使用绝对路径)

$ /usr/local/perl/bin/perl -v #使用perl的绝对路径

$ /usr/local/perl/bin/cpanm --help #使用cpanm的绝对路径

或者绝对路径太长,可以给命令起个别名,方便使用,如下两行写入到 ~/.bashrc 文件的最后

alias perl='/usr/local/perl/bin/perl'

alias cpanm='/usr/local/perl/bin/cpanm'

执行如下命令来使得 ~/.bashrc 的改动生效

$ source ~/.bashrc

现在你可以直接使用别名来执行perl和cpanm

$ perl -v

$ cpanm --help

 

2、安装cpanm包管理工具(如果系统已经安装了cpanm可以忽略此步骤)

方法a: 通过cpan安装cpanm

$ cpan -i App::cpanminus

 

方法b: 直接在线安装cpanm

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

官方服务器在国外,如果无法访问,可以选择下面的命令:

$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus

 

3、使用cpanm在线安装 Mojo::Webqq 模块(如果系统已经安装了该模块,执行此步骤会对模块进行升级)

$ cpanm Mojo::Webqq

如果安装过程中一直提示下载失败,很可能是因为访问到国外服务器网络比较差

这种情况下可以尝试按如下方式手动指定国内的镜像站点

$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq

 

4、添加QQ登陆脚本

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

 

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,QQ邮箱用SSL 465端口

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();

 

5、添加发送消息脚本

#!/bin/bash

 

#好友的QQ号码

qq=$1

 

#Mojoqq服务器地址与端口号

server="192.168.100.59"

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_group_message"

parameter="uid=$qq&content=$message"

 

#post方式提交请求发送QQ好友消息

curl -d $parameter $api_url

 

例子:

https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Group-%E7%BE%A4%E7%BB%84

 

#信息获取

/openqq/get_user_info           #查询用户信息

/openqq/get_friend_info         #查询好友信息

/openqq/get_group_info          #查询群信息

/openqq/get_discuss_info        #查询讨论组信息

 

#消息发送,均支持GET和POST

/openqq/send_friend_message     #发送好友消息 参数id=xxx&content=xxx 或 uid=xxx&content=xxx

/openqq/send_group_message      #发送群消息   参数id=xxx&content=xxx 或 uid=xxx&content=xxx

/openqq/send_discuss_message    #发送讨论组消息 参数id=xxx&content=xxx (由于腾讯限制,当前无法成功发送)

/openqq/send_sess_message       #发送群临时消息  参数 group_id=xxx&id=xxx&content=xxx 或 group_uid=xxx&uid=xxx&content=xxx (由于腾讯限制,当前无法成功发送)

/openqq/send_sess_message       #发送讨论组临时消息 参数 discuss_id=xxx&id=xxx&content=xxx 或 dusciss_id=xxx&uid=xxx&content=xxx (由于腾讯限制,当前无法成功发送)

 

获取群uid(群号码)

http://192.168.100.59:5000/openqq/get_group_info

"uid":1918358826

发送到群

http://192.168.100.59:5000/openqq/send_group_message?uid=637273120&content=Hello World!

 

6、打开zabbix_server.conf,开启AlertScriptPath,并重启zabbix

AlertScriptsPath=/usr/lib/zabbix/alertscripts

将qqclient.sh放置到此目录

 

7、zabbix告警媒介配置

管理-->报警媒介类型-->创建报警媒介

 

 

名称

脚本名

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

 

8、绑定报警媒介和用户

管理-->用户-->Admin-->报警媒介-->添加

 

9、监控项和触发器和动作和用户的关系

先定义监控项,然后定义触发器,触发器设置阈值,触发器和动作绑定,如果监控项的的值超过的触发器设定的阈值,触发器被触发然后执行动作,也就是发送报警信息给某个用户

用户和报警媒介的关系

先配置一个报警媒介,也就是接收报警的方法,例如:QQ消息或者邮件,然后报警媒介和某个用户绑定,动作把报警信息发送到某个用户,某个用户接收报警信息的方法就是QQ或者邮件

 

10、绑定动作到用户

配置-->动作-->操作

 

11、汉化报警信息

====发现问题====

问题描述: {TRIGGER.NAME}

问题状态: {TRIGGER.STATUS}

问题级别: {TRIGGER.SEVERITY}

监控项数值:

{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

Original event ID: {EVENT.ID}

 

 

====已经恢复====

问题描述: {TRIGGER.NAME}

问题状态: {TRIGGER.STATUS}

问题级别: {TRIGGER.SEVERITY}

监控项数值:

{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

Original event ID: {EVENT.ID}

转载于:https://www.cnblogs.com/mikeng/p/8013070.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值