源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

利用ganglia监控redis的最新解决方法

  • 时间:2022-11-01 19:45 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用ganglia监控redis的最新解决方法
[b]前言[/b] Ganglia主要用来监控系统性能的软件,通过曲线很容易见到每个节点的工作状态,对合理调整,分配系统资源,提高系统整体性能起到重要作用,支持浏览器方式访问,但不能监控节点硬件技术指标。Ganglia是分布式的监控系统。 Redis现在在业务中应用已经很广泛了,但是如何监控redis,实时的观察redis的性能,在搜索引擎搜索“ganglia监控redis”,发现都是13年的老文章,都是说要到https://github.com/ganglia/gmond_python_modules这个第三方插件库下载redis监控模块 [b]解决方法[/b] 但是我发现[code]gmond_python_modules[/code]这个repo下面已经没有redis模块了,于是查看[code]git log[/code],发现redis模块已经集成到ganglia源码包里了 于是下载了源码包,搜索之后发现redis模块位于[code]gmond/python_modules/db/redis.py[/code],配置文件在[code]gmond/python_modules/conf.d/redis.pyconf.disabled[/code]。 修改配置文件里的host和port两个参数为要监控redis的ip和端口,然后将两个文件复制到对应的目录下。(通常[code]redis.pyconf[/code]复制到ganglia安装目录[code]/etc/conf.d/[/code]下,redis.py复制到ganglia安装目录[code]/lib64/ganglia/python_modules[/code]) 重启gmond,可以看到有redis的图出来了,但是数据却都是空的。 于是停掉gmond,使用[code]gmond -f -d 1[/code]启用调试模式,发现redis.py报错
[PYTHON] Can't call the metric handler function for [connected_clients] in the python module [redis].

Traceback (most recent call last):
File “/opt/gmond/lib64/ganglia/python_modules/redis.py”, line 21, in metric_handler
n, v = line.split(“:”)
ValueError: need more than 1 value to unpack
查看上下文代码
for line in info.splitlines()[1:]:
 if "" == line:
  continue
 n, v = line.split(":")
大概意思是把[code]redis info[/code]命令输出的每一个非空行用:分割,但是我安装的redis版本是2.8+,info命令会输出类似#Server这样的注释,这样就导致按:分割失败,所以python报错,gmond取不到值。 所以解决方案也很简单,把上面那段代码修改成如下即可,也就是跳过空行和以#开头的行
for line in info.splitlines()[1:]:
 if "" == line or line[0] == '#':
  continue
 n, v = line.split(":")
再重启gmond,过一会就可以在ganglia看到数据了 ========================================== 看了下ganglia在github上的代码,发现最新代码已经把这个bug修复了,只不过还没有release [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部