文章目录
一、Ganglia简介
1. 主要部件
Server - Ganglia meta daemon(gmetad):
负责收集各个cluster的数据,并更新到RRD数据库中
Client - ganglia monitoring daemon(gmond):
收集本机的监控数据,发送到其他服务器上,收集其他服务器的监控数据,供gmetad读取。
Webpage - ganglia web Frontend:
一个基于web的监控界面,需要和gmetad安装在同一个节点上,从gmetad取数据,并且读取RRD数据库,生成图片显示。
2. Ganglia工作机制
Ganglia收集数据可以工作在单播或多播模式下,默认为多播模式
单播:发送自己收集到的监控数据到特定的一台或几台服务器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段所有的服务器上,同时收集同一网段的所有服务器发送过来的监控数据。因为是以广播包的形式发送,因此需要在同一网段内,但同一网段内,又可以定义不同的发送通道。
注:图片来源网络
3. RRD:Round Robin Database Tool
所谓的“Round Robin” 其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。
二、初始安装
1. 下载源代码
下载最新版本的Ganglia
Ganglia: http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/
Ganglia-web: https://sourceforge.net/projects/ganglia/files/ganglia-web/
RRDTool: http://oss.oetiker.ch/rrdtool/pub/?M=D
2. 准备工作
使用root安装如下安装包
#Ganglia
yum install apr-util-devel
yum install pcre-devel
#RRDTool
yum install glib2-devel
yum install libxml2-devel
yum install cairo-devel
yum install pango-devel
yum install python-devel
3. 编译源码
Ganglia
tar -xvzf ganglia-3.5.0
cd ganglia-3.5.0
./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc/ganglia --with-gmetad --with-pic --enable-status
make
Ganglia-web
tar -xvzf ganglia-web-3.5.7.tar.gz
cd ganglia-web-3.5.7
make
RRDTool,生成用户和用户组
groupadd -r rrdcached -g 497
useradd -r rrdcached -u 497 -g 497 -s /sbin/nologin -d /var/rrdtool/rrdcached
编译rrdtool
tar -xvzf rrdtool-1.4.7.tar.gz
cd rrdtool-1.4.7
./configure --prefix=/usr --libdir=/usr/lib64 --with-pic
make
4. 安装Ganglia
Ganglia
tar -xvzf ganglia-3.5.0
cd ganglia-3.5.0
make install
cp gmond/gmond.init /etc/init.d/gmond
chkconfig --add gmond
cp gmetad/gmetad.init /etc/init.d/gmetad
chkconfig --add gmetad
Ganglia-web
cd ganglia-web-3.5.7
make install
RRDTool
cd rrdtool-1.4.7
make install
5. 定制Ganglia(共享配置文件)
rrdcached,编辑 /etc/sysconfig/rrdcached
文件
#Settings for rrdcached
#OPTIONS="-l unix:/var/rrdtool/rrdcached/rrdcached.sock -s rrdcached -m 664 -b /var/rrdtool/rrdcached"
OPTIONS="-m 0777 -l unix:/var/run/rrdcached/rrdcached.sock -z 300 -b /share/hpc/ganglia/rrds -B"
RRDC_USER=rrdcached
RUN_RRDCACHED=1
创建路径
mkdir /var/run/rrdcached
chown rrdcached:rrdcached /var/run/rrdcached
在管理节点上,创建软连接
ln -s /share/hpc/ganglia/python_modules /usr/lib64/ganglia/python_modules
ln -s /share/hpc/ganglia /var/lib/ganglia
mkdir /etc/ganglia
ln -s /share/hpc/ganglia/etc/conf.d /etc/ganglia/
ln -s /share/hpc/ganglia/etc/gmetad.conf /etc/ganglia/
ln -s /share/hpc/ganglia/etc/conf.d/gmond.conf.mgmt /etc/ganglia/gmond.conf
ln -s /var/www/html/ganglia /var/lib/ganglia-web
编辑 /etc/sysconfig/gmetad
文件
# For rrdcached, uncomment this line. gmetad requires use of a
# privileged rrdcached socket, created with the -l option to rrdcached.
RRDCACHED_ADDRESS="unix:/var/run/rrdcached/rrdcached.sock"
OPTIONS=" --conf=/share/hpc/ganglia/etc/gmetad.conf"
在计算节点(被监控节点)上,创建软连接
ln -s /share/hpc/ganglia/etc/conf.d /etc/ganglia/
ln -s /share/hpc/ganglia/etc/conf.d/gmond.conf.rb /etc/ganglia/gmond.conf
ln -s /share/hpc/ganglia/python_modules /usr/lib64/ganglia/
初始安装之后,网上还有大量的Ganglia监控插件(脚本),可以按需配置在gmond和gmetad中。