Codis监控工具

背景

由于之前成功地做了一次线上Codis集群不停机迁移,并且之后稳定的运行了一段时间。部门内的运维弟兄们看到了Codis的好处,也纷纷在各自负责的业务中推广使用。个人感觉Codis集群确实要比直接的redis主从或者sentinel要灵活很多,其中的好处大家可以去github上面搜索codis,最新的版本是codis3.0。由于使用广泛,其中也出现了大大小小的问题。

问题来临了

其实这里只讨论最大的一个问题,就是监控。其实我们已经有使用nagios对redis-server或者proxy的端口进行监控,告警速度也比较快。但是,就像我在回忆录里面说到的,能不能自我修复呢?由于缓存的特性,故障几秒钟就有可能丢失大量的数据。所以我开始思考监控并且治愈。官方开源里面有一个codis-ha的工具,是一个后台进程。它对集群内所有的server group进行监控,一旦发现group内的master出问题了,马上进行group内主从切换。这个工具确实可以实现治愈,但是后面还需要一些善后的工作。比方说挂掉的master要启动并且手动重新加到group里面等等。但是这个codis-ha只是“默默地“治愈集群,并没有告诉我它干了什么。同时,因为codis-server经常变动,需要经常改动nagios监控也着实不方便。这就促使我思考改进的办法。

思路有了

通过思考,我想自己实现一个codis-ha。既可以治愈集群,又可以发送告警消息。官方的codis-ha是使用go语言编写的,但我熟悉的是python。于是在理解了官方的实现逻辑之后,我自己写了一个python版的codis-ha,并且是带有告警功能的。分享在github,欢迎大家使用并改进。这个代码做了点修改,默认是发送邮件告警,如果需要,也可以加上短信或者微信告警。

Github: pyCodis-ha

您的支持将鼓励我继续创作!
0%