十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
今天就跟大家聊聊有关如何分析Ganglia本质及SparkOnGanglia的配置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联是一家专业从事网站设计、成都网站设计的网络公司。作为专业网站设计公司,创新互联依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、成都全网营销推广及网站设计开发服务!
Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。
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。
注:建议全程使用超级用户安装,本例安装环境centos6.6
1.#yum install –y gcc gcc-c++ libpng freetype zlib libdbi apr* libxml2-devel pkg-config glib pixman pango pango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel pcre* rrdtool*
1. #cd ~
2.#wget http://jaist.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
3.#tar -xf expat-2.1.0.tar.gz && cd expat-2.1.0 && ./configure --prefix=/usr/local/expat && make && make install && cd ..
对于64位操作系统,需要手动的拷贝下动态链接库到lib64下
1.#mkdir /usr/local/expat/lib64 && cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
1.#wget http://ftp.twaren.net/Unix/NonGNU//confuse/confuse-2.7.tar.gz
2.#tar -xf confuse-2.7.tar.gz && cd confuse-2.7 && ./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse && make && make install && cd ..
64bit机器需要拷贝动态链接库:
1.#mkdir -p /usr/local/confuse/lib64 && cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
1.#wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz
2.#tar -xf ganglia-3.6.0.tar.gz && cd ganglia-3.6.0 && ./configure --with-gmetad --enable-gexec --with-libconfuse=/usr/local/confuse --with-libexpat=/usr/local/expat --prefix=/usr/local/ganglia --sysconfdir=/etc/ganglia && make && make install && cd ..
1.#mkdir -p /var/lib/ganglia/rrds && mkdir -p /var/lib/ganglia/dwoo && chown -R root:root /var/lib/ganglia
修改/etc/ganglia/gmetad.conf文件
1.data_source "glo" master(master映射要监控的主机Ip,在本例中只监控一台机器即master。如非必要不用填端口,默认8649,
这里的 " glo" 表示的是集群的名称,后面的内容是这个集群中所包含的主机信息,也就是要监控的主机。)
2.setuid_username "root"
添加自启动脚本
1.#cp -f ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad && cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad && chkconfig --add gmetad
启动gmetad服务
1.#service gmetad start
看见Starting GANGLIA gmetad: [ OK ]就代表运行正常了。 通过telnet localhost 8651验证gmetad是否正常
本机安装如下:
1.#cp -f ganglia-3.6.0/gmond/gmond.init /etc/init.d/gmond && cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond && chkconfig --add gmond && gmond --default_config > /etc/ganglia/gmond.conf
对于生成的默认配置文件/etc/ganglia/gmond.conf需要做适当的修改
globals {
user = root /*运行Ganglia的用户*/
host_dmax = 120 /*secs */
send_metadata_interval = 15 /*发送数据的时间间隔*/
}
cluster {
name = "glo" /*集群名称*/
owner = "root" /*运行Ganglia的用户*/
}
udp_send_channel {
# mcast_join = 239.2.11.71 /*注释掉组播*/
host = 192.168.1.108/*发送给安装gmetad的机器*/
}
udp_recv_channel { #接受UDP包配置
# mcast_join = 239.2.11.71
# bind = 239.2.11.71
}
其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务
1.#service gmond start
看见Starting GANGLIA gmetad: [ OK ]代表启动成功。如果有失败,可以讲gmond.conf中的debug从0改为100,看更多的日志,然后进行排查。
PHP程序需要依赖Apache来运行,因此需要安装如下依赖
1.# yum -y install php httpd
2.# service httpd start //启动httpd 服务
1.#cd /root
2.#wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.5.10/ganglia-web-3.5.10.tar.gz
3.#tar -xf ganglia-web-3.5.10.tar.gz && cd ganglia-web-3.5.10 && make install && cd ..
这样 在/var/www/html/下 生成了 ganglia 目录
注:
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设置,还是要使用第一种方法。
重启httpd服务器即可看到效果
1.#service httpd restart
使用http://master/ganglia查看对应的ganglia信息。(注:master为运行gmetad的主机的hostname)
(本例spark版本1.5.1)
在$SPARK_HOME/conf/metrics.properties添加
*.sink.ganglia.class=org.apache.spark.metrics.sink.GangliaSink
*.sink.ganglia.host=master
*.sink.ganglia.port=8649
*.sink.ganglia.period=2
*.sink.ganglia.unit=seconds
*.sink.ganglia.ttl=1
*.sink.ganglia.mode=unicast
然后在ganglia web中查看Metric项
看完上述内容,你们对如何分析Ganglia本质及SparkOnGanglia的配置有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。