zabbix配置企业微信告警

章节

1.配置企业微信应用

1.1.配置企业微信应用

  • 告警应用创建

  • 告警应用信息查看

  • 配置应用接口调用IP,限制哪些IP地址才能调用

1.2.获取用户信息的URL

其他接口可以参考企业微信开发者文档 https://developer.work.weixin.qq.com/document/path/96067

功能 API接口信息
获取access_token https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=&corpsecret=
获取部门成员 https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=<access_token>&department_id=<department_id>
获取部门成员信息 https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=<access_token>&department_id=<department_id>
读取成员信息 https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=<access_token>&userid=
  • 获取USERID值,用于发送告警

1.3.通过企业微信后台导出信息来获取userid值

2.企业微信告警脚本

2.1 企业微信告警脚本

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

# import的三方库
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='corpid'

# 企业微信zabbix的key
appsecret='appsecret'

# 企业微信zabbix用于ID
agentid=agentid

#获取accesstoken
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]

# 发送告警的messages信息
message=sys.argv[2] + "\n\n" +sys.argv[3]

params={
        "touser": touser,
#       "toparty": toparty,
        "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.2 zabbix服务器配置

  • 安装python库
pip3 install requests
  • 放置企业微信告警脚本
mv weixin.py /usr/lib/zabbix/alertscripts/
  • 授权脚本
chmod +x /usr/lib/zabbix/alertscripts/weixin.py
  • 测试脚本
/usr/lib/zabbix/alertscripts/weixin.py <告警接收人> '<告警标题>' '<告警内容>'

  • 授权日志所有权
chown zabbix.zabbix /tmp/weixin.log

3.配置告警推送至企业微信

3.1.添加weixin.py告警媒介

Script parameters:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

  • 测试企业微信告警媒介

3.2.企业微信告警联系人添加

3.3.配置告警推送至企业微信

  • 告警推送配置
虚拟化环境: 故障{TRIGGER.STATUS},网络设备:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

消息内容:
告警主机:{HOSTNAME1}
主机名称:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
告警链接:{TRIGGER.URL}

  • 告警恢复配置
虚拟化环境: 恢复{TRIGGER.STATUS},网络设备:{HOSTNAME1}事件: {TRIGGER.NAME}恢复!

消息内容:
告警主机:{HOSTNAME1}
主机名称:{HOST.NAME}
恢复时间:{EVENT.DATE} {EVENT.RECOVERY.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
告警链接:{TRIGGER.URL}
  • 配置故障告警通知

  • 配置故障恢复通知

4.企业微信告警结果

  • zabbix故障告警显示

  • zabbix故障恢复告警显示

posted @ 2024-12-02 16:31  二乘八是十六  阅读(1446)  评论(4)    收藏  举报