Zabbix配置企业钉钉报警

一、Zabbix简介 1、zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 2、zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 3、zabbix由2部分构成,zabbix server与可选组件zabbix agent。 4、zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。 二、完整的Zabbix监控平台包括:Zabbix-Server、Zabbix-DB、Zabbix-WEB、Zabbix-Client、Zabbix-Proxy;

二、钉钉告警配置

	1、添加钉钉机器人
	![](https://s4.51cto.com/images/blog/202004/03/efa518bec74cbaf8923f30ad89a913d5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
	
	选择钉钉自定义机器人

	2、配置服务器
	3、创建钉钉文件夹
	/usr/local/zabbix/share/zabbix/alertscripts/dingding.py
	将以下内容复制的dingding.py文件夹
	#!/usr/bin/python3
	
		import requests
		import json
		import sys

		#告警群,测试环境
		url = 'https://oapi.dingtalk.com/robot/send?access_token=4144092c9868f58f6637cf938de2adca0104bc06ff4bde85a133c176f'
		def send_msg(msg):
		"""
		:param msg: 要发送的消息
		:return: 200 or False
		"""
		#url = url
		program = {"msgtype": "text", "text": {"content": msg}, }
		headers = {'Content-Type': 'application/json'}
		try:
    f = requests.post(url, data=json.dumps(program), headers=headers)
		except Exception as e:
    return False
		return f.status_code
	def main():
msg = sys.argv[1]
send_msg(msg)

	if __name__ == '__main__':![](https://s4.51cto.com/images/blog/202004/03/ed5aadfd8682c18967dc8caf765f6998.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
	
	main()

三、配置zabbix监控平台 1)创建报警媒介 2)添加报警媒介

	3)添加动作

4)默认信息

	 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
	 
	 故障{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}
	
	故障{TRIGGER.STATUS},服务器:{HOSTNAME1}:{TRIGGER.NAME}已恢复!
	
	故障{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}: 报警确认!
	
	确认信息:"{ACK.MESSAGE}"
	服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
	确认人:{USER.FULLNAME} 
	时间:{ACK.DATE} {ACK.TIME} 
	当前的问题是: {TRIGGER.NAME}
	时间ID:{EVENT.ID}
  1. 配置用户报警媒介

6、测试发送钉钉信息