zabbix3.0微信邮件报警
分2大部分: 1.Zabbix服务器端配置 邮件服务安装配置 2.Web端服务配置服务器端的设置:系统 cenots 6.5 2.6.32-431.el6.x86_64安装邮件发送服务:# wget http://sourceforge.net/projects/heirloom/files/latest/download?source=files# mv download\?source\=files mailx-12.4.tar.bz2# tar xf mailx-12.4.tar.bz2# cd mailx-12.4打个补丁才可以用:# patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patchpatching file makeconfigpatching file openssl.c# make# make install UCBINSTALL=/usr/bin/install下面为输出信息:test -d /usr/local/bin || mkdir -p /usr/local/bin/usr/bin/install -c mailx /usr/local/bin/mailxstrip /usr/local/bin/mailxtest -d /usr/local/share/man/man1 || mkdir -p /usr/local/share/man/man1/usr/bin/install -c -m 644 mailx.1 /usr/local/share/man/man1/mailx.1test -d /etc || mkdir -p /etctest -f /etc/nail.rc || \ /usr/bin/install -c -m 644 nail.rc /etc/nail.rc# vim /etc/nail.rc编辑配置文件最下面加上:修改为你自己的set from=xxx@163.com smtp=smtp.163.comset smtp-auth-user=xxx@163.com smtp-auth-password=邮箱密码set smtp-auth=login# which mailx/usr/local/bin/mailx# cd /bin# ln -s /usr/local/bin/mailx mail# mail -V12.4 7/29/08# mail -s "Message"jinchuang1025@163.com < /tmp/yum_save_tx-2016-11-10-17-274YsBZQ.yumtx# echo $?0=======================邮件发送成功!==============================
Zabbix 报警脚本:邮件:# vim sendmail.sh#!/bin/bashecho "$3" > /tmp/zabbix_mail.txt#此文件要有zabbix 权限不然乱码dos2unix -k /tmp/zabbix_mail.txt/bin/mail -s "$2" $1 < /tmp/zabbix_mail.txt
Zabbix server 配置文件修改# vim /usr/local/zabbix/etc/zabbix_server.conf添加或修改为下面这句:AlertScriptsPath=/usr/local/zabbix/alertscripts#开启zabbix调用脚本存放路径位置
重启zabbix服务生效# /etc/init.d/zabbix_server restart
微信:申请微信企业号建立部门 和添加成员(接收消息的)查看部门id新建应用查看应用id 和添加接收消息用户查看corpid查看管理组凭证密钥
脚本:修改红色的为你自己的企业号对应的。# vim weixin.py#!/usr/bin/python#_*_coding:utf-8 _*___author__ = 'lvnian'
import urllib,urllib2import jsonimport sys
def gettoken(corpid,corpsecret): gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret try: token_file = urllib2.urlopen(gettoken_url) except urllib2.HTTPError as e: print e.code print e.read().decode("utf8") sys.exit() token_data = token_file.read().decode('utf-8') token_json = json.loads(token_data) token_json.keys() token = token_json['access_token'] return token
def senddata(access_token,user,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token send_values = { "touser":user , #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。 "toparty":"1", #企业号中的部门id "msgtype":"text",#消息类型。 "agentid":"2", #企业号中的应用id, "text":{ "content":content }, "safe":"0" } send_data = json.dumps(send_values, ensure_ascii=False) send_request = urllib2.Request(send_url, send_data) response = json.loads(urllib2.urlopen(send_request).read()) print str(response)
if __name__ == '__main__': user = str(sys.argv) #zabbix传过来的第一个参数 subject = str(sys.argv)#zabbix传过来的第二个参数 content = str(sys.argv)#zabbix传过来的第三个参数 corpid ='wxdgfhshs3f1bba2jinc' #CorpID是企业号的标识 corpsecret = '3NDb5cKp-ViudjtgsiJ6Yw_R_jRj2cUdsgTmFLsOQGQYGPcc5wNLhPiAyTnpjinc'#corpsecretSecret是管理组凭证密钥 accesstoken = gettoken(corpid,corpsecret)senddata(accesstoken,user,content)给予执行权限:# chown zabbix.zabbix sendmail.sh weixin.py# chmod +x sendmail.sh weixin.py
Web端配置1登录你的zabbix -- 管理 – 报警媒介
创建媒体类型
创建邮件的:
创建微信的
2再找到—配置 --- 动作
创建动作 (email和 微信 相同)
配置动作 (email和 微信 基本相同,注意 操作配置 里面的 仅送到选项 要选择不同的)
3 找到 –管理 – 用户
选择报警媒介 – 添加 (我这里是添加过的)
创建邮件报警媒介 ,收件人那里要写正确,可以多个用逗号分隔
创建微信的到此就结束了!
下面测试停止一台服务器上zabbix_agentd服务# netstat -lntp |grep 10050tcp 0 0 192.168.11.57:10050 0.0.0.0:* LISTEN 20537/zabbix_agentd# service zabbix_agentd stopShutting down zabbix_agentd: # netstat -lntp |grep 10050#等待几分钟 zabbix服务端监测不到就会触发报警了发送细节状态:收取到的邮件:微信收到的:
页:
[1]