zabbix 微信报警

zabbix 微信报警

一、微信和短信报警的思路

在配置报警媒介类型里,选择脚本。为脚本传递参数,这个参数是zabbix 内置的,在zabbix手册中 已经定义好了。通常需要传入的参数有三个:

脚本参数value
{ALERT.SENDTO}发送给谁
{ALERT.SUBJECT}报警内容的主题
{ALERT.MESSAGE}具体的报警内容

让zabbix_agent 执行特定的脚本实现报警的功能。

下面这三个参数如何传递到脚本中,以及它的涵义

1. 在alertscripts 目录下创建脚本
root@z1:~# cd /apps/zabbix_server/share/zabbix/alertscripts/

root@z1:/apps/zabbix_server/share/zabbix/alertscripts# vim sms.sh
echo  $1 $2 $3 >> /tmp/test.txt

root@z1:/apps/zabbix_server/share/zabbix/alertscripts# chmod +x sms.sh
2. 创建脚本媒介类型

==注意:==此处的脚本类型不用写绝对路径

mark

mark

3. 为用户添加接收报警的途径

mark

4. 故意造成报警,验证报警内容
root@z1:~# cat /tmp/test.txt 
110 业务报警PROBLEM 北京业务报警服务器:192.168.1.104-web2,IP:192.168.1.104,详情:nginx_listen_80:0

所以,既然可以取到这些参数值,短信报警的要素就具备了,购买xx平台的短信服务,向这个平台的短信业务接口 发起http请求,脚本的内容差不多也就一条curl 命令 就可以了。而微信报警,只不过是脚本的内容不一样罢了

二、微信报警
2.1 下载并且注册企业版微信

下载企业微信是为了接收报警信息 ,而管理和查看企业信息在网页中(https://work.weixin.qq.com/)

关键点: 在 我的企业/企业信息/ 最后一行可以看到我的企业ID

2.2 在应用管理里创建应用

点击刚才新创建的应用,可以看见 AgentId 和 Secret。

2.3 为公司添加用户

点击 /通讯录/xx用户/ 这里 头像下面可以看到 账号

2.4 发送微信信息的过程

官方文档: https://work.weixin.qq.com/api/doc/90000/90003/90487

2.5 微信脚本
#!/usr/bin/env python
#coding:utf-8
#Author:Zhang ShiJie
import requests
import sys
import os
import json
import logging


logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')

corpid='企业ID'
appsecret="秘钥"
agentid="AgentID"
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']


msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser=sys.argv[1]
subject=sys.argv[2]
message=sys.argv[2] + "\n\n" +sys.argv[3]


params={
"touser": touser,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}


req=requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
2.6 调用脚本
root@z1:/apps/zabbix_server/share/zabbix/alertscripts# chmod +x wechat.py
root@z1:~# apt install python-pip

测试

root@z1:/apps/zabbix_server/share/zabbix/alertscripts# python3  wechat.py  xxx(接收者的账号) "这是主题" "这是内容"

之后

和上面类似,以此添加报警媒介类型、为用户添加微信报警媒介、设置动作(操作、恢复操作)即可

mark

mark

若遇到以下问题, rm /tmp/weixin.log 即可

mark

2.7 验证

当触发器报警时,微信客户端可以收到报警

mark

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值