Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点,Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量状况等,经过曲线很容易见到每一个节点的工做状态,对合理调整、分配系统资源,提升系统总体性能起到重要做用
工做原理
gmetad能够部署在集群内任一台节点或者经过网络链接到集群的独立主机,它经过单播路由的方式与gmond通讯,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中,由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端,gmond带来的系统负载很是少,这使得它成为在集群中各台机器中只运行一段代码,并不会影响用户性能,可是当大量小消息同时出现时,会发生网络 “抖动”影响节点性能,能够经过使节点时钟保持一致,来避免这个问题php
准备三台Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux,修改IP地址和hostname映射html
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
安装基础包node
[root@monitor ~]# yum install wget lrzsz vim lynx lsof unzip -y [root@node ~]# yum install wget lrzsz vim lynx lsof unzip -y
安装依赖python
[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
部署基础服务linux
[root@monitor ~]# yum install httpd httpd-devel php rsync -y
安装confusec++
[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
安装gangliaweb
[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
修改配置文件shell
[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
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