zabbix4.2配置微信告警脚本教程

作者: admin 分类: zabbix 发布时间: 2019-08-30 14:20

企业微信地址,个人可注册

https://work.weixin.qq.com/





Python脚本

vim /usr/lib/zabbix/alertscripts/zabbix_weixin.py

#!/usr/bin/python

# -*- coding: utf-8 -*-

import json

import sys

import urllib,urllib2

agentid = 'xxx'

corpid = 'xxx'

corpsecret = 'xxx'

#get tocken

gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret

token_file = urllib2.urlopen(gettoken_url)

token_data = token_file.read().decode('utf-8')

token_json = json.loads(token_data)

my_token = token_json['access_token']

#send wechart

touser=sys.argv[1]  #many user: 'zhangsan|wangwu'

content=sys.argv[2] #content

post_content = {

        "touser":touser,

        "agentid":agentid,

        "msgtype": "text",

        "text":{

                "content":content,

        }

}

json_content = json.dumps(post_content)

url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + my_token

response = urllib2.urlopen(url,json_content)

print(response.read().decode('utf-8'))

脚本加权限

chmod a+x /usr/lib/zabbix/alertscripts/zabbix_weixin.py

chown zabbix.zabbix zabbix_weixin.py

测试脚本

/usr/lib/zabbix/alertscripts/zabbix_weixin.py 'linux_shiyan' 'disk is not enough'

Shell脚本

#!/bin/bash

###SCRIPT_NAME:weixin.sh###

###send message from weixin for zabbix monitor###

###wuhf###

###V1-2019-08-26###

CropID='XXXXXXXXXXXXXX'

Secret='XXXXXXXXXXXXXXXXXXXXXXXXX'

GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"

Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {

        local int AppID=1                        #企业号中的应用id

        local UserID=$1                          #部门成员id,zabbix中定义的微信接收者

        local PartyID=1                          #部门id,定义了范围,组内成员都可接收到消息

        local Msg=$(echo "$@" | cut -d" " -f3-)  #过滤出zabbix中传递的第三个参数

        printf '{\n'

        printf '\t"touser": "'"$User"\"",\n"

        printf '\t"toparty": "'"$PartyID"\"",\n"

        printf '\t"msgtype": "text",\n'

        printf '\t"agentid": "'" $AppID "\"",\n"

        printf '\t"text": {\n'

        printf '\t\t"content": "'"$Msg"\""\n"

        printf '\t},\n'

        printf '\t"safe":"0"\n'

        printf '}\n'

}

/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

脚本加权限

chmod a+x /usr/lib/zabbix/alertscripts/weixin.sh

chown zabbix.zabbix weixin.sh

测试

sh weixin.sh  linux_shiyan   234   234234

填写的脚本参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}







故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}




服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

事件ID:{EVENT.ID}

测试shell脚本的显示


Linux 命令大全

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!