站点图标 星露谷值班站长

zabbix监控otter异常挂起

python 版使用不方便,请使用最新的 golang 版监控

https://www.aityp.com/zabbix%e7%9b%91%e6%8e%a7otter-%e8%87%aa%e5%8a%a8%e5%8f%91%e7%8e%b0/

因为业务中使用了 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 挂起的时候就可以正常收到邮件钉钉等通知了

退出移动版