Zabbix告警消息推送至kafka
Zabbix告警消息推送至kafka
vim /etc/hosts 192.168.179.133 kafka3 192.168.179.132 kafka2 192.168.179.131 kafka1
 启动zookeeper以及kafka 为了能让消费者均匀消费broker里的数据,这里我设置了6分区三副本
启动zookeeper cd /root/kafka_2.12-2.4.1 nohup bin/zookeeper-server-start.sh config/zookeeper.properties & >> zookeeper.log & 启动kafka nohup bin/kafka-server-start.sh config/server.properties & >> kafka.log & 创建topics bin/kafka-topics.sh --create --zookeeper kafka1:2181,kafka2:2181,kafka3:2181 --replication-factor 3 --partitions 6 --topic zabbix-alert bin/kafka-topics.sh --list --bootstrap-server 192.168.179.132:9092
编写脚本将报警信息发送至kafka中
vim /usr/lib/zabbix/alertscripts/alert_kafka.py
chmod +x /usr/lib/zabbix/alertscripts/alert_kafka.py
#!/usr/bin/python
#coding=utf-8
from kafka import KafkaProducer
import json,sys
receive=sys.argv[1]
message=sys.argv[2]
producer = KafkaProducer(
value_serializer=lambda v: json.dumps(v).encode(utf-8),
bootstrap_servers=[192.168.179.132:9092,192.168.179.133:9092,192.168.179.134:9092]
)
data={
"receive":receive,"alert":message}
producer.send(zabbix-alert, data)
producer.close()
将此脚本放入后台持续运行
nohup python alert_receive.py & >> alert.log &
ZABBIX动作配置 创建报警媒介 
配置用户告警媒介
配置动作
 
配置完成后触发告警进行测试
效果如下 
