在企业信息化建设中,监控是非常重要的一环。监控可以帮助企业实时掌握系统的运行状态,及时发现问题并进行处理。而在监控中,告警通知更是至关重要的一环,它可以帮助企业快速响应问题,及时解决问题,从而避免损失的扩大。
zabbix是一款功能强大的监控系统,它可以通过配置告警媒介来实现告警通知。告警媒介可以是邮件、短信、微信等多种方式,其中微信告警通知在企业中越来越受欢迎。本文将介绍如何使用zabbix告警通知python脚本实现企业微信告警通知。
zabbix告警通知设置
在zabbix中,我们可以通过配置告警媒介来实现告警通知。告警媒介可以是邮件、短信、微信等多种方式。下面是具体的配置步骤:
- 进入zabbix管理页面,点击左侧菜单栏的“Administration”,再选择“Media types”。
- 点击“Create media type”按钮,进入创建媒介类型页面,填写媒介类型名称、类型、脚本路径等信息。其中,脚本路径为zabbix告警通知python脚本的路径。
- 点击“Save”按钮,保存媒介类型。
zabbix告警级别设置
在zabbix中,我们可以通过设置告警级别来实现告警通知的灵活控制。告警级别可以是信息、警告、平均、高、灾难等级别。下面是具体的设置步骤:
- 进入zabbix管理页面,点击左侧菜单栏的“Configuration”,再选择“Actions”。
- 点击“Create action”按钮,进入创建告警动作页面,填写动作名称、条件、操作等信息。其中,操作中的媒介类型为上一步中创建的媒介类型,告警级别为信息、警告、平均、高、灾难等级别。
- 点击“Save”按钮,保存告警动作。
好的,以下是分开写的三个脚本。
企业微信机器人告警通知脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:zabbix_monitor_wechat.py
# datetime:2023/1/1 0:0
import requests
import json
import sys
class WeChat(object):
def __init__(self):
self.url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=**********" # 企业微信机器人url
self.headers = {'Content-Type': 'application/json'}
def send_message(self, content):
message = {
"msgtype": "text",
"text": {
"content": content
}
}
r = requests.post(url=self.url, headers=self.headers, data=json.dumps(message))
return r.text
if __name__ == '__main__':
content = sys.argv[1]
wechat = WeChat()
wechat.send_message(content)
钉钉机器人告警通知脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:zabbix_monitor_dingtalk.py
# datetime:2023/1/1 0:0
import requests
import json
import sys
class DingTalk(object):
def __init__(self):
self.url = "https://oapi.dingtalk.com/robot/send?access_token=**********" # 钉钉机器人url
self.headers = {'Content-Type': 'application/json'}
def send_message(self, content):
message = {
"msgtype": "text",
"text": {
"content": content
}
}
r = requests.post(url=self.url, headers=self.headers, data=json.dumps(message))
return r.text
if __name__ == '__main__':
content = sys.argv[1]
dingtalk = DingTalk()
dingtalk.send_message(content)
飞书机器人告警通知脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:zabbix_monitor_feishu.py
# datetime:2023/1/1 0:0
import requests
import json
import sys
class FeiShu(object):
def __init__(self):
self.url = "https://open.feishu.cn/open-apis/bot/v2/hook/**********" # 飞书机器人url
self.headers = {'Content-Type': 'application/json'}
def send_message(self, content):
message = {
"msg_type": "text",
"content": {
"text": content
}
}
r = requests.post(url=self.url, headers=self.headers, data=json.dumps(message))
return r.text
if __name__ == '__main__':
content = sys.argv[1]
feishu = FeiShu()
feishu.send_message(content)
修改默认报警模板
1.问题
主题:
故障告警:{EVENT.NAME}
消息:
告警信息:{TRIGGER.NAME}
告警主机:{HOSTNAME1}
IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
2.恢复
主题:
故障恢复:{EVENT.NAME}
消息:
告警主机:{HOSTNAME1}
IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.DURATION}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
总结
本文介绍了如何使用zabbix告警通知python脚本实现企业微信告警通知,包括zabbix告警通知设置、zabbix告警级别设置以及zabbix告警通知python脚本。通过本文的介绍,我们可以看到,使用zabbix告警通知python脚本实现企业微信告警通知非常简单,只需要按照上述步骤进行配置即可。希望本文能够对大家有所帮助,让大家在企业信息化建设中更加得心应手。