之前共享了云之家报警脚本,使用此脚本,可以实现下面这种实时的报警消息。当然我们也可以使用微信来报警,不过云之家是完全免费没有任何限制可以发送∞条消息,微信需要花钱认证才能实现相同的功能,所以选择云之家。
yunzhijia

原理参见下图,下面介绍如何使用。
消息队列

本文假设您熟悉MySQL,会安装Nginx及配置它的虚拟主机,知道crontab以及如何定时执行python脚本。

为Python安装MySQL支持

请先安装MySQL-python模块。

yum install MySQL-python

创建数据库

下载table.sql.zip文件,解压后是sql脚本文件,创建数据库和数据表,并新建用户赋予相关权限(如果您不知道具体哪些权限您可以赋予所有权限)。

api接口安装

使用包管理器安装nginx,或编译安装nginx。
下载yunzhijia.zip解压,将web目录添加为nginx的一个虚拟主机,由于php脚本没有对访问权限进行控制,请自行使用nginx的allow,deny模块对访问进行控制。

zabbix发信脚本安装

将解压后的zabbix_script目录中的getData.py脚本放到zabbix的脚本目录中。
使用yum安装的默认目录为『/usr/lib/zabbix/alertscripts』,这个目录可以在配置文件『/etc/zabbix/zabbix_server.conf』中更改,大概在文件的第435行左右。

zabbix设置

参照下图添加一个报警方式。
QQ20150803-1

指定一个需要的用户用此报警方式发信。
QQ20150803-2
添加一个动作,指定使用上面设置的报警方式。
确保传递给脚本的文本为正确的json格式:
其中各参数的含义请参考数据库中的注释。

{
"from":"207",
"to":"199",
"msg_type":"2",
"host":"{TRIGGER.NAME}",
"level":"{TRIGGER.SEVERITY}",
"msg":"运行在{HOST.CONN}上的{TRIGGER.NAME}进程ok心跳超时,当前值为 {ITEM.VALUE1}。\r\n{ITEM.KEY1}:{ITEM.VALUE1}"
}

QQ20150803-4
更改触发器严重性,必须要与下图一样:
QQ20150803-5

创建计划任务定时查数据库发信

创建crontab任务,将解压后的init.py创建为每分钟一次的任务。config.json需与init.py处于同一目录。

申请云之家帐号

自己问度娘。

下载云之家APP

自己搜索AppStore。

config.json解释

url:上述nginx配置的访问地址。
db:数据库信息
from:你设定的报警来源,zabbix可以只是其中一项(目前我们就是这样用的,不止zabbix一个需要发消息)。
msgType:信息类型。
level:信息严重性
to:发往哪个公众号,可以设置多个,name为自定义,no,pub,pubkey需要参考云之家中的设置。