最近在捣鼓研究ganglia,汇总分享一些可能遇到的问题:
1.为什么编译ganglia的时候加了with-python还是没有lib/ganglia的目录下出现modpython.so?
这个问题主要是注意两点:
(1)with-python后面跟的是python的二进制路径,比如:
./configure --with-python=/usr/local/python/bin/python2.7
(2)python的libpython.so 必须软链到系统可识别的动态库路径下,就算在/et/ld.so.conf下指定了python的so路径都不行。例如
ln -s /usr/local/python/lib/libpython2.7.so /usr/local/lib/libpython2.7.so
软链后也要在/etc/ld.so.conf 下把/usr/local/python/lib 添加进去。
2. ganglia 的很多扩展插件在最新的ganglia的tar包下已经有封装了,直接拿来用就好了,不需要到网上到处找。路径就在解压缩后的路径下,例如:
ganglia-3.5.0/gmond/moduels 这个目录是用来告诉加载perl,python,php的so扩展。提供如下三个脚本插件的运行环境和相关配置。
ganglia-3.5.0/gmond/perl_moduels perl语言监控插件脚本
ganglia-3.5.0/gmond/php_moduels php语言监控插件脚本
ganglia-3.5.0/gmond/python_moduels python语言监控插件脚本
具体的配置含义可以看官方的文档http://sourceforge.net/apps/trac/ganglia/wiki/ganglia_gmond_python_modules,
Cchecklist
To confirm that your Ganglia installation has Python support correctly setup, double check the following:
- gmond.conf has a line which reads something along the lines of include ("/etc/ganglia/conf.d/*.conf"). This is the directory where you should place configuration files for your Python modules as.pyconf files
- modpython.conf exists in /etc/ganglia/conf.d - it contains a directive which will include the pyconf files
- You have modpython.so in /usr/lib{64}/ganglia
- The directory /usr/lib{64}/ganglia/python_modules exists. This is the directory where Python modules should be placed as .py files.
These things should be automatically done for you if you installed Python modules support via binary packages. If that is not the case please file a bug at the distribution's corresponding bug tracker.
Ubuntu 10.10 notes
Ubuntu 10.10 does not come with Python support for gmond fully setup. You will need to:
- Create /etc/ganglia/conf.d/modpython.conf and make it look like https://sourceforge.net/apps/trac/ganglia/browser/trunk/monitor-core/gmond/modules/conf.d/modpython.conf.in - for instance:
modules { module { name = "python_module" path = "/usr/lib(64)/ganglia/modpython.so" params = "/usr/lib(64)/ganglia/python_modules" } } include('/etc/ganglia/conf.d/*.pyconf')
- Create the directory /usr/lib(64)/ganglia/python_modules
- Ensure that /usr/lib(64)/ganglia/modpython.so already exists (Ubuntu 10.10 gets this one right when you install ganglia via apt)