一、Ganglia简介:

Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率、 I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

二、Ganglia进程介绍:

每台计算机都运行一个收集和发送度量数据的名为 gmond 的守护进程。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。所有这些数据多次收集会影响节点性能。网络中的 “抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致,来避免这个问题。 gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。 由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。

三、Ganglia的部署:

3.1、安装apache

[root@localhost app]# tar zxvf httpd-2.2.23.tar.gz
[root@localhost app]# cd httpd-2.2.23
[root@localhost httpd-2.2.23]# ./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
[root@localhost httpd-2.2.23]# make && make install
----将httpd添加到服务当中去:
[root@localhost httpd-2.2.23]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.2.23]# chkconfig --add httpd
service httpd does not support chkconfig
这里说的是httpd服务不支持chkconfig , 添加支持: vi /etc/init.d/httpd
在 #!/bin/sh 下添加这两句:
#chkconfig:345 85 15
#description:Start and stop the Apache HTTP Server
[root@localhost httpd-2.2.23]# vi /etc/init.d/httpd
[root@localhost httpd-2.2.23]# chkconfig --add httpd
[root@localhost httpd-2.2.23]# service httpd restart
httpd not running, trying to start
[root@localhost httpd-2.2.23]# ps -ef |grep httpd |grep -v grep
root 18196 1 0 15:15 ? 00:00:00 /usr/local/apache2/bin/httpd -k restart
daemon 18197 18196 0 15:15 ? 00:00:00 /usr/local/apache2/bin/httpd -k restart
daemon 18198 18196 0 15:15 ? 00:00:00 /usr/local/apache2/bin/httpd -k restart
daemon 18199 18196 0 15:15 ? 00:00:00 /usr/local/apache2/bin/httpd -k restart
daemon 18200 18196 0 15:15 ? 00:00:00 /usr/local/apache2/bin/httpd -k restart
daemon 18201 18196 0 15:15 ? 00:00:00 /usr/local/apache2/bin/httpd -k restart

3.2、安装php

[root@localhost app]# tar zxvf php-5.4.10.tar.gz
[root@localhost app]# cd php-5.4.10
[root@localhost php-5.4.10]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
[root@localhost php-5.4.10]# make && make install

修改apache对php的参数:

####vi /etc/httpd/httpd.conf
/usr/local/apache2/conf/httpd.conf
----将User和Group修改为你指定的用户
User nobody
Group nobody
----在index.html后面添加index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
----在最后添加下面三行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PidFile "/var/run/httpd.pid"

测试php配置是否成功:

######vi /usr/local/apache2/htdocs/index.php,添加:
<?
phpinfo();
?> #######重启启动apache
[root@localhost php-5.4.10]# service httpd restart

3.3、安装依赖包:

[root@localhost php-5.4.10]# rpm -qa apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel
freetype-devel-2.2.1-21.el5_3
gcc-c++-4.1.2-46.el5
libxml2-devel-2.6.26-2.1.2.8
glib2-devel-2.12.3-4.el5_3.1
python-devel-2.4.3-27.el5
fontconfig-devel-2.4.1-7.el5
cairo-devel-1.2.4-5.el5
pango-devel-1.14.9-6.el5
rpm-build-4.4.2.3-18.el5
apr-util-1.2.7-7.el5_3.2
libXrender-devel-0.9.1-3.1
dbus-devel-1.1.2-12.el5
####安装apr_develhe expat
[root@localhost app]# tar -zxvf expat-2.0.1.tar.gz
[root@localhost expat-2.0.1]# ./configure
[root@localhost expat-2.0.1]# make && make install
[root@localhost app]# rpm -ivh apr-devel-1.2.7-11.el5_3.1.i386.rpm
warning: apr-devel-1.2.7-11.el5_3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:apr-devel ########################################### [100%]

3.4、安装libconfuse

[root@localhost app]# tar -zxvf confuse-2.7.tar.gz
[root@localhost confuse-2.7]# ./configure CFLAGS=-fPIC --disable-nls
[root@localhost confuse-2.7]# make && make install
####调整lib库的位置
vi /etc/ld.so.conf.d/libconfuse.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v

3.5、安装pcre

[root@localhost app]# tar zxvf pcre-8.12.tar.gz
[root@localhost app]# cd pcre-8.12
[root@localhost pcre-8.12]# ./configure && make && make install
####调整lib库的位置
vi /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v

3.6、安装RRDTool

[root@localhost app]# tar zxvf rrdtool-1.4.8.tar.gz
[root@localhost app]# cd rrdtool-1.4.8
[root@localhost rrdtool-1.4.8]# ./configure --prefix=/usr/local
[root@localhost rrdtool-1.4.8]# make && make install
####调整lib库的位置
vi /etc/ld.so.conf.d/librrd.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v

3.7、安装ganglia

[root@localhost app]# tar zxvf ganglia-3.1.7.tar.gz
[root@localhost app]# ./configure --prefix=/usr/local/ganglia --with-gmetad --with-librrd=/usr/local/lib --sysconfdir=/etc/ganglia
[root@localhost app]# make
[root@localhost app]# make install

添加gmond和gmetad为系统服务:

[root@localhost ganglia-3.1.7]# cp gmond/gmond.init /etc/rc.d/init.d/gmond
[root@localhost ganglia-3.1.7]# cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
[root@localhost ganglia-3.1.7]# chkconfig --add gmond && chkconfig gmond on
[root@localhost ganglia-3.1.7]# chkconfig --add gmetad && chkconfig gmetad on

3.8、Ganglia web前端设置:

[root@localhost ganglia-3.1.7]# mkdir -p /var/lib/ganglia/rrds
[root@localhost ganglia-3.1.7]# chown nobody:nobody /var/lib/ganglia/rrds [root@localhost app]# tar zxvf ganglia-web-3.5.2.tar.gz
[root@localhost app]# cd ganglia-web-3.5.2
[root@localhost ganglia-web-3.5.2]# vi Makefile
将GDESTDIR = /var/www/html/ganglia
APACHE_USER = apache
改为
GDESTDIR = /usr/local/apache2/htdocs/ganglia
APACHE_USER = nobody
[root@localhost ganglia-web-3.5.2]# make install
rsync --exclude "rpmbuild" --exclude "*.gz" --exclude "Makefile" --exclude "*debian*" --exclude "ganglia-web-3.5.2" --exclude ".git*" --exclude "*.in" --exclude "*~" --exclude "#*#" --exclude "ganglia-web.spec" -a . ganglia-web-3.5.2
mkdir -p //var/lib/ganglia/dwoo/compiled && \
mkdir -p //var/lib/ganglia/dwoo/cache && \
mkdir -p //var/lib/ganglia && \
rsync -a ganglia-web-3.5.2/conf/ //var/lib/ganglia/conf && \
rsync --exclude "conf" -a ganglia-web-3.5.2/* //usr/local/apache2/htdocs/ganglia && \
chown -R nobody:nobody //var/lib/ganglia/dwoo //var/lib/ganglia/conf [root@localhost ganglia-web-3.5.2]# cp /usr/local/bin/rrdtool /usr/bin/rrdtool

四、Ganglia的简单配置

4.1、生成gmond默认配置文件:

[root@localhost ganglia-3.1.7]# gmond -t |tee /etc/ganglia/gmond.conf  

4.2、
4.3、启动ganglia,并访问其web页面:

[root@localhost ganglia-web-3.5.2]# service gmond restart
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
[root@localhost ganglia-web-3.5.2]# service gmetad restart
Shutting down GANGLIA gmetad: [FAILED]
Starting GANGLIA gmetad: [ OK ]
[root@localhost ganglia-web-3.5.2]# service httpd restart

4.4、web页面:

 五、参考资料

http://share.blog.51cto.com/278008/577554

http://www.cnblogs.com/wukenaihe/archive/2013/03/21/2972837.html

http://www.ibm.com/developerworks/cn/linux/l-ganglia-nagios-1/

http://chenjiuling.blog.51cto.com/3057028/949221

http://blog.csdn.net/ganglia/article/details/16112529

 六、单播模式设置:

在每个节点上都要配置/etc/ganglia/gmond.conf

globals {
daemonize = yes
setuid = yes
user = root /*运行Ganglia的用户(一般可能是nobody)*/
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
host_dmax = 120 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
send_metadata_interval = 15 /*发送数据的时间间隔*/
} cluster {
name = "hadoop_hf" /*集群名称*/
owner = "root" /*运行Ganglia的用户*/
latlong = "unspecified"
url = "unspecified"
} udp_send_channel {
# mcast_join = 239.2.11.71 /*注释掉组播*/
host = 192.168.228.172 /*发送给安装gmetad的机器*/
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
# mcast_join = 239.2.11.71 /*注释掉组播*/
port = 8649
# bind = 239.2.11.71 /*注释掉组播*/
}

Linux之Ganglia源码安装的更多相关文章

  1. Linux平台下源码安装mysql多实例数据库

    Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...

  2. Linux 6.8 源码安装MySQL8.0

    搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...

  3. linux中的源码安装

    前两天自己在笔记本上装了CentOs版本的虚拟机,接着要装Python3,是源码安装的挺费劲,个人总结了一些源码安装的经验,今天在这里给大家分享一下. 1. 首先准备环境,安装必要的编译工具gcc g ...

  4. Linux MySQL5.5源码安装

    环境:CentOS7,MySQL5.5 1.MySQL5.5源码下载 Oracle的网站打开较慢,http://mirrors.sohu.com/mysql/这里提供了MySQL的镜像.一般的,Lin ...

  5. [整理]Linux下的源码安装步骤及其功能解释

    源码的安装一般由3个步骤组成:配置(./configure).编译(make).安装(make install). 这时最常用的命令就是这三个--./configure && make ...

  6. Linux环境下源码安装PostgreSQL

    1.下载PostgreSQL源码包,并保存到Linux操作系统的一个目录下 2.解压PostgreSQL源码包 :tar zxvf postgresql-9.2.4.tar.gz 或 tar jxvf ...

  7. linux下python3源码安装及卸载

    Linux下Python3的源码编译安装和卸载方法 [日期:2019-06-21] 来源:博客园  作者:wuli潇萧 [字体:大 中 小]     (一)Linux下软件的源码编译安装和卸载方法 L ...

  8. postgresql 在linux上的源码安装

    http://my.oschina.net/hippora/blog/375292 下载源码并解压 [root@fnddb ~]# wget https://ftp.postgresql.org/pu ...

  9. Linux系统下源码安装rz/sz命令

    背景:在windows环境下,使用xshell远程连接公司内部做的一个类似centos的系统,但该linux系统yum install有问题,只能源码安装. root 账号登陆后,依次执行以下命令: ...

随机推荐

  1. Speed-BI数据分析案例:2016年7月汽车销量排行榜

    据中国汽车工业协会统计分析,2016年7月,汽车产销比上月均呈下降,同比呈较快增长.1-7月,汽车产销保持稳定增长,增幅比上半年继续提升. 7月,汽车生产195.96万辆,环比下降4.38%,同比增长 ...

  2. js转换 /Date(1464671903000)/ 格式的日期的方法

    转换成:2016-07-11 function getFDate(date) { var d = eval('new ' + date.substr(1, date.length - 2)); var ...

  3. mina学习

    长连接表示一旦建立了链接,就可以长时间的保持双方的通讯,例如: socket链接,推送平台. 短链接表示建立链接,完成数据的交换之后,就断开链接,例如: http链接. mina 框架是对socket ...

  4. 第六篇 SQL Server安全执行上下文和代码签名

    本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...

  5. UltraEdit常用配置&搭建Java/C开发环境

    一:个人使用UE期间总结了以下经常使用的配置 1.手动配置语法高亮 [高级]->[配置]->[编辑器显示]->[语法高亮]->[词语列表的完整路径]->[浏览]找到安装目 ...

  6. 一个新人对JavaScript的内容简单介绍

    JavaScript 1.基本的数据类型:字符串  小数  整数  时间日期  布尔型等. 2.变量: JS定义变量通通都是用var开头,var里面可以放任何东西(如:小数,整数,字符串,时间日期等等 ...

  7. FileInputStream and FileOutputStream

    Java FileOutputStream class Java FileOutputStream is an output stream for writing data to a file. If ...

  8. [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. Python学习总结4:字符串常量与操作汇总

    参考博客:http://www.cnblogs.com/Camilo/archive/2013/09/21/3332267.html http://www.cnblogs.com/SunWentao/ ...

  10. 变形--旋转 rotate()

    旋转rotate()函数通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度.如果这个值为正值,元素相对原点中心顺时针旋转:如果这个值为负值,元素相 ...