ganglia监控redis和mongodb
由于ganglia是默认安装,打开了python插件功能,就不需要设置了
从https://github.com/ganglia/gmond_python_modules获取插件的代码
redis的插件是redis-gmond文件夹
mongodb的插件是mongodb文件夹
使用whereis命令查看ganglia的安装路径,安装有gmetad服务的机器上
redis的插件redis-gmond.py文件中默认的redis地址127.0.0.1,端口是6379,如果redis的master不是这个服务器地址和端口的需要修改下。
同时不要忘记将redis-gmond.pyconf中的地址和端口也修改了。
mongodb的插件中代码问题大一些。
首先,mongodb.py中
PARAMS = { 'server_status' : '~/mongodb-osx-x86_64-1.8.1/bin/mongo --host mongodb04.example.com --port 27018 --quiet --eval "printjson(db.serverStatus())"', 'rs_status' : '~/mongodb-osx-x86_64-1.8.1/bin/mongo --host mongodb04.example.com --port 27018 --quiet --eval "printjson(rs.status())"' }
这里的mongodb的安装路径,host地址,服务端口,默认情况下压根都不能用的,需要根据自己的情况修改为你的mongodb安装路径,houst地址,端口为27017(即默认端口,如果修改了则是你修改后的mongodb端口)
PARAMS = { 'server_status' : '安装路径/bin/mongo --host 服务器ip或name --port 端口 --quiet --eval "printjson(db.serverStatus())"', 'rs_status' : '安装路径/bin/mongo --host 服务器ip或name --port 端口 --quiet --eval "printjson(rs.status())"' }
其次,配置文件mongodb.conf中的地址、端口,甚至使用的mongodb命令都是不可用的
param server_status { value = "mongo --quiet --eval 'printjson(db.serverStatus())'" } param rs_status { value = "mongo --quiet --eval 'printjson(rs.status())'" }
上面的代码是错的,如果没有设置mongodb的环境变量,设置了也是错的,语法不对
下面是正确的
param server_status { value = "/安装路径/bin/mongo --host 服务器ip或name --port 端口 --quiet --eval 'printjson(db.serverStatus())'" } param rs_status { value = "/安装路径/bin/mongo --host 服务器ip或name --port 端口 --quiet --eval 'printjson(rs.status())'" }将redis-gmond.py和mongodb.py复制到ganglia安装目下的python_modules目录下
将redis-gmond.pyconf和mongodb.conf复制到ganglia配置文件夹下的conf.d目录下
重新ganglia服务即可