zoukankan      html  css  js  c++  java
  • zabbix企业微信告警配置教程

    前言:

      zabbix企业微信告警只需要配置一次就可以使用很久了,但是发现再次配置时,总会有遗忘,很麻烦又要去重新熟悉,所以,现在记录一份详细的配置过程,方便日后再次配置。

    1.zabbix_server服务器端配置:

    cat /usr/local/zabbix/etc/zabbix_server.conf | grep -Ev "^$|^#"

    LogFile=/tmp/zabbix_server.log
    DBHost=127.0.0.1
    DBName=zabbix
    DBUser=root
    DBPassword=mysql_password
    DBPort=3306
    StartPollers=30
    StartPollersUnreachable=3
    StartTrappers=5
    StartPingers=5
    StartDiscoverers=5
    MaxHousekeeperDelete=20000
    CacheSize=64M
    HistoryCacheSize=128M
    TrendCacheSize=4M
    ValueCacheSize=128M
    Timeout=30
    AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts  #发消息脚本路径
    LogSlowQueries=3000

    2.编写发消息到企业微信脚本

    vim /usr/local/zabbix/share/zabbix/alertscripts/sed_messages_weixin.py

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # author:chenjianwen
    # email:1071179133@qq.com
    
    import sys
    import urllib2
    import json
    import requests
    
    toparty = sys.argv[1] #发给哪个部门
    title = sys.argv[2]       #标题
    message = sys.argv[3] #内容
    
    corpid = 'ww7xxxx' #企业微信号id
    #corpsecret = 'Hjekn1xxxV9xA'    ##应用Secret
    
    if toparty == "4":     #根据部门id确定对应项目的报警消息发送到对应部门
        corpsecret = 'xxxxxxxxxxxxxxxxxxxxxxx'
        agentid = 1000004
    elif toparty == "13":
        corpsecret = 'xxxxxxxxxxxxxxxxxxxxxxx'
        agentid = 1000013
    
    get_access_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s'%(corpid,corpsecret)
    
    def get_access_token(get_access_token_url):
        data = urllib2.urlopen(get_access_token_url).read().decode('utf-8')
        data = json.loads(data)
        #print data["access_token"]
        return data["access_token"]
    
    def send_messages(access_token,toparty,agentid,content):
        send_messages_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s'%access_token
        data = {
               "touser" : "",   #成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向该企业应用的全部成员发送
               "toparty" : toparty, ##部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
               "totag" : "",    #标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
               "msgtype" : "text",  #消息类型,此时固定为:text
               "agentid" : agentid,   #企业应用的id,整型。可在应用的设置页面查看
               "text" : {
                   "content" : content  #消息内容,最长不超过2048个字节
               },
               "safe":0     #表示是否是保密消息,0表示否,1表示是,默认0
            }
        value = json.dumps(data)    ##转换为str格式
    
        request = requests.post(send_messages_url, data=value)  ##post请求发送数据
        request_result = request.status_code    ##获取请求码
        if request_result == 200:
            print "【%s】消息发送成功"%content
        else:
            print "【%s】消息发送失败"%content
    
    if __name__ == '__main__':
        access_token = get_access_token(get_access_token_url)
        send_messages(access_token,toparty,agentid,message)

    3.创建报警媒介类型,尝试次数:3,尝试间隔10s

    脚本参数说明:
    {ALERT.SENDTO}    #发送给哪个部门
    {ALERT.SUBJECT}    #发送的标题
    {ALERT.MESSAGE}    #发送的内容

     4.创建用户报警媒介

     5.创建动作触发器

     

     配置信息:
    【项目】:豆豆打僵尸,【状态】:{TRIGGER.STATUS},【服务器】:{HOST.IP},【问题】: {TRIGGER.KEY1} 【告警项目】: 豆豆打僵尸 【告警主机】: {HOST.IP} 【告警时间】: {EVENT.DATE} {EVENT.TIME} 【告警等级】: {TRIGGER.SEVERITY} 【告警项目】: {TRIGGER.KEY1} 【问题详情】: {ITEM.NAME} {ITEM.VALUE} 【当前状态】: {TRIGGER.STATUS} {ITEM.VALUE1} 故障 【事 件 ID】: {EVENT.ID}
    ================================================================ 【项目】:豆豆打僵尸,【状态】:{TRIGGER.STATUS},【服务器】:{HOST.IP},【问题】: {TRIGGER.KEY1} 恢复 【恢复项目】: 豆豆打僵尸 【恢复主机】: {HOST.IP} 【告警时间】: {EVENT.DATE} {EVENT.TIME} 【恢复时间】: {EVENT.DATE} {EVENT.RECOVERY.TIME} 【恢复等级】: {TRIGGER.SEVERITY} 【恢复项目】: {TRIGGER.KEY1} 【问题恢复】: {ITEM.NAME} {ITEM.VALUE} 【当前状态】: {TRIGGER.STATUS} {ITEM.VALUE1} 恢复 【事 件 ID】: {EVENT.ID}
  • 相关阅读:
    解决win7和win8的64位系统安装NetAdvantage时总是提示%SystemDriver%inetpub\wwwroot错误的方法
    如何使VS2008 调试网站的根目录和IIS调试的一致?
    设置网站默认目录
    asp.net网站未能加载文件或程序集或它的某一个依赖项。拒绝访问
    HTML5 :Canvas之基本用法
    HTML5 Canvas之图片引用
    python虚拟环境的介绍和创建
    基于jTemplates、ascx协同工作的酷UI模板技术
    我的.Subtext二次开发之路系列:无限层次分类
    我的.Subtext二次开发之路系列:引言
  • 原文地址:https://www.cnblogs.com/chenjw-note/p/11978129.html
Copyright © 2011-2022 走看看