十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Ganglia详细使用方法请阅读Ganglia权威指南书籍。
下花园ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
http://www.51niux.com/?id=83
http://www.51niux.com/?id=84
http://www.51niux.com/?id=85
1、Ganglia简介
ganglia介绍:
ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据。然后汇总到gmetad守护进程下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现。
ganglia自带了很多监控项,详细的比较详细,等后面搭建成功后,可以从截图中看出。ganglia相关的PDF书和资料还是较少的。
Ganglia是一个集群监控工具,由UC Berkeley创建并开源。Ganglia的中文意思是神经中枢,现在支持多部分操作系统(包括linux、unix、windows),可支持2000个节点的网络监控(当然这不是上限,只是一个大集群使用的范例)。
基本结构
Ganglia底层使用RRDTool获得数据,Ganglia主要分为两个进程组件:
gmond(ganglia monitor deamon)
gmetad(ganglia metadata deamon)
其中,gmond运行在集群每个节点上,收集RRDTool产生的数据;gmetad运行在监控服务器上,收集每个gmond的数据。Ganglia还提供了一个PHP实现的web front end,一般使用Apache2作为其运行环境,通过Web Front可以看到直观的各种集群数据图表。
Ganglia的层次化结构做的非常好,由小到大可以分为node -> cluster -> grid,这三个层次。
一个node就是一个需要监控的节点,一般是个主机,用IP表示。每个node上运行一个gmond进程用来采集数据,并提交给gmetad。
一个cluster由多个node组成,就是一个集群,我们可以给集群定义名字。一个集群可以选一个node运行gmetad进程,汇总/拉取gmond提交的数据,并部署web front,将gmetad采集的数据用图表展示出来。
一个grid由多个cluster组成,是一个更高层面的概念,我们可以给grid定义名字。grid中可以定义一个顶级的gmetad进程,汇总/拉取多个gmond、子gmetad提交的数据,部署web front,将顶级gmetad采集的数据用图表展示出来。
显然,这种方式非常灵活,可以实现多种结构的数据监控。由下图,我们可以清晰的看出这种层次化的结构,和不同的部署方式。
Ganglia运行模式(单播与多播):
Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。
单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。
ganglia三大组件:
gmond:
gmond类似于传统监控系统中的代理,需要安装在每台主机上,负责和操作系统交互以获得需要关注的指标数据。
gmond再内部采用模块化设计,采用基于C语言编写、根据操作系统定制的插件进行监控。gmond为指标提供了大部分标准插件,而且可以增加更多的用C、C++或Python等语言编写的插件来支持新的指标。此外,内置的gmetric工具可以用来报告用任何语言编译的自定义指标数据。
gmond根据自身本地配置文件定义的调度方案进行轮询。监听数据时使用简单的监听/通告协议,通过XDR在集群内的主机之间共享。这些通告默认使用多播,而集群是由共享同一多播地址的主机所构成的。当然gmond也可以使用单播,将数据都汇聚到同一台中心节点。
因为每台gmond主机将指标数据多播到集群内的其他主机,每台gmond主机也记录了集群内其他主机的指标数据。远程轮询器通过默认的8649端口,向集群内任意节点请求获得该集群XML格式的所有数据。
如果服务器主机过多,因为只要轮询集群中任意节点就能获取所有集群内其他主机的性能指标数据,所以我们可以将众多的主机划分到不同的组里面,这样一来,收集数据的工作量将得到大大的减轻。
gmetad:
主要作用就是整合所有信息。
gmetad是一个简单的轮询器,对网络中每个集群进行轮询,并将每台主机上返回的所有指标数据写入各个集群对应的轮询数据库。轮询器对集群的“轮询”只需要打开一个用于读取的套接字,连接到目标gmond节点的8649端口即可,通过远程非常容易实现。
gmetad还有一些其他特性,如可以从其他的gmetad中轮询数据,gmetad通过tcp端口8651侦听远程gmetad连接,并且向授权主机提供XML格式的网格状态。从而构成一种联合层次结构。gmetad具有交互式查询功能,外部监控系统可以通过TCP 8652端口用简单文本协议进行轮询。gmetad也可以通过配置gmetad将指标数据转送到诸如Graphite外部系统发送数据。
gmetad默认将指标数据直接写入文件系统上的RRD文件,在有I/O限制的大型装置中,rrdcached充当gmetad和RRD文件之间的缓存。
gweb:
ganglia可视化工具。显示ganglia收集的主机各项指标。
gweb允许在图标中通过点击-拖拽改变时间周期,包含从不同文本格式(CSV,JSON等)中便捷提供数据的工具,显示完整、使用的URL接口,使用户可以通过预知的URL将感兴趣的图表嵌入其他程序。
gweb是一种PHP程序,因为需要与轮询器创建的RRD数据库交互,所以gweb通常安装在和gmetad相同的物理硬件上。
ganglia的官网:http://ganglia.info 下载链接:http://ganglia.info/?page_id=66
2、环境准备
设置或停止防火墙: [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# systemctl disable firewalld.service 关闭selinux: 临时关闭: [root@localhost ~]# setenforce 0 永久关闭(修改配置文件): [root@localhost ~]# vi /etc/selinux/config 改成SELINUX=disabled 卸载系统默认安装的Apache软件包: [root@localhost ~]# rpm -qa httpd* [root@localhost ~]# rpm -e --nodeps 包名 有多个httpd*,用脚本删除for name in `rpm -qa httpd*`;do rpm -e --nodeps $name;done 安装依赖包: [root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [root@localhost ~]# yum install wget lrzsz vim lynx lsof netstat-tools unzip -y 时区设置: [root@localhost ~]timedatectl [root@localhost ~]timedatectl list-timezones #该命令列出了所有的时区 [root@localhost ~]timedatectl set-timezone Asia/Shanghai #该命令把时区设置为上海 时间同步: [root@localhost ~]# ntpdate time.nist.gov #如果没有yum安装此命令 [root@localhost ~]# /usr/sbin/ntpdate time.nist.gov [root@localhost ~]# crontab -e */10**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
3、RPM方式安装Ganglia
3.1 服务端(192.168.146.128)的安装:
yum安装相关依赖包: [root@localhost system]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc gcc-c++ expat-devel python-devel libXrender-devel [root@localhost system]# yum install -y libart_lgpl-devel pcre-devel libtool [root@localhost system]# yum install -y rrdtool rrdtool-devel [root@localhost system]# systemctl restart gmond [root@localhost system]# systemctl restart gmetad [root@localhost system]# systemctl restart httpd [root@localhost system]# netstat -lntup 安装gmetad: [root@localhost system]# cd [root@localhost ~]# yum install libconfuse libconfuse-devel -y [root@localhost ~]# mkdir /tools && cd /tools/ [root@localhost ~]# wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@localhost ~]# tar zxf ganglia-3.7.2.tar.gz [root@localhost ganglia-3.7.2]# ls -l ganglia.spec #因为有这个ganglia.spec,所以说是支持rpm安装的 -rw-r--r--. 1 www-data www-data 23494 7月 2 2015 ganglia.spec [root@localhost ganglia-3.7.2]# rpmbuild -tb /tools/ganglia-3.7.2.tar.gz #-tb表示从tar包中build二进制文件 [root@localhost ganglia-3.7.2]# cd /root/rpmbuild/RPMS/x86_64/ [root@localhost x86_64]# ll 总用量 896 -rw-r--r--. 1 root root 486864 6月 3 11:29 ganglia-debuginfo-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 49596 6月 3 11:29 ganglia-devel-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 59088 6月 3 11:29 ganglia-gmetad-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 134956 6月 3 11:29 ganglia-gmond-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 128628 6月 3 11:29 ganglia-gmond-modules-python-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 45344 6月 3 11:29 libganglia-3.7.2-1.x86_64.rpm 把gmetad和gmond都安装了。 [root@localhost x86_64]# rpm -ivh /root/rpmbuild/RPMS/x86_64/* /etc/ganglia/ #为主配置文件目录 /var/lib/ganglia/rrds #为rrds图信息存储目录 [root@localhost x86_64]# rpm -ql ganglia-gmetad-3.7.2-1 #如:通过这个命令也可以看出,gmetad的rpm包相关的目录 /etc/ganglia/gmetad.conf /etc/init.d/gmetad /etc/sysconfig/gmetad /usr/sbin/gmetad /usr/share/man/man1/gmetad.1.gz /usr/share/man/man1/gmetad.py.1.gz /var/lib/ganglia /var/lib/ganglia/rrds 安装gweb: [root@localhost x86_64]# yum install httpd httpd-devel php -y [root@localhost x86_64]# yum -y install rsync [root@localhost x86_64]# cd /tools/ [root@localhost tools]# wget https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz [root@localhost tools]# tar zxvf /tools/ganglia-web-3.7.2.tar.gz -C /var/www/html/ [root@localhost tools]# cd /var/www/html/ [root@localhost html]# mv ganglia-web-3.7.2 ganglia [root@localhost html]# cd /var/www/html/ganglia/ [root@localhost ganglia]# useradd -M -s /sbin/nologin www-data [root@localhost ganglia]# make install #执行这步,会创建相关的目录 [root@localhost ganglia]# systemctl restart gmond [root@localhost ganglia]# systemctl restart gmetad [root@localhost ganglia]# systemctl restart httpd gmond默认端口8649。 gmetad默认端口8651、9652。 gmond默认组播方式。 [root@localhost system]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN 14244/gmond tcp 0 0 0.0.0.0:8651 0.0.0.0:* LISTEN 14257/gmetad tcp 0 0 0.0.0.0:8652 0.0.0.0:* LISTEN 14257/gmetad tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1430/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1734/master tcp6 0 0 :::80 :::* LISTEN 14274/httpd tcp6 0 0 :::22 :::* LISTEN 1430/sshd tcp6 0 0 ::1:25 :::* LISTEN 1734/master udp 0 0 239.2.11.71:8649 0.0.0.0:* 14244/gmond udp 0 0 0.0.0.0:49704 0.0.0.0:* 1240/dhclient udp 0 0 0.0.0.0:68 0.0.0.0:* 1240/dhclient udp6 0 0 :::28458 :::* 1240/dhclient
3.2 gmond客户端(192.168.146.134)安装:
[root@localhost system]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc gcc-c++ expat-devel python-devel libXrender-devel [root@localhost system]# yum install libconfuse libconfuse-devel -y 需要下面四个rpm包:发送到其他客户端上面,rpm -ivh *一下就好 ganglia-devel-3.7.2-1.x86_64.rpm ganglia-gmond-3.7.2-1.x86_64.rpm ganglia-gmond-modules-python-3.7.2-1.x86_64.rpm libganglia-3.7.2-1.x86_64.rpm #启动gmond服务便可,因为默认配置就是一个组播组,组播地址和端口都是统一的。 [root@localhost system]# systemctl restart gmond 备注:服务端应该要改一个配置文件,说明到哪个gmond去获取数据。
web访问:
http://192.168.146.128/ganglia/
解决办法:
[root@localhost system]# ln -s /var/lib/ganglia /var/lib/ganglia-web [root@localhost system]# mkdir -p /var/lib/ganglia-web/dwoo/{compiled,cache} -p [root@localhost system]# chown -R apache:apache /var/lib/ganglia 备注:如果ganglib和ganglia-web原本就存在,那直接对ganglia-web赋予权限。
备注一:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused 查看message日志: localhost /usr/sbin/gmetad[14747]: RRD_create: creating '/var/lib/ganglia/rrds/__SummaryInfo__/diskstat_vda_writes.rrd': Permission denied localhost /usr/sbin/gmetad[14747]: Unable to write meta data for metric diskstat_vda_writes to RRD 解决办法: # /etc/init.d/gmetad status #查看状态gmetad是死状态 gmetad 已死,但是 subsys 被锁 # chown nobody:nobody /var/lib/ganglia/rrds -R # /etc/init.d/gmetad restart
备注二:
注意: Centos7的系列,用这种rpm安装的方式是会报错的: # rpm -ivh *.rpm 错误:依赖检测失败: libpcre.so.0()(64bit) 被 ganglia-gmond-3.7.2-1.x86_64 需要 libpcre.so.0()(64bit) 被 ganglia-gmond-modules-python-3.7.2-1.x86_64 需要 libpython2.6.so.1.0()(64bit) 被 ganglia-gmond-modules-python-3.7.2-1.x86_64 需要 libpcre.so.0()(64bit) 被 libganglia-3.7.2-1.x86_64 需要 原因: 从上图中可以看出,要找对应的库文件没有,如libpython2.6.so.1.0,这是Centos6版本里面才有的,Centos7默认是libpython2.7。 而我们下载的ganglia也是最新版了,所以系统如果有Centos7的版本了,就不能用这种rpm包省事的方法安装了。就要换成编译安装的形式了,而我们线上一般也是采取编译安装的形式,因为编译安装可以指定对应的目录和参数。
备注三:
服务器启动,节点也加载了你会发现只有主机图,但是主机图里面没有曲线数值:图的下方提示:No matching metrics detected 第一:安装步骤是否正确,是否缺少相关的目录 第二:查看message日志,是否目录权限错误,尤其是/var/lib/ganglia/rrds/是否有权限报警。 第三:被监控的节点是不是开了防火墙之类的操作。 就以192.168.1.103举例(Centos7的firewalld没有关闭):下面是关闭防火墙服务后的效果图
4、编译方式安装Ganglia(推荐)
4.1 服务器端(192.168.146.128)的操作:
安装gmetad [root@localhost ~]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc gcc-c++ expat-devel python-devel libXrender-devel [root@localhost ~]# yum install -y libart_lgpl-devel pcre-devel libtool [root@localhost ~]# yum install -y rrdtool rrdtool-devel [root@localhost ~]# mkdir /tools [root@localhost ~]# cd /tools/ [root@localhost ~]# wget http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz [root@localhost ~]# tar zxvf confuse-2.7.tar.gz [root@localhost ~]# cd confuse-2.7 [root@localhost ~]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64 [root@localhost ~]# make && make install [root@localhost ~]# cd /tools/ [root@localhost ~]# wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@localhost ~]# tar zxf ganglia-3.7.2.tar.gz [root@localhost ~]# cd ganglia-3.7.2 [root@localhost ~]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-gmetad --with-libconfuse=/usr/local/ganglia-tools/confuse #enable-gexec是gmond节点 [root@localhost ~]# make && make install [root@localhost ~]# cp gmetad/gmetad.init /etc/init.d/gmetad [root@localhost ~]# ln -s /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad 安装gweb [root@localhost x86_64]# yum install httpd httpd-devel php -y [root@localhost x86_64]# yum -y install rsync [root@localhost x86_64]# cd /tools/ [root@localhost tools]# wget https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz [root@localhost tools]# tar zxvf /tools/ganglia-web-3.7.2.tar.gz -C /var/www/html/ [root@localhost tools]# cd /var/www/html/ [root@localhost html]# mv ganglia-web-3.7.2 ganglia [root@localhost html]# cd /var/www/html/ganglia/ [root@localhost ganglia]# useradd -M -s /sbin/nologin www-data [root@localhost ganglia]# make install #执行这步,会创建相关的目录 [root@localhost ganglia]# chown apache:apache -R /var/lib/ganglia-web/ 修改配置 修改启动脚本 [root@localhost ganglia]# vi /etc/init.d/gmetad GMETAD=/usr/sbin/gmetad #这句话可以自行更改gmetad的命令,当然也能向我们前面做了软连接 start() { [ -f /usr/local/ganglia/etc/gmetad.conf ] || exit 6 #这里将配置文件改成现在的位置,不然启动没反应 创建rrds目录 [root@localhost ganglia]# mkdir /var/lib/ganglia/rrds -p [root@localhost ganglia]# chown -R nobody:nobody /var/lib/ganglia/rrds 修改gmetad配置文件 因为我们这里就先让它当一个单纯的gweb节点和gmetad节点,不给其启动gmond服务,假设它没有再哪个多播集群里。 [root@localhost ganglia]# vi /usr/local/ganglia/etc/gmetad.conf data_source "my cluster" 192.168.146.134:8649 #这也是我们以后经常修改的地方,""里面是组名称 后面是去哪个IP的那个端口去采集gmond数据 启动服务 [root@localhost ganglia]# mkdir -p /usr/local/ganglia/var/run [root@localhost ganglia]# /etc/init.d/gmetad restart [root@localhost ganglia]# systemctl restart httpd [root@localhost tools]# netstat -luntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8651 0.0.0.0:* LISTEN 16547/gmetad tcp 0 0 0.0.0.0:8652 0.0.0.0:* LISTEN 16547/gmetad tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1433/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1741/master tcp6 0 0 :::80 :::* LISTEN 16344/httpd tcp6 0 0 :::22 :::* LISTEN 1433/sshd tcp6 0 0 ::1:25 :::* LISTEN 1741/master udp 0 0 0.0.0.0:47154 0.0.0.0:* 1242/dhclient udp 0 0 0.0.0.0:68 0.0.0.0:* 1242/dhclient udp6 0 0 :::2514 :::* 1242/dhclient
4.2 客户端(192.168.146.134)的操作:
[root@localhost ~]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc gcc-c++ expat-devel python-devel libXrender-devel [root@localhost ~]# yum install -y libart_lgpl-devel pcre-devel libtool [root@localhost ~]# mkdir /tools [root@localhost ~]# cd /tools/ [root@localhost tools]# wget http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz [root@localhost tools]# tar zxvf confuse-2.7.tar.gz [root@localhost tools]# cd confuse-2.7 [root@localhost confuse-2.7]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64 [root@localhost confuse-2.7]# make && make install [root@localhost confuse-2.7]# cd /tools/ [root@localhost tools]# wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@localhost tools]# tar zxvf ganglia-3.7.2.tar.gz [root@localhost tools]# cd ganglia-3.7.2 [root@localhost ganglia-3.7.2]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-libconfuse=/usr/local/ganglia-tools/confuse #enable-gexec是gmond节点 [root@localhost ganglia-3.7.2]# make && make install [root@localhost ganglia-3.7.2]# /usr/local/ganglia/sbin/gmond -t >/usr/local/ganglia/etc/gmond.conf #生成gmond配置文件 [root@localhost ganglia-3.7.2]# cp /tools/ganglia-3.7.2/gmond/gmond.init /etc/init.d/gmond [root@localhost ganglia-3.7.2]# mkdir -p /usr/local/ganglia/var/run [root@localhost ganglia-3.7.2]# /etc/init.d/gmond restart [root@localhost ganglia-3.7.2]# netstat -luntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1056/php-fpm: maste tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN 15476/gmond tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 1061/sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1061/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1683/master tcp6 0 0 :::50088 :::* LISTEN 1375/httpd tcp6 0 0 :::3306 :::* LISTEN 1410/MySQLd tcp6 0 0 :::2222 :::* LISTEN 1061/sshd tcp6 0 0 :::22 :::* LISTEN 1061/sshd tcp6 0 0 ::1:25 :::* LISTEN 1683/master tcp6 0 0 :::50080 :::* LISTEN 1375/httpd udp 0 0 0.0.0.0:50614 0.0.0.0:* 855/dhclient udp 0 0 239.2.11.71:8649 0.0.0.0:* 15476/gmond udp 0 0 0.0.0.0:68 0.0.0.0:* 855/dhclient udp6 0 0 :::6727 :::* 855/dhclient
web访问
http://192.168.146.128/ganglia/
注:
测试结果是OK的,这里就截图了。线上环境,我们一般会创建一个监控用于,专门用来存放相关的监控程序,所以你看我的编译过程都指定了安装位置,但是一般不会放到/usr/local下面,会都指向安装到我们的监控用户或者监控目录下面。另外客户端有一个编译安装成功了,可以直接把生成的目录发送到其他的客户端上面,一样也可以使用的,不需要每台机器都进行一次编译过程。当然yum安装软件包组还是需要的。
5、Ganglia目录及配置文件详解
5.1 gmond节点的目录结构
[root@localhost ganglia]# tree -L 3 . ├── bin │ ├── ganglia-config │ ├── gmetric │ └── gstat ├── etc │ ├── conf.d │ │ └── modpython.conf │ └── gmetad.conf ├── include │ ├── ganglia_gexec.h │ ├── ganglia.h │ ├── gm_file.h │ ├── gm_metric.h │ ├── gm_mmn.h │ ├── gm_msg.h │ ├── gm_protocol.h │ └── gm_value.h ├── lib64 │ ├── ganglia │ │ ├── modcpu.so │ │ ├── moddisk.so │ │ ├── modgstatus.so │ │ ├── modload.so │ │ ├── modmem.so │ │ ├── modmulticpu.so │ │ ├── modnet.so │ │ ├── modproc.so │ │ ├── modpython.so │ │ └── modsys.so │ ├── libganglia.a │ ├── libganglia.la │ ├── libganglia.so -> libganglia.so.0.0.0 │ ├── libganglia.so.0 -> libganglia.so.0.0.0 │ └── libganglia.so.0.0.0 ├── sbin │ ├── gmetad │ └── gmond ├── share │ └── man │ ├── man1 │ └── man5 └── var └── run └── gmetad.pid 13 directories, 31 files
5.2 gmond配置文件详解
[root@localhost ganglia]# /usr/local/ganglia/sbin/gmond -t #查看gmond的默认配置 配置文件由{}括起来的几个section组成。section名和属性不区分大小写。 globals { #section:globals. globals在配置中只出现一次。 daemonize = yes #当值为true(yes|true|on)时,gmond将在后台分散运行。设置为false由守护进程管理器运行gmond。 setuid = yes #这是gmond将user属性指定的特定用户的UID作为有效UID;值为false时,gmond将不会改变其有效用户。 user = nobody #用户名 debug_level = 0 #值为0,gmond正常运行,大于0,gmond前台运行并输出调试信息。debug_level值越大,输出越详细。 max_udp_msg_len = 1472 #gmond发送包所能包含的最大长度。一般不改变此值。 mute = no #设置为no,gmond就是可以发送数据。设置为yes,就是单收,但是仍然会相应诸如gmetad的外部轮询器。 deaf = no #当值为true时,gmond将不能接收数据。设置no就是可以接收数据。 allow_extra_data = yes #当值为false时,gmond将不会发送XML的EXTRA_ELEMENT和EXTRA_DATA部分。这是是发送。 host_dmax = 86400 #设置为0,gmond不会从队列中删除不在报告的主机。这里的意思是在86400秒内,接收不到某台主机的数据,gmond将删除。 host_tmax = 20 #当gmond等到20秒*4的时间内,接收不到某台主机的任何消息,gmond就认为该主机已经崩溃。 cleanup_threshold = 300 #gmond清除过期数据的最小时间间隔为300秒。 gexec = no #当值为true时,gmond将允许主机运行gexec任务。这种方式需要允许gexecd并安装合适的验证码。 send_metadata_interval = 0 #这是设置gmond两次发送元数据包的时间间隔。单位是秒。默认设置为0,表示gmond只有在启动和收集到其他远程允许的gmond节点请求时才会发送元数据包。但是如果单播环境下必须设置重发间隔。 # override_hostname = "mywebserver.domain.com"” #这里是gweb界面要显示的名称,可以是IP或者字符串,默认是注释状态。默认情况下,gmond在显示主机名时将使用反向DNS解析。 }