Ganglia是UC Berkeley发起的一个开源集群监视项目。它主要是用来监控系统性能,如:CPU 、Memory、硬盘利用率, I/O负载、网络流量情况等。Ganglia通过图形化的方式展示每个节点的状态信息,这对合理调整、分配系统资源,提高系统整体性能起到重要作用。Ganglia包含三个核心组件:Ganglia Monitoring Daemon(gmond)、Ganglia Meta Daemon(gmetad)以及Ganglia PHP Web Frontend。
Gmond组件
Gmond组件部署于集群中各个被监控的节点。其主要功能是从操作系统或指定的主机收集状态信息。其收集主机状态信息的方式灵活,状态信息均以XML格式进行传输。Gmond组件可以级联形成层次结构,这种层次结构使得Ganglia拥有良好的可扩展性。另外,Gmond组件带来的系统负载非常少,对用户的影响非常小。Gmond组件的工作模式有两种:单播和多播。单播模式下,Gmond组件发送其收集的主机状态信息到指定的一个或多个节点,可以跨网段;多播模式下,Gmond组件发送其监控的主机状态信息到同一网段内的所有节点,同时还接收同一网段内其他节点发送的状态信息。
Gmetad组件
Gmetad组件可以部署于集群中的某一节点,也可以部署于集群外的某一专门服务器,其主要功能是周期性地从指定的Gmond组件或其他Gmetad组件拉取数据,并将拉取的数据存储在本地数据库。这些存储的状态信息供Ganglia-Web组件使用。
Ganglia-Web组件
Ganlgia-Web组件和Gmetad组件须部署于同一节点,它通过数据库轮询的方式从Gmetad组件中获取状态信息,并以web形式图形化地展示各个节点的状态信息。
二、CentOS下搭建Ganglia分布式监控系统
- Ganglia依赖于以下系统软件包,请先检查这些软件包是否正确安装。所缺软件包建议通过YUM源方式安装。安装这些包,需要CentOS-Base.repo。后续安装步骤中可能用到源epel.repo
yum install apr-develapr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-develdbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devellibXrender-devel
- 安装confuse
通过RPM包方式安装
ftp://rpmfind.net/linux/dag/redhat/el5/en/x86_64/dag/RPMS/
rpm --ivhlibconfuse-2.6-2.el5.rf.x86_64.rpm
rpm --ivhlibconfuse-devel-2.6-2.el5.rf.x86_64.rpm
通过源码编译方式安装
http://download-mirror.savannah.gnu.org/releases/confuse/
tar zxvf confuse-2.7.tar.gz
./confuse-2.7/configure CFLAGS=-fPIC --disable-nls
./confuse-2.7/make&& make install
- 安装RRDTool(Ganglia依赖于RRDTool数据库轮询工具来更新Ganglia-Web页面)
通过YUM源方式安装
yum install rrdtool
- 安装Apache+PHP(仅gmetad组件和ganglia-web组件所在节点须配置此项)
yum -y install php php-gd php-xml php-bcmath php-mbstring php-mysql apr
2、安装Ganglia
安装前请先检查/usr/include/rrd.h和/usr/lib/librrd.a文件是否存在。如不存在,可分别创建指向这两个文件的软链接