zabbix学习系列之QQ消息报警
安装依赖包
环境
Zabbix: 3.2
OS:Centos
安装依赖包
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 = ; #发送消息接口监听端口,修改为自己希望监听的端口 my $client = Mojo::Webqq->new(qq=>$qq);
#配置邮件,发送登录的二维码图片到邮箱中,如果不使用邮箱可以在/tmp下找到对应图片(进入这个邮箱找到二维码,用手机QQ扫描登录,前提是手机QQ登录的是1770XXXXXX的QQ)
$client->load("PostQRcode",data=>{
smtp => 'smtp.163.com', #邮箱的smtp地址
port => '', #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=$ #Mojoqq服务器地址与端口号
server="172.16.1.229"
port="" #消息内容处理下编码,用于合并告警内容的标题和内容,即$2和$
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
[// ::] [info] 当前正在使用 Mojo-Webqq v2.1.1
[// ::] [info] 客户端加载cookie[ /tmp/mojo_webqq_cookie_default.dat ]
[// ::] [info] 执行插件[ Mojo::Webqq::Plugin::PostQRcode ]
[// ::] [info] 初始化 smartqq 客户端参数...
[// ::] [info] 正在获取登录二维码...
[// ::] [info] 二维码已下载到本地[ /tmp/mojo_webqq_qrcode_default.png ]
[// ::] [info] 登录二维码已经发送到邮箱: xxxxxxxxxx@.com
[// ::] [info] 等待手机QQ扫描二维码...
[// ::] [info] 手机QQ扫码成功,请在手机上点击[允许登录smartQQ]按钮...
[// ::] [info] 检查安全代码...
[// ::] [info] 获取数据验证参数...
[// ::] [info] 尝试进行登录()...
[// ::] [info] 帐号(1770xxxxxxx)登录成功
[// ::] [info] 清除残留的历史二维码图片
[// ::] [info] 更新个人信息...
[// ::] [info] 更新好友信息...
[// ::] [info] 更新好友扩展信息...
[// ::] [info] 更新群列表信息...
[// ::] [info] 更新群列表扩展信息...
[// ::] [info] 更新讨论组列表信息...
[// ::] [info] 执行插件[ Mojo::Webqq::Plugin::Openqq ]
[// ::] [info] Listening at "http://0.0.0.0:5000"
Server available at http://0.0.0.0:5000
[// ::] [info] 开始接收消息...
登录到邮箱,打开邮件,扫描二维码登录QQ
测试发送QQ消息脚本
root@zabbix ~]# bash -x qqclient.sh nihao zabbixqq
+ qq=
+ server=172.16.1.229
+ port=
++ echo -e 'nihao\nzabbixqq'
++ od -t x1 -A n -v -w100000
++ tr ' ' %
+ message=%6e%%%%6f%0a%7a%%%%%%%%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":,"id":,"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或者邮件
绑定动作到用户
配置-->动作-->操作
zabbix学习系列之QQ消息报警的更多相关文章
- Android学习系列(7)--App消息通知机制
有人说,程序员很安静,但我不完全同意,程序员的聒噪,是藏在代码后面,是藏在程序后面.这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.消息推送机制 ...
- zabbix学习系列之触发器
触发器的简介 监控项仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,"触发器"正式 用于为监控项所收集的数据定义阈值 每一个触发器 ...
- zabbix学习系列之配置邮件告警
整体思路是:添加监控项-->配置触发器(达到设定的阈值就触发)-->配置动作(将某个触发器绑定到某个动作,达到某个阈值,触发器触发的时候,通过邮件发送告警信息给某个用户) 配置触发器 创建 ...
- zabbix学习系列之基础概念
触发器 概念 "监控项"仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送警告信息,"触发器"正式英语为监控项所收集的数据 ...
- prometheus学习系列十一: Prometheus 报警规则配置
prometheus监控系统的的报警规则是在prometheus这个组件完成配置的. prometheus支持2种类型的规则,记录规则和报警规则, 记录规则主要是为了简写报警规则和提高规则复用的, 报 ...
- Android学习系列(7)--App轮询服务器消息
这篇文章是android开发人员的必备知识. 1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务. 其中需要注意轮询的频率 ...
- zabbix实现QQ邮件报警通知--技术流ken
前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...
- zabbix入门之使用QQ邮箱接受报警信息
首先说明我使用的是3.2版本的zabbix 既然要发邮件到QQ邮箱报警,那么在centos7上就肯定需要安装发送邮件的软件了 安装应用yum install mailx sendmail -y接着修改 ...
- RabbitMQ学习系列三-C#代码接收处理消息
RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理 http://www.80iter.com/blog/1438251320680361 http://www. ...
随机推荐
- InChatter系统之服务器开发(一)
服务器端是整个消息系统的中枢,类似与人类的大脑.没有他,根本无法实现客户端之间的交流,为什么呢?这也涉及到我们的系统涉及,在服务器端,每个客户端的标识数据都会在服务器端进行保存,在这种情况下,当某一个 ...
- postgresql update from
1,update from 关联表的更新 update table a set name=b.name from table B b where a.id=b.id; update test ...
- MySQL——sql注入
https://blog.csdn.net/lin_tuer/article/details/54809330 https://github.com/mysqljs/mysql#escaping-qu ...
- leetcode_919. Complete Binary Tree Inserter
https://leetcode.com/problems/complete-binary-tree-inserter/ 设计一个CBTInserter,使用给定完全二叉树初始化.三个功能; CBTI ...
- Java基础(十三)--深拷贝和浅拷贝
在上篇文章:Java基础(十二)--clone()方法,我们简单介绍了clone()的使用 clone()对于基本数据类型的拷贝是完全没问题的,但是如果是引用数据类型呢? @Data @NoArgsC ...
- Java代码的编译和执行
Java代码编译和执行的整个过程包含了以下三个重要的机制: (1)Java源码编译机制 (2)类加载机制 (3)类执行机制 1.Java代码编译是由Java源码编译器来完成,流程图: Java 源码编 ...
- Centos7配置ThinkPHP5.0完整过程(一)
在Centos中配置PHP服务器环境,首先要安装Apache的http服务,然后安装php解析环境,最后再配置ThinkPHP5.0. 首先安装HTTP sudo yum install httpd ...
- Windows——bat中的路径和工具栏运行bat的坑
工具栏添加的批处理环境 编写一个简单的批处理文件 set testEnv = %cd% pause 这里第一句:设置当前文件夹路径为环境变量testEnv的值 这里第二句:暂停命令窗口 第一次我们直接 ...
- 字符串str.format()方法的个人整理
引言: 字符串的内置方法大致有40来个,但是一些常用的其实就那么20几个,而且里面还有类似的用法,区分度高比如isalpha,isalnum,isdigit,还有一些无时不刻都会用到的split切分, ...
- LeetCode(59)SPiral Matrix II
题目 Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. F ...