CentOS6.8 安装Ganglia监控系统

    xiaoxiao2021-03-25  116

    引言

    最近研究了一下与Hadoop结合很好的监控工具Ganglia,在做hadoop平台的时候这个工具对于系统的监控有非常好的帮助。 最近部署了30台机器的环境,使用状况还是不错的。 参考了网络文章进行安装,其中发生了很多问题,逐一解决后,形成了这篇文章,这篇文章可以知道安装ganglia,如果安装碰到问题可以留言,共同探讨。

    Hadoop版本:2.7.3

    ganglia的介绍

    ganglia主要由三部分组成,gmond,gmetad,web。 gmond可以理解成数据采集工具。主要的工作方式是:采集当前机器的数据,送到目标的gmond上(这个gmond很重要),目标gmond将数据放到内存,等待gmetad过来拉数据。 gmetad可以理解成数据收集工具。主要的工作方式是:去目标gmond拉数据,然后执行本地存储(rrds)。

    过程大致理解为:

    gmond(很多个)———upd发送————> 目标gmond <—–tcp拉数据——–gmetad—存储–>rrds

    web主要就是将gmetad收集的数据进行展示的工具。

    注意:我目前演示的配置是单播,单播方便理解,可以更好的了解ganglia的工作机制。

    开始安装

    安装yum源

    1:epel 源

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 这个源可能已经安装到了你的系统中,但是可能目标地址有些改变,建议删除。 删除命令

    >rpm -e --nodeps epel-release-6-8.noarch

    验证是否删除

    >rpm -qa|grep epel

    然后在执行安装

    2:remi源

    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 如果已经安装,按照上面的步骤删除,重新安装。

    验证加入的源工作正常 清楚本地的yum缓存

    >yum clean all

    验证所有的yum源

    >yum list

    在安装的时候可能出现如下错误: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again /etc/yum.repos.d/epel.repo 如果机器没有证书会导致yum失败,这个时候需要修改https为http。如果没有报上面的错误,忽略就OK了。 修改内容,共有三个(这是其中一个): mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

    然后执行

    >yum clean all >yum list

    注:这两个yum源所有的机器都需要安装,无论是gmond还是gmetad。

    服务器说明

    所有的操作都是root 共3台机器 192.168.248.130(gmetad,web,gmond-master) 192.168.248.131(gmond) 192.168.248.132(gmond)

    服务端安装与配置

    (192.168.248.130)

    1:安装php支持

    >yum install php-common php-cli php-gb php

    2:安装依赖库

    >yum install rrdtool rrdtool-devel httpd apr-devel zlib-devel libconfuse-devel expat-devel pcre-devel

    3:安装ganglia

    >yum install ganglia-web ganglia-gmetad ganglia-gmond ganglia-gmond-python

    安装完成后ganglia的相关文件所在的目录为一下三个路径:

    /etc/ganglia/ (conf) /usr/share/ganglia (web) /var/lib/ganglia (rrds,dwoo)

    4:配置gmetad 修改/etc/ganglia/gmetad.conf 修改data_source,改成:

    data_source "MyCluster” 192.168.248.130:8650 #gmetad采集数据的目标gmond地址和端口(tcp_accept_channel)

    5:配置gmond /etc/ganglia/gmond.conf,修改以下内容(这个gmond节点作为收集节点,这个节点可以是多个,最后需要在gmetad.conf上进行配置):

    cluster { name = "MyCluster" #设置集群的名称 #owner = "unspecified" latlong = "unspecified" url = "unspecified" } #发送到目标gmond的地址和端口(单播) udp_send_channel { host=192.168.248.130 port = 8649 ttl = 1 } #接收udp的端口 udp_recv_channel { port = 8649 } #gmetad如果过来收集数据请求的端口 tcp_accept_channel { port = 8650 gzip_output = no }

    6:配置web 做这步之前最好进行备份

    >cp -R /usr/share/ganglia /usr/share/ganglia_bak >ln -s /usr/share/ganglia /var/www/ganglia

    以下这个建议是其他作者建议的,我没有碰到情况,没有进行测试。 若有问题,可以将/usr/share/ganglia的内容直接复制到/var/www/ganglia

    修改/etc/httpd/conf.d/ganglia.conf,改成:

    # # Ganglia monitoring system php web frontend # Alias /ganglia /usr/share/ganglia <Location /ganglia> Order deny,allow Allow from all Allow from 127.0.0.1 Allow from ::1 # Allow from .example.com </Location>

    7:关闭SELINUX 如果已经关闭,忽略以下操作

    >vi /etc/selinux/config

    把SELINUX=enforcing改成SELINUX=disable;

    需要重启机器。

    8:启动服务 目前服务器的配置已经完成,接下来需要启动服务了。 启动前需要关闭防火墙,否则数据送不上来

    >service iptables stop >service gmetad start >service gmond start >service httpd restart

    客户端安装与配置

    192.168.248.131(gmond) 192.168.248.132(gmond) 添加yum源的操作和服务端一样

    1:安装

    >yum install ganglia-gmond >yum install ganglia-gmond-python

    2:配置gmond /etc/ganglia/gmond.conf,修改以下内容:

    cluster { name = "MyCluster" #设置集群的名称 #owner = "unspecified" latlong = "unspecified" url = "unspecified" } #发送到收集服务器和端口 udp_send_channel { host=192.168.248.130 port = 8649 ttl = 1 } #接收端口,可以整个注释掉 udp_recv_channel { port = 8649 } #这个端口也可以注释掉 tcp_accept_channel { port = 8649 gzip_output = no }

    需要注意的地方

    1:忘记关闭selinux

    There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied

    >vi /etc/selinux/config

    把SELINUX=enforcing改成SELINUX=disable; 需要重启机器。

    2:自启动

    >chkconfig gmond --level 3,4,5 on >chkconfig gmetad --level 3,4,5 on >chkconfig httpd --level 3,4,5 on

    3:监控udp端口

    开始的时候拉不到其他机器的数据,所以我检测了一下upd端口,发现我们网络设置有问题。监控upd端口用tcpdump

    >tcpdump -nn -vv -X udp port 8649

    访问

    http://192.168.248.130/ganglia

    配置Hadoop的Metrics

    修改hadoop-2.7.3/etc/hadoop/hadoop-metrics2.properties这个文件。 主要是配置各种metrics的收集地址 因为这里只有一个ganglia集群,因此配置了一个收集节点,如果是多个集群需要单独配置。

    *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 *.sink.ganglia.period=10 # default for supportsparse is false # *.sink.ganglia.supportsparse=true *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40 # Tag values to use for the ganglia prefix. If not defined no tags are used. # If '*' all tags are used. If specifiying multiple tags separate them with # commas. Note that the last segment of the property name is the context name. # #*.sink.ganglia.tagsForPrefix.jvm=ProcesName #*.sink.ganglia.tagsForPrefix.dfs= #*.sink.ganglia.tagsForPrefix.rpc= #*.sink.ganglia.tagsForPrefix.mapred= namenode.sink.ganglia.servers=192.168.248.130:8649 datanode.sink.ganglia.servers=192.168.248.130:8649 resourcemanager.sink.ganglia.servers=192.168.248.130:8649 nodemanager.sink.ganglia.servers=192.168.248.130:8649 mrappmaster.sink.ganglia.servers=192.168.248.130:8649 jobhistoryserver.sink.ganglia.servers=192.168.248.130:8649

    部分参考

    http://blog.csdn.net/knowledgeaaa/article/details/23352797 https://my.oschina.net/HIJAY/blog/497933 http://blog.csdn.net/kafeiflynn/article/details/6634380 http://blog.csdn.net/xxd851116/article/details/21369163 http://jingyan.baidu.com/article/29697b913c4a2cab20de3cd9.html http://blog.chinaunix.net/uid-11121450-id-3147002.html http://blog.csdn.net/cywosp/article/details/39701141 http://blog.csdn.net/xugen12/article/details/48230617 http://ramosli.iteye.com/blog/1485992

    转载请注明原文地址: https://ju.6miu.com/read-12422.html

    最新回复(0)