zabbix3.0微信邮件报警

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix3.0微信邮件报警相关的知识,希望对你有一定的参考价值。

Zabbix 邮件微信报警

分2大部分:

                1.Zabbix服务器端配置

                        邮件服务安装配置

                2.Web端服务配置

服务器端的设置:

系统 cenots 6.5   2.6.32-431.el6.x86_64

安装邮件发送服务:

[[email protected] ~]# wget http://sourceforge.net/projects/heirloom/files/latest/download?source=files

技术分享

[[email protected] ~]# mv download\?source\=files mailx-12.4.tar.bz2

[[email protected] ~]# tar xf mailx-12.4.tar.bz2

[[email protected] ~]# cd mailx-12.4

打个补丁才可以用:

技术分享

[[email protected] mailx-12.4]# patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patch

patching file makeconfig

patching file openssl.c

[[email protected] mailx-12.4]# make

[[email protected] mailx-12.4]# make install UCBINSTALL=/usr/bin/install

下面为输出信息:

技术分享

test -d /usr/local/bin || mkdir -p /usr/local/bin

/usr/bin/install -c mailx /usr/local/bin/mailx

strip /usr/local/bin/mailx

test -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.1

test -d /etc || mkdir -p /etc

test -f /etc/nail.rc || \

              /usr/bin/install -c -m 644 nail.rc /etc/nail.rc

[[email protected] mailx-12.4]# vim /etc/nail.rc

编辑配置文件最下面加上:修改为你自己的

set [email protected] smtp=smtp.163.com

set [email protected] smtp-auth-password=邮箱密码

set smtp-auth=login

 

[[email protected] mailx-12.4]# which mailx

/usr/local/bin/mailx

[[email protected] mailx-12.4]# cd /bin

[[email protected] bin]# ln -s /usr/local/bin/mailx mail

[[email protected] bin]# mail -V

12.4 7/29/08

[[email protected] bin]# mail -s "Message"  [email protected] < /tmp/yum_save_tx-2016-11-10-17-274YsBZQ.yumtx

[[email protected] bin]# echo $?

0

技术分享

=======================邮件发送成功!==============================

 

Zabbix 报警脚本:

邮件:

[[email protected] alertscripts]# vim sendmail.sh#!/bin/bash

echo "$3" > /tmp/zabbix_mail.txt  #此文件要有zabbix 权限不然乱码

dos2unix -k /tmp/zabbix_mail.txt

/bin/mail -s "$2" $1 < /tmp/zabbix_mail.txt

 

Zabbix server 配置文件修改

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

添加或修改为下面这句:

AlertScriptsPath=/usr/local/zabbix/alertscripts  #开启zabbix调用脚本存放路径位置

 

重启zabbix服务生效

[[email protected] ~]# /etc/init.d/zabbix_server restart

 

微信:

申请微信企业号

建立部门 和添加成员(接收消息的)

技术分享

查看部门id

技术分享

新建应用

技术分享

查看应用id 和添加接收消息用户

技术分享

查看corpid

技术分享

查看管理组凭证密钥

技术分享

 

脚本:修改红色的为你自己的企业号对应的。

[[email protected] alertscripts]# vim weixin.py

#!/usr/bin/python

#_*_coding:utf-8 _*_

__author__ = ‘lvnian‘

 

import urllib,urllib2

import json

import 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[1])     #zabbix传过来的第一个参数

    subject = str(sys.argv[2])  #zabbix传过来的第二个参数

    content = str(sys.argv[3])  #zabbix传过来的第三个参数

    corpid =  ‘wxdgfhshs3f1bba2jinc‘   #CorpID是企业号的标识

    corpsecret = ‘3NDb5cKp-ViudjtgsiJ6Yw_R_jRj2cUdsgTmFLsOQGQYGPcc5wNLhPiAyTnpjinc‘  #corpsecretSecret是管理组凭证密钥

    accesstoken = gettoken(corpid,corpsecret)

senddata(accesstoken,user,content)

给予执行权限:

[[email protected] alertscripts]# chown zabbix.zabbix sendmail.sh weixin.py

[[email protected] alertscripts]# chmod +x sendmail.sh weixin.py

 

 

 

Web端配置

1登录你的zabbix     -- 管理 – 报警媒介

 

技术分享

 

 

创建媒体类型

技术分享

 

 

创建邮件的:

技术分享

 

 

创建微信的

技术分享

 

 

       2再找到—配置 --- 动作

技术分享

 

 

 

创建动作 (email  和 微信 相同)

技术分享

 

 

 

配置动作 (email  和 微信 基本相同,注意 操作配置 里面的 仅送到选项 要选择不同的

技术分享

技术分享

技术分享

 

找到 –管理 – 用户

技术分享

 

 

选择报警媒介 – 添加 (我这里是添加过的)

技术分享

 

创建邮件报警媒介 ,收件人那里要写正确,可以多个用逗号分隔

技术分享

 

 

创建微信的

技术分享

到此就结束了!

 

下面测试

停止一台服务器上zabbix_agentd服务

[[email protected] ~]# netstat -lntp |grep 10050

tcp        0      0 192.168.11.57:10050         0.0.0.0:*                   LISTEN      20537/zabbix_agentd

[[email protected] ~]# service zabbix_agentd stop

Shutting down zabbix_agentd:                               [  OK  ]

[[email protected] ~]# netstat -lntp |grep 10050

[[email protected] ~]#

技术分享

等待几分钟 zabbix服务端监测不到就会触发报警了

技术分享

发送细节状态:

技术分享

收取到的邮件:

技术分享

微信收到的:

技术分享

 

 


本文出自 “jinchuang” 博客,请务必保留此出处http://jinchuang.blog.51cto.com/8690689/1877839

以上是关于zabbix3.0微信邮件报警的主要内容,如果未能解决你的问题,请参考以下文章

zabbix3.0 邮件报警配置

通过脚本发送zabbix邮件报警

zabbix3.0配置邮件报警

zabbix3.0.4安装部署文档--邮件报警

Zabbix2.0和Zabbix3.0设置邮件报警教程

Zabbix3.0.2使用外部python脚本实现邮件报警