• 开源监控软件ganglia


     开源监控软件ganglia安装手册 

    Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等指标。

    Ganglia的强大在于:ganglia服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据。这个体系设计表示一台服务器能够通过不同的分层能够管理上万台机器。这个功能是其他mrtg,nagios,cacti所不能比拟。

    Ganglia的扩展插件非常好写,无论用何种语言(shell,php,pyton)都可以写,只要把最终结果传给gmetric就可以,这样在web上就可以看到对应的数据。

    0.           准备

    最新的ganglia版本为3.2.0,但是我推荐安装ganglia3.0.3,因为这个版本安装比较简单,依赖包只有rrdtool。而新版本依赖包太多。

    官方网站:http://ganglia.info

    ganglia的下载地址 http://sourceforge.net/projects/ganglia

    windows版windows客户端版和ganglia 源包:

    :http://www.sajinet.com.pe/ganglia/

    http://sourceforge.net/project/showfiles.php?group_id=43021&package_id=35280
    ganglia的安装分为服务端和客户端和web端安装

    文档帮助: http://ganglia.sourceforge.net/docs/

    1)     服务端依赖包

    Ganglia里的gmetad

    Rrdtool(这个依赖很多包,ganglia对于rrdtool的版本不敏感,最好选择比较好安装的版本安装)

    2)     客户端
    ganglia里的gmond

    3)     Web端:

    Apache,php,rrdtool,php-gd(可不用装,不装的话只是看不到一张饼图,不影响使用)

     1.服务端安装 gmetad)

       服务端的服务为gmetad,安装前需要先安装RRDTool(数据库和绘图工具,服务端收集的客户端信息由其来保存),因为要绘制曲线图,所以安装RRDTool前,还必须安装好libpng,freetype,zlib这些库(也是php的gd库需要的),下载地址http://www.rrdtool.org/ 。

    安装完了RRDTool,就可以安装gmetad了

     

    点击(此处)折叠或打开

    1. tar –zxvf ganglia3.0.3.tar.gz
    2. cd ganglia3.0.3
    3. ./configure CFLAGS="-I/usr/local/rrdtool-1.0.50/include" CPPFLAGS="-I/usr/local/rrdtool-1.0.50/include" LDFLAGS="-L/usr/local/rrdtool-1.0.50/lib" --with-gmetad --enable-gexec
    4. make
    5. make install

    将gmetad.init文件拷贝到 /etc/init.d/:

     

    点击(此处)折叠或打开

    1. cd ganglia-3.0.3/gmetad
    2. cp gmetad.init /etc/init.d/gmetad #若是ganglia安装在别的目录,则修改gmetad.init里的gmetad路径
    3. cp gmetad.conf /etc/gmetad.conf
    4. chkconfig gmetad on
    5. chkconfig --list gmetad
    6. GMETAD 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    创建rrd数据存储的文件夹, 修改属性拥有者为: "nobody":

     

    点击(此处)折叠或打开

    1. mkdir /var/lib/ganglia/rrds
    2. chown nobody:nobody /var/lib/ganglia/rrds

    启动gmetad:

     

    点击(此处)折叠或打开

    1. service gmetad start
    2. Starting GANGLIA gmetad: [ OK ]

    修改 /etc/gmetad.conf文件:

     

    点击(此处)折叠或打开

    1. data_source "taskcenter" 1.2.3.4 #所要监控的客户端 可以写多个
    2. setuid_username "root" #可改为其他安全用户
    3. # default: "/var/lib/ganglia/rrds" #定义该客户端的数据保存的路径
    4. # rrd_rootdir "/some/other/place"
    5. rrd_rootdir "/var/lib/ganglia/rrds"

    重新启动gmetad:

     

    点击(此处)折叠或打开

    1. service gmetad start
    2. Starting GANGLIA gmetad: [ OK ]

    验证gmetad正常工作:

     

    点击(此处)折叠或打开

    1. telnet localhost 8651

    就可以得到监控的各个主机的状态。

     

    2.安装客户端gmond2.1 linux

     在每台需要监控的机器上,安装gmond

    安装ganglia:

     

    点击(此处)折叠或打开

    1. tar zxvf ganglia-3.0.3.tar.gz
    2. cd ganglia-3.0.3
    3. ./configure --prefix=/usr/local/ganglia
    4. make;
    5. make install
    6. cd gmond
    7. ./gmond –t > /etc/gmond.conf

    点击(此处)折叠或打开

    1. vi gmond.init
    2. 修改里面的GMOND 改为GMOND=/usr/local/ganglia/sbin/gmond
    3. # cp gmond.init /etc/init.d/gmond
    4. # chkconfig --add gmond
    5. # chkconfig --list gmond
    6. gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
    7. # service gmond start
    8. Starting GANGLIA gmond: [ OK ] #若不成功的话,就用/usr/local/ganglia/sbin/gmond手动启动

    启动失败有可能是因为多播地址没有路由

     

    点击(此处)折叠或打开

    1. route add -host 239.2.11.71 dev eth0

    验证gmond正常工作:

     

    点击(此处)折叠或打开

    1. telnet localhost 8649

    就可以获取机群内运行gmond的主机的信息

    vi /etc/gmond.conf
    配置gmond.conf:

     

    点击(此处)折叠或打开

    1. /etc/gmond.conf:
    2. globals
    3. {
    4. setuid = no
    5. user = nobody
    6. cleanup_threshold = 300 /*secs */
    7. }
    8. #修改监控组名称
    9. cluster
    10. {
    11. name = "taskcenter"
    12. .......}

     

    配置完成后重新启动gmond

     

    2.2 window

    下载:http://www.sajinet.com.pe/ganglia/ganglia-3.1.0-bin.zip

    解压后,运行gmond.bat

    测试:telnet 127.0.0.1 8649

    安装自启动:把gmond.bat加到启动项中

    3.web端安装

    web端用于通过web来查看监控状态。
    因为web端程序是php写的,所以需要安装apache。同时需要编译php的gd库。web端需要和服务器端在一块。

     

    # cp -a ganglia-3.0.3/web /var/www/html/ganglia

    确定web server支持PHP4

    对apache来说,php模块mod_php的状态应该是enabled,貌似默认就是的^_^

    配制文件是/var/www/html/ganglia/conf.php

     

    点击(此处)折叠或打开

    1. # Where gmetad stores the rrd archives.
    2. $gmetad_root = "/var/lib/ganglia";
    3. $rrds = "/usr/local/rrdtool-1.0.50/"; #数据源路径
    4. # Leave this alone if rrdtool is installed in $gmetad_root,
    5. # otherwise, change it if it is installed elsewhere (like /usr/bin)
    6. define("RRDTOOL", "/usr/local/rrdtool-1.0.50/bin/rrdtool"); # rrdtool执行路径
    7. #
    8. # If you want to grab data from a different ganglia source specify it here.
    9. # Although, it would be strange to alter the IP since the Round-Robin
    10. # databases need to be local to be read.
    11. #
    12. $ganglia_ip = "localhost";
    13. $ganglia_port = 8652;
    14. #$ganglia_port = 8649;

     

    在浏览器地址栏输入http://localhost/ganglia/应该可以看到有页面显示了。

     

    演示地址 伯克利大学的集群监控(1000多台服务器):

    http://monitor.millennium.berkeley.edu/

     

     

    访问web出现图片画不出来的原因:

    1)     rrdtool没有安装,或者conf.php里没有配置

    2)     gemtad没有启动

    3)     没有客户端数据

    4)     Selinux限制apache执行rrdtool

     另外ganglia还有很多插件可以监控更多的指标

    其中有一个插件,安装后可以查看任意时间的曲线图

    http://ganglia.info/

  • 相关阅读:
    教育是什么?
    关于CTime::Format在Unicode下的输出问题及解决办法
    COleDateTime在Unicode下,Format函数会有问题。
    UNICODE字符集
    处理字符串String类和正则表达式
    关于datatable linq的转换
    js
    HDU 3874 Necklace
    HDU 1520 Anniversary party
    HDU 4314 Save the dwarfs
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/7605168.html
Copyright © 2020-2023  润新知