centos 6.2 中安装 ganglia

centos 6.2 中安装 ganglia

发布:thebaby   来源:net   阅读: 41   【 大  中  小】

本文为大家介绍 centos 6.2 中安装 ganglia 的方法,有需要的朋友可以参考下。

操作系统:CentOS 6.2
hadoop版本:hadoop-1.0.1

集群中需要用到三台机器:
192.168.137.101 namenode
192.168.137.103 datanode1
192.168.137.104 datanode2

1 安装Ganglia

1.1 添加EPEL软件仓库

CentOS官方软件仓库中没有Ganglia,而Ganglia依赖又太多,本人花了一天时间才把它的一个依赖项rrdtool安装好。后来放弃源码安装,改用yum。添加仓库的方法参考:
1、 为centos换一个比较快的yum更新源
2、 yum常用命令选项
3、 修改 CentOS 163 yum源
4、 Centos中yum安装和卸载软件的方法
5、 Linux yum命令详解
6、 RHEL6下配置Yum软件仓库的方法

注意:EPEL安装包的地址已经发生了变化,博客中的下载地址已经不适用,可以搜索一下最新的地址。还要注意匹配操作系统的版本。

1.2 Ganglia服务器端安装

Ganglia服务器端收集监控端信息,并提供访问接口,使用以下命令安装:
代码如下:
yum install ganglia ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web ganglia-gmond-python

1.3 Ganglia客户端安装

代码如下:

$ yum install ganglia ganglia-gmond


2 配置Ganglia

2.1 监控端配置

$ vim /etc/ganglia/gmond.conf

将cluster选项中 name设置为gmetad中data_source指定的名称即可。


【注解:这里的gmetad指服务器端的配置文件gmetad.conf,如下所示为hdfs

启动服务,并将服务加入chkconfig管理来开机自启动

代码如下:

#service gmond start

#chkconfig gmetad on


2.2 服务器端

$ sudo vim /etc/ganglia/gmetad.conf

data_source "hdfs" datanode1 datanode2

只需要更改 data_source一行,"hdfs"代表集群的名字,datanode1,datanode2,就是要监控的机器列表。默认端口8649。

启动服务,并将服务加入chkconfig管理来开机自启动

代码如下:

service gmetad start  


chkconfig gmetad on



#---配置web服务
1: 配置nginx
vi /usr/local/nginx/conf/vhosts/ganglia.conf

代码如下:

server
{
listen 80;
server_name 域名;
index index.html index.htm index.php;
root /usr/share/ganglia;

location ~ ^(.*)\/\.svn\/
{
deny all;
}

location ~ .*\.(php|php5)?$
{
# fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass php_server01;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}

location ~ .*\.(js|css)?$
{
expires 1h;
access_log off;
}

log_format ganglia '$remote_addr - $remote_user [$time_local] [$request_time] "$request"'
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" $http_x_forwarded_for';
access_log off;
}
 

主目录为:/usr/share/ganglia
可以添加通过nginx设置用户名密码访问和限制IP访问。
访问http://域名
会报错:
Notice: Undefined variable: private in /usr/share/ganglia/auth.php on line 27
因为我的php-fpm的运行用户为nobody,程序auth.php中fopen打开的文件为private_clusters,链接到/etc/ganglia/private_clusters,查看文件的拥有者
ls -l /etc/ganglia/private_clusters
-rw-r----- 1 root apache 1222 Feb 17 2010 /etc/ganglia/private_clusters
组拥有者为apache,修改组为php-fpm运行的用户即可。
chown root:nobody /etc/ganglia/private_clusters


2:服务器端Apache配置

vim /etc/httpd/conf.d/ganglia.conf


代码如下:

Alias /ganglia /usr/share/ganglia
<Location /ganglia>
Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
Allow from all
# Allow from .example.com

</Location>


测试用的话可以做如上配置。
打开浏览器: http://serverip/ganglia。
如果出现错误:There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied
则需要关闭selinux:vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;该方法需要重启机器。
可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问。
不过此法只是权宜之计,如果想永久修改selinux设置,还是要使用第一种方法。


=====================================

在集群节点管理器上输入下面的命令确定gmond工作是否正常:

#telnet 127.0.0.1 8649
按两次回车,通过端口8649返回信息给集群节点管理器上的gmond守护进程[4],你的屏幕此时应该显示一长串包括gmond监视的性能量度的XML代码。


=====================================

ganglia 监控,有时只显示后面主机的一部分,办法:

sudo vim /etc/ganglia/gmetad.conf

data_source "node0" lab0
data_source "node1" lab1
data_source "node2" lab2
data_source "node3" lab3

data_source "my cluster"  node0 node1 node2 node3


=====================================

可以通过修改 /usr/share/ganglia/templates/default /下的php的模板文件 来实现对监控页面的定制

比如:

1、可以修改文件:cluster_view.tpl 使在监控页面增加一些超链接

2、修改文件:header.tpl,使用<!--  ... --> 来注销网页的某些元素


=====================================


你可能感兴趣的:(安装,集群,centos6,监控,ganglia)