说明
前面文章已经讲解过lepus的搭建,并安装了redis-py,确认方法:
root@xx:~/lepus_v3.7/python# python test_driver_redis.py
Redis python drivier is ok!
安装篇请参考:http://blog.csdn.net/wlzjsj/article/details/76216098
配置redis监控
登陆天兔系统,进入配置中心,选择redis选项,看图示步骤:
http://blog.csdn.net/wlzjsj/article/details/76549055
配置都比较简单,这里就不说了;
监控redis
刚开始配置时候发现配置后,redis健康状态健康完全是空白,没有任何显示。经过询问和查找日志,原来是需要手动执行 lepus/check_redis.py才可以;
手动执行:
python check_redis.py 2017-08-01 17:10:23 [WARNING] check redis 192.xx.xx.xx:6379 : 'int' object has no attribute '__getitem__' 2017-08-01 17:10:23 [WARNING] check redis 192.xx.x.xxx:6379 : 'int' object has no attribute '__getitem__' 2017-08-01 17:10:23 [INFO] check redis controller finished. |
redis健康状态显示有数据了,但是全部是失败状态。
理论上配置redis后就已经结束了,经查发现源码有点bug
http://blog.csdn.net/wlzjsj/article/details/76549055
问题原因
根据问题原因可以大概得出是字段的属性报错了。查源码,调试
|
源码的第122行,master_port是int类型,这里传入varchar类型,导致报错,修正:
master_server_id = func.mysql_query("SELECT id FROM db_servers_redis WHERE host='%s' AND port='%d' limit 1;" %(master_host,master_port))
再次运行运行正常。
同时这里还有一个坑是:
源码这边做了role的判断,如果是slave的情况,必须配置master的redis监控,否则会一直报错
http://blog.csdn.net/wlzjsj/article/details/76549055