Zabbix告警消息推送至kafka

Zabbix告警消息推送至kafka

vim /etc/hosts
192.168.179.133 kafka3
192.168.179.132 kafka2
192.168.179.131 kafka1

![image.png](https://img-blog.img.cn/img_convert/b882bccf1001f57260fe61096d5f904c.png#align=left&display=inline&height=129&margin=[object Object]&name=image.png&originHeight=258&originWidth=553&size=44748&status=done&style=none&width=276.5) 启动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动作配置 创建报警媒介 ![image.png](https://img-blog.img.cn/img_convert/f50a900d4bcd772badfde623b089eeab.png#align=left&display=inline&height=171&margin=[object Object]&name=image.png&originHeight=342&originWidth=553&size=44155&status=done&style=none&width=276.5)

配置用户告警媒介

配置动作

![image.png](https://img-blog.img.cn/img_convert/f4dcd1f83d8ae16630e50ec56be21a31.png#align=left&display=inline&height=156&margin=[object Object]&name=image.png&originHeight=311&originWidth=553&size=43566&status=done&style=none&width=276.5) ![image.png](https://img-blog.img.cn/img_convert/8500dffa0950463905caf0b825796474.png#align=left&display=inline&height=179&margin=[object Object]&name=image.png&originHeight=357&originWidth=553&size=64704&status=done&style=none&width=276.5)

配置完成后触发告警进行测试

效果如下 ![image.png](https://img-blog.img.cn/img_convert/13a4d5e20e2716d847819f42b55193b3.png#align=left&display=inline&height=553&margin=[object Object]&name=image.png&originHeight=1106&originWidth=553&size=248535&status=done&style=none&width=276.5)

经验分享 程序员 微信小程序 职场和发展