简介

Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点,Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用
工作原理
gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中,由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端,gmond带来的系统负载非常少,这使得它成为在集群中各台机器中只运行一段代码,并不会影响用户性能,但是当大量小消息同时出现时,会发生网络 “抖动”影响节点性能,可以通过使节点时钟保持一致,来避免这个问题

前期准备

准备三台Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux,修改IP地址和hostname映射

ip hostname
192.168.29.147 monitor
192.168.29.134 node

从官网下载confuse-2.7.tar.gz、ganglia-3.7.2.tar.gz、ganglia-web-3.7.2.tar.gz源码包
安装epel源

[root@monitor ~]# yum install epel-release -y

[root@node ~]# yum install epel-release -y

安装基础包

[root@monitor ~]# yum install wget lrzsz vim lynx lsof unzip -y

[root@node ~]# yum install wget lrzsz vim lynx lsof unzip -y

安装依赖

[root@monitor ~]# 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 libart_lgpl-devel pcre-devel libtool rrdtool rrdtool-devel

[root@node ~]# 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 libart_lgpl-devel pcre-devel libtool rrdtool rrdtool-devel

部署基础服务

[root@monitor ~]# yum install httpd httpd-devel php rsync -y

部署ganglia监控本机

安装confuse

[root@monitor ~]# tar -zvxf confuse-2.7.tar.gz 
[root@monitor ~]# cd confuse-2.7
[root@monitor ~]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls  --libdir=/usr/local/ganglia-tools/confuse/lib64
[root@monitor ~]# make && make install

安装ganglia

[root@monitor ~]# tar zxf ganglia-3.7.2.tar.gz 
[root@monitor ~]# cd ganglia-3.7.2
[root@monitor ~]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-gmetad --with-libconfuse=/usr/local/ganglia-tools/confuse
[root@monitor ~]# make && make install
[root@monitor ~]# mkdir -p /usr/local/ganglia/var/run

修改配置文件

[root@monitor ~]# vi /usr/local/ganglia/etc/gmetad.conf 
data_source "my cluster" 192.168.29.147:8649

安装可视化界面

[root@monitor ~]# tar -zxvf ganglia-web-3.7.2.tar.gz  
[root@monitor ~]# mv ganglia-web-3.7.2 /var/www/html/ganglia
[root@monitor ~]# cd /var/www/html/ganglia/
[root@monitor ~]# useradd -M -s /sbin/nologin www-data
[root@monitor ~]# make install
[root@monitor ~]# chown apache:apache -R /var/lib/ganglia-web/
[root@monitor ~]# mkdir /var/lib/ganglia/rrds -p
[root@monitor ~]# chown -R nobody:nobody /var/lib/ganglia/rrds

启动服务

[root@monitor ~]# systemctl start httpd.service 
[root@monitor ~]# systemctl start gmetad.service
[root@monitor ~]# systemctl start gmond.service

[root@monitor ~]# netstat -tnlp |grep gmetad
tcp        0      0 0.0.0.0:8651            0.0.0.0:*               LISTEN      16874/gmetad        
tcp        0      0 0.0.0.0:8652            0.0.0.0:*               LISTEN      16874/gmetad        
[root@monitor ~]# netstat -tnlp |grep gmond
tcp        0      0 0.0.0.0:8649            0.0.0.0:*               LISTEN      17217/gmond        

访问http://192.168.29.147/ganglia
Centos7部署ganglia监控_第1张图片

部署监控node

node结点安装confuse

[root@node ~]# tar -zxvf confuse-2.7.tar.gz 
[root@node ~]# cd confuse-2.7/
[root@node ~]# ./configure  --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64
[root@node ~]# make && make install

node结点安装ganglia

[root@node ~]# tar -zxvf ganglia-3.7.2.tar.gz
[root@node ~]# cd ganglia-3.7.2/
[root@node ~]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status  --with-libconfuse=/usr/local/ganglia-tools/confuse
[root@node ~]# make && make install
[root@node ~]# mkdir -p /usr/local/ganglia/var/run

#启动服务
[root@node ~]#systemctl start gmond.service
[root@node ~]# netstat -tnlp |grep 8649
tcp        0      0 0.0.0.0:8649            0.0.0.0:*               LISTEN      14797/gmond     

修改monitor配置文件

[root@monitor ~]# vi /usr/local/ganglia/etc/gmetad.conf 
data_source "my cluster" 192.168.29.147:8649 192.168.29.134:8649

重启服务

[root@monitor ~]# systemctl restart gmetad.service 

访问http://192.168.29.147/ganglia
Centos7部署ganglia监控_第2张图片
Centos7部署ganglia监控_第3张图片

Centos7部署ganglia监控_第4张图片
Centos7部署ganglia监控_第5张图片