32121111 发表于 2016-11-30 09:08:25

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]
查看完整版本: zabbix3.0微信邮件报警