您的位置:首页 > 编程语言 > Python开发

zabbix 通过python脚本将报警信息发送到rabbitMQ

2016-12-08 12:01 645 查看

1、查看zabbix-server 的配置文件中 AlertScriptsPath 的配置

### Option: AlertScriptsPath

#       Full path to location of custom alert scripts.

#       Default depends on compilation options.

#

# Mandatory: no

# Default:

AlertScriptsPath=/usr/share/zabbix/alertscripts

注:如果修改了默认配置,需要重启zabbix-server

2、在/usr/share/zabbix/alertscripts目录,编写python脚本

脚本如下:test.py

#!/usr/bin/env python
import pika
import sys
import json

connection = pika.BlockingConnection(pika.connection.URLParameters('amqp://username:password@192.168.102.134:5672/ECI.HOST'))
channel = connection.channel()

#channel.exchange_declare(exchange='amp.msgpush',type='topic')

routing_key = sys.argv[1] if len(sys.argv) > 1 else 'wechat.push'

#f=file('/usr/share/zabbix/alertscripts/test.log','w+')
#f.write(sys.argv[2])
#f.close()

MESS=sys.argv[2].split(',')

#
data={}
data["TRIGGERNAME"]=MESS[0]
data["TRIGGERSTATUS"]=MESS[1]
data["TRIGGERSEVERITY"]=MESS[2]
data["HOSTNAME"]=MESS[3]
data["EVENTDATE"]=MESS[4]
data["EVENTTIME"]=MESS[5]
data["TRIGGERKEY"]=MESS[6]
data["ITEMNAME1"]=MESS[7]
data["ITEMVALUE1"]=MESS[8]

message=json.dumps(data)

#message = ' '.join(sys.argv[2:]) or 'Hello World!'
channel.basic_publish(exchange='amp.msgpush',
routing_key=routing_key,
body=message)
#print(" [x] Sent %r:%r" % (routing_key, message))
connection.close()


3、报警媒介类型



4、配置动作(action )





5、配置用户下报警媒介

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: