概述
Ganglia企业级系统监控
1.现在有哪些分布式企业级监控?
(1).Ganglia(无界面配置)
(2).Nagios(无界面配置)
(3).Zabbix(界面配置)
2.Ganglia监控对象
(1).监控Hadoop(在这方面用的比较多)
(2).监控Hbase
3.Ganglia简介
Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。
每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。
它将从操作系统和指定主机中收集。
接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。
正因为有这种层次结构模式,才使得Ganglia可以实现良好的扩展。gmond带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能
3.1.Ganglia组件
Ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为ganglia-web。
Gmond :是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息
如果它是一个发送者(mute=no)它会收集基本指标,比如系统负载(load_one),CPU利用率。
它同时也会发送用户通过添加C/Python模块来自定义的指标。
如果它是一个接收者(deaf=no)它会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。
Gmetad:也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。
它可以查询多个集群并聚合指标。
它也被用于生成用户界面的web前端。
Ganglia-web :顾名思义,它应该安装在有gmetad运行的机器上,以便读取RRD文件。
集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。
一般来说每个集群需要一个接收的gmond,每个网站需要一个gmetad。
3.2.单播模式下的Ganglia
3.3.广播模式下的Ganglia
4.Ganglia安装
4.1.节点部署服务情况
node01(192.168.230.10)、node02(192.168.230.11)、node03(192.168.230.12)、node04(192.168.230.13)
NameNode(NNA)
NameNode(NNS)
DataNode
DataNode
ResourceManager(RMA)
ResourceManager(RMS)
NodeManager
NodeManager
NodeManager
zookeeper
zookeeper
zookeeper
4.2.安装yum epel源
[root@node01 ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@node02 ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@node03 ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@node04 ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
4.3.安装依赖包
[root@node01 ~]# yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
[root@node02 ~]# yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
[root@node03 ~]# yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
[root@node04 ~]# yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
4.4.查看Ganglia安装包
[root@node01 ~]# yum search ganglia
4.5.在NNA上安装Ganglia
yum -y install ganglia* (包括gmetad,gmond,ganglia-web)
[root@node01 ~]# yum -y install ganglia*
4.6.其他节点上安装Ganglia-Gmond
[root@node02 ~]# yum install ganglia-gmond
[root@node03 ~]# yum install ganglia-gmond
[root@node04 ~]# yum install ganglia-gmond
4.7.在安装好Ganglia后,我们需要对Ganglia工具进行配置,在由Ganglia-web服务的节点上,我们需要配置web服务
[root@node01 hadoop-2.5.1]# vi /etc/httpd/conf.d/ganglia.conf
#
# Ganglia monitoring system php web frontend
#
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
Order deny,allow
# Deny from all
Allow from all
# Allow from 127.0.0.1
# Allow from ::1
# Allow from .example.com
</Location>
4.8.在/etc/ganglia/gmetad.conf修改内容如下所示:
[root@node01 hadoop-2.5.1]# vi /etc/ganglia/gmetad.conf
4.9.在NNA配置gmond.conf
[root@node01 hadoop-2.5.1]# vi /etc/ganglia/gmond.conf
[root@node01 hadoop-2.5.1]# scp -r /etc/ganglia/gmond.conf root@node02:/etc/ganglia/
[root@node01 hadoop-2.5.1]# scp -r /etc/ganglia/gmond.conf root@node03:/etc/ganglia/
[root@node01 hadoop-2.5.1]# scp -r /etc/ganglia/gmond.conf root@node04:/etc/ganglia/
4.10.配置主节点监控文件
[root@node01 hadoop-2.5.1]# vi /opt/modules/hadoop-2.5.1/etc/hadoop/hadoop-metrics2.properties
namenode.sink.ganglia.servers=node01:8649
resourcemanager.sink.ganglia.servers=node01:8649
mrappmaster.sink.ganglia.servers=node01:8649
jobhistoryserver.sink.ganglia.servers=node01:8649
4.11.从节点配置
[root@node02 hadoop-2.5.1]# vi /opt/modules/hadoop-2.5.1/etc/hadoop/hadoop-metrics2.properties
datanode.sink.ganglia.servers=node02:8649
nodemanager.sink.ganglia.server=node02:8649
[root@node02 hadoop-2.5.1]# vi /opt/modules/hadoop-2.5.1/etc/hadoop/hadoop-metrics2.properties
datanode.sink.ganglia.servers=node03:8649
nodemanager.sink.ganglia.server=node03:8649
[root@node04 hadoop-2.5.1]# vi /opt/modules/hadoop-2.5.1/etc/hadoop/hadoop-metrics2.properties
datanode.sink.ganglia.servers=node04:8649
nodemanager.sink.ganglia.server=node04:8649
4.12.安装 php环境
ganglia使用一个web前端服务来展示监控信息。该服务是使用PHP编写的。因此需要配置php运行环境。
[root@node01 ~]# yum install httpd
[root@node01 ~]# yum install php
[root@node01 ~]# service httpd start
在/var/www/html/下面建立一个文件info.php,内容如下:
<?php
echo 'Hello, world!';
?>
在浏览器中输入http://192.168.230.10/info.php,看看是否能正常工作
4.13.启动ganglia
[root@node01 html]# service gmetad start
[root@node01 html]# service gmond start
4.14.从页面上访问
http://192.168.230.10/ganglia
一些注意问题:
1、gmetad收集到的信息被放到/var/lib/ganglia/rrds/
2、可以通过以下命令检查是否有数据在传输
如果报错There was an error collecting ganglia data (127.0.0.1:8652):
fsockopen error: Connection refused,然后gmetad status显示gmetad 已死,
但是 subsys 被锁,这需要改一下目录的权限 chown matrix:matrix /var/lib/ganglia/rrds即可解决。
最后
以上就是还单身香烟为你收集整理的Ganglia分布式监控部署Ganglia企业级系统监控的全部内容,希望文章能够帮你解决Ganglia分布式监控部署Ganglia企业级系统监控所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复