`

开源监控软件ganglia安装手册

 
阅读更多
Ganglia是加州伯克利大学千禧计划的其中一个开源项目,以BSD协议分发。是一个集群汇总监控用的的软件,和很多人熟知的Cacti不 同,cacti是详细监控集群中每台服务器的运行状态,而Ganglia是将集群中的服务器数据进行汇总然后监控。有时通过cacti或者zabbix看 不出来的集群总体负载问题,却能够在Ganglia中体现,其集群的熵图我个人认为是个挺亮点的东西,一眼就明确集群的负载状况。中文翻译叫神经中枢,一 目了然,言简意赅。
ganglia 分为服务器端和客户端,编译后文件名是gmetad和gmond,其中gmetad是服务器端,gmond是客户端,服务器端只有一个,而被监控服务器均 安装客户端。很有意思的是,Ganglia采用Internet IPv4 类D地址中的的组播进行数据请求。我猜可能主要是为了实现一对多节省带宽的需要。其实现原理应该是gmetad发送一个请求到一个组播地址,由于是组播地 址,所以gmetad只需发送一次请求包即可完成对所有gmond的轮询。(如果是单播,则Ganglia需要向每台服务器均发送一次轮询请求,这样的 话,集群数量多了,主服务器光发送就会占用不小的带宽。而Ganglia本身是为大规模集群所做的HPC而生的,如果占用很高的带宽和占用很大量的CPU 资源去处理网络数据就不符合其设计理念了。)然后gmond通过这个请求将采集到的数据返回给gmetad,gmetad将数据保存在rrd数据库中,然 后通过web界面绘图展示。

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

0.           准备

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

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

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

windowswindows客户端版和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这些库(也是phpgd库需要的),下载地址http://www.rrdtool.org/ 

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

 

点击(此处)折叠或打开

  1. tar –zxvf ganglia3.0.3.tar.gz
  2. cd ganglia3.0.3
  3. ./configure --with-gmetad --sysconfdir=/etc/ganglia --with-librrd=/usr/local/rrdtool --prefix=/usr/local/ganglia
  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. chkconfig --add gmetad
  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: "/data/ganglia/rrds" #定义该客户端的数据保存的路径
  4. # rrd_rootdir "/some/other/place"
  5. rrd_rootdir "/data/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  --sysconfdir=/etc/ganglia  --enable-gexec
  4. make;
  5. make install
  6. cd gmond
  7. mkdir /etc/ganglia
  8. ./gmond –t | tee  /etc/ganglia/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. # chkconfig  gmond on
  7. gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  8. # service gmond start
  9. 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/ganglia/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

 

3.web端安装

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

 #yum install httpd

#yum install python

# 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 = "/data/ganglia";
  3. $rrds = "$gmetad_root/rrds"; #数据源路径
  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/应该可以看到有页面显示了。

 

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

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

2)     gemtad没有启动

3)     没有客户端数据

4)     Selinux限制apache执行rrdtool

 

4、集群的分组部署。
 
网上Ganglia讲安装配置的文章很多,但是讲分组配置的很少。 其实这个很重要,默认配置下,Ganglia会把所有东西放在一个Grid里面,也就是一个网格。大的集群,不分组。但是真实的服务器集群有各种功能,每 个群分管不同的事务,全放一起就太乱了。也不好识别,所以需要分组使用。
 
其实Ganglia的分组很简单,就是分端口,不同的组配置不同的监听端口就完事了。
我的 /etc/ganglia/gmetad.conf 是这样配置的。
gmetad
data_source "Namenode" 192.168.1.28:8653
data_source "Datanode" 192.168.1.27:8649
data_source "
Portal" 192.168.1.43:8650

data_source "Collector" 192.168.1.35:8651
data_source "DB" 192.168.1.51:8652

gridname "Hadoop"
rrd_rootdir "/data/ganglia/rrds"
#配置rrd数据保存文件的路径,给web界面用的,这个是固定的,最好放在web文件夹下,并赋予正确的权限
case_sensitive_hostnames 0
数 据来源有5个,这5个分别是每个组的组长,相当于一道杠。但是组长是不需要配置gmetad的,除非你要做多级组播收集数据。每个组长只需要分配不同的端 口号就可以了。你可能会问,IP不一样,端口一样不行吗?不行,因为这个IP是单播IP,相当于一个路由指向,而Ganglia实际的数据传输是在多播 IP上进行的,而多播IP只有一个。在客户端配置,如果你需要多级gmetad,可以配多个多播IP。
 
客户端配置就比较复杂一些了。我只贴上需要修改的部分,其他都是默认就可以了
gmond
cluster {
    name = "
Portal"
    #对应gmetad中的Portal,名称一定要写对。
    owner = "unspecified"
    latlong = "unspecified"
    url = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like.    Gmond
     used to only support having a single channel */
udp_send_channel {
    #bind_hostname = yes # Highly recommended, soon to be default.
                                             # This option tells gmond to use a source address
                                             # that resolves to the machine's hostname.    Without
                                             # this, the metrics may appear to come from any
                                             # interface and the DNS names associated with
                                             # those IPs will be used to create the RRDs.
    mcast_join = 239.2.11.71
    port =
8650
#gmetad中的Portal所分配的端口号。

    ttl = 1
}

/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
    mcast_join = 239.2.11.71
    port = 8650
    bind = 239.2.11.71
}

/* You can specify as many tcp_accept_channels as you like to share
     an xml description of the state of the cluster */
tcp_accept_channel {
    port = 8650
}
红色部分就是Portal小组的端口,从gmetad.conf中可以看到,Portal小组属于8650端口,那么相应的在gmond中,也要将udp和tcp端口写为8650。
 
如果是另外一个组的,就写上在gmetad中配置的那个端口。当然,你可以把这个端口号想像为小组的代号。可能更好理解一些。
 
再加上另外一个组的成员gmond就更容易理解了
cluster {
    name = "
DB"

    owner = "unspecified"
    latlong = "unspecified"
    url = "unspecified"
}

/* The host section describes attributes of the host, like the location */
host {
    location = "unspecified"
}

/* Feel free to specify as many udp_send_channels as you like.    Gmond
     used to only support having a single channel */
udp_send_channel {
    #bind_hostname = yes # Highly recommended, soon to be default.
                                             # This option tells gmond to use a source address
                                             # that resolves to the machine's hostname.    Without
                                             # this, the metrics may appear to come from any
                                             # interface and the DNS names associated with
                                             # those IPs will be used to create the RRDs.
    mcast_join = 239.2.11.71
    port = 8652
    ttl = 1
}

/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
    mcast_join = 239.2.11.71
    port = 8652
    bind = 239.2.11.71
}

/* You can specify as many tcp_accept_channels as you like to share
     an xml description of the state of the cluster */
tcp_accept_channel {
    port = 8652
}
红色对红色,蓝色对蓝色。一目了然。
 
 
Apache密码验证

通过web方式访问ganglia不需要密码,所以我们通过apache设置密码达到安全目的。


htpasswd -c /etc/httpd/conf.d/passwords {your_name}



vi /etc/httpd/conf/httpd.conf
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

修改为:

<Directory />
    Options None
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Ganglia Access"
   AuthType Basic
   AuthUserFile /etc/httpd/conf.d/passwords
   Require valid-user
</Directory>
 
添加账户:
#htpasswd -b /etc/httpd/conf.d/passwords ganglia ganglia
分享到:
评论

相关推荐

    服务器监控软件ganglia安装包及其安装文档

    Ganglia是一款开源的分布式监控系统,用于集群和网格环境,可以实时监控网络中的各种性能数据,包括CPU使用率、内存使用情况、网络流量、磁盘I/O等。这款工具因其轻量级的设计和强大的数据聚合能力而在IT行业中受到...

    Ganglia监控安装手册

    总结,Ganglia监控系统的安装是一个涉及多个步骤的过程,需要对系统环境、依赖软件、配置文件有深入理解。通过正确的安装和配置,Ganglia能够有效地帮助我们监控和管理分布式环境的性能,为故障排查和性能优化提供...

    Lustre性能监控软件LustrePerfMon用户手册

    这款系统基于多种开源监控软件,如collectd,同时支持Filedata、Ganglia、Nagios、Stress和Zabbix等插件,以实现更广泛的监控和扩展功能。 1. **Collectd插件** Collectd是LustrePerfMon的核心组件,它作为一个...

    Zabbix分布式监控配置使用手册v3.docx

    Zabbix分布式监控配置使用手册v3 Zabbix是企业级的开源分布式监控解决方案,能够监视...可以借助开源监控软件例如Zabbix、Cacti、Nagios、Ganglia等来实现对网站的7x24小时的监控,并且做到有故障及时报警通知SA解决。

    大数据集群:ClouderaCDH安装手册中文版pdf高清版最新版本

    同时,社区版Hadoop缺乏集成的运行监控和运维工具,通常需要结合ganglia、nagios等工具来实现运行监控,导致运维成本较高。 相比之下,Cloudera的CDH版本是目前最成熟的发行版之一,拥有众多部署案例。CDH提供了...

    java doc v1.0

    8. **Ganglia监控手册-1.docx**:与上述Ganglia手册相辅相成,可能包含其他监控方面的内容。 9. **datax产品管理手册模板.docx**:可能是DataX产品的管理模板,用于指导团队如何管理和维护DataX项目,包括版本控制...

    大数据集群部署手册(最新最全)

    手册会讲解如何集成Zabbix、Ganglia等监控工具,实时监控集群的CPU、内存、磁盘和网络状态,以及如何配置日志聚合工具如Flume和Logstash,收集并分析集群的日志信息,以便于快速定位和解决问题。 安全性是大数据...

    Linux管理员手册.rar

    系统资源监控工具如Ganglia、Nagios、Prometheus可远程监控多台服务器。 八、安全与审计 Linux的安全措施包括SELinux(强制访问控制)、AppArmor、防火墙等。SSH(安全外壳协议)提供加密的远程登录。审计系统记录...

    Hadoop 0.20.1 配置手册-高清pdf文字版

    7. **集群监控与日志管理**:了解如何配置和使用Hadoop自带的监控工具,如Nagios、Ganglia,以及日志聚合工具Flume和Scribe,以便于监控集群状态和调试问题。 8. **故障排查**:提供常见问题及解决方案,帮助用户...

    hadoop2.6集群搭建手册

    8. **监控和维护**:安装和配置监控工具,如Ganglia或Ambari,以便实时查看集群性能和健康状况。定期检查日志,确保所有服务运行正常。 集群搭建完成后,开发者和数据分析师可以利用Hadoop处理PB级别的数据,进行...

    EasyHadoop实战手册 大数据时代 ha

    Hadoop作为一款开源软件框架,被广泛应用于大规模数据处理之中。而EasyHadoop则是在Hadoop基础上进行优化与封装的工具集,旨在简化大数据处理流程,降低学习和使用的门槛。 EasyHadoop通过集成一系列实用功能模块,...

    Tesla GPU集群服务器使用手册

    - 集群监控系统: Ganglia。 **1.4 文件系统** - 所有计算节点(除console外)通过NFS挂载console的/export目录,所有节点的/home目录指向/export/home。由于文件系统性能有限,建议避免运行大规模并行或复杂I/O的...

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    4. **监控与调优**:使用HBase自带的监控工具或第三方工具(如Ganglia、Prometheus)监控系统性能,根据监控结果调整参数。 5. **数据压缩**:启用数据压缩可以减少存储空间,同时降低网络传输量,提高性能。HBase...

    hadoop培训资料

    1. **Hadoop基础**:Hadoop是Apache软件基金会开发的一个开源框架,主要用于存储和处理大规模数据。它基于分布式计算模型,能够高效地处理PB级别的数据。Hadoop由两个主要部分组成:Hadoop Distributed File System ...

    linux 系统管理

    - **Ansible**: 无需在目标机器上安装任何软件即可进行自动化部署。 - **Puppet**: 通过定义基础设施即代码的方式进行配置管理。 - **Chef**: 另一种流行的配置管理工具,支持多种环境。 - **容器化与虚拟化** ...

Global site tag (gtag.js) - Google Analytics