python版使用不方便,请使用最新的golang版监控
因为业务中使用了otter做数据库同步,但是otter会因为一些异常导致同步挂起,所以就写了一个简单的脚本来监控otter异常挂起,通过zabbix来实现报警推送的功能。
zabbix_agentd.conf 中加入以下配置
UserParameter=otter.status[*],/usr/local/zabbix/scripts/otter-status.py $1
需要安装pika模块
pip install pika
otter-status.py 脚本内容
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
import sys
from kazoo.client import KazooClient
def get_status(id):
zk = KazooClient(hosts='你的zk地址:2181', read_only=True)
zk.start()
data = zk.get("/otter/channel/%s" % id)
print(data[0].decode('utf-8').strip('"'))
zk.stop()
if __name__ == '__main__':
id = sys.argv[1]
get_status(id)
配置之后记得重启zabbix-agentd
在zabbix上面添加监控项
注意图中40代表你要监控的channel项的id
添加触发器
后面Otter挂起的时候就可以正常收到邮件钉钉等通知了