前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ganglia监控搭建

ganglia监控搭建

作者头像
yiduwangkai
发布2020-04-24 17:56:54
1.1K0
发布2020-04-24 17:56:54
举报
文章被收录于专栏:大数据进阶大数据进阶

环境: CentOS release 6.2 (Final) 首先要下载ganglia http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz/download?use_mirror=nchc 目前最新的为ganglia-3.7.2.tar.gz 同时要下载ganglia-web-3.71.tar.gz 下载httd http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz php-5.4.10.tar.gz http://cn2.php.net/distributions/php-5.4.10.tar.gz 目前最新版本为:php-5.6.13.tar.gz confuse-2.7 http://www.nongnu.org/confuse/ 安装路径规划:软件名称 路径 ganglia安装路径 /usr/local/ganglia php安装路径 /usr/local/php apache安装路径 /usr/local/apache2 ganglia-web安装路径 /opt/monitor/ganglia/ganglia-web-3.5.12 rrds数据路径 /opt/monitor/ganglia/rrds 保证yum源可用 yum -y install 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 pkgconfig 查询是否有包未安装 yum install gcc glibc glibc-common rrdtool rrdtool-devel apr apr-devel expat expat-devel pcre pcre-devel dejavu-lgc-sans-mono-fonts dejavu-sans-mono-fonts 并且安装 pcre:安装目录/usr/local/pcre tar -xvf pcre-8.33.tar.gz ./configure --prefix=/usr/local/pcre --libdir=/usr/lib64 make make install confuse: tar -xvf confuse-2.7.tar.gz ./configure CFLAGS=-fPIC --disable-nls make make install rrdtool:安装目录/usr/local/rrdtool tar -xvf rrdtool-1.4.7.tar.gz ./configure --prefix=/usr/local/rrdtool make make install apache:安装目录/usr/local/apache2 tar -xvf httpd-2.2.23.tar.gz cd srclib cd apr ./configure --prefix=/usr/local/apr make make install cd ../apr-util ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make make install cd ../../ ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util make make install php安装 tar -xvf php-5.5.30.tar.gz ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs 编译PHP5.5 make 时出现错误 make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 解决办法 这是由于内存小于1G所导致. 在./configure加上选项: --disable-fileinfo Disable fileinfo support 禁用 fileinfo make make test make install php配置 从源码包目录拷贝一份php.ini-development 到php的安装目录 cp php.ini-development /usr/local/php/lib/php.ini 配置apache cd /usr/local/apache2/conf vim httpd.conf 查找字符串AddType,并增加 AddType application/x-httpd-php .php .php3 .htm .phtml .php4 查找字符串DirectoryIndex,并修改为 DirectoryIndex index.html index.php 在apache根文件中(/usr/local/apache2/htdocs/)增加一个test.php文件,<?php phpinfo(); ?>,然后访问127.0.0.1/test.php,查看结果。 重启apache,访问,

python安装:tar -xvf Python-2.7.10.tar.xz ./configure --prefix=/usr/local/python --enable-shared make make install 下面开始进行ganglia的安装(所有节点都要安装) tar -xvf ganglia-3.6.0.tar.gz ./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-python=/usr/local/python --with-libpcre=/usr/local/pcre --with-gmetad --enable-gexec --enable-status --sysconfdir=/etc/ganglia make make install 安装ganglia-web:仅主节点要装 解压,配置 cd ganglia-web-3.5.12/ cp conf_default.php conf.php 修改:$conf['rrdtool'] = "/usr/bin/rrdtool";-->$conf['rrdtool'] = "/usr/local/rrdtool/bin/rrdtool"; 修改:$conf['gweb_confdir'] = "/var/lib/ganglia-web";-->$conf['gweb_confdir'] = "/opt/monitor/ganglia/ganglia-web-3.5.12"; 修改:$conf['gmetad_root'] = "/var/lib/ganglia";-->$conf['gmetad_root'] = "/opt/monitor/ganglia"; 修改header.php <?php session_start(); ini_set('date.timezone','PRC'); --修改时区为本地时区(新加这一行) if (isset($_GET['date_only'])) { $d = date("r"); echo $d; exit(0); } 配置临时目录 cd /opt/monitor/ganglia/ganglia-web-3.5.12/dwoo/ mkdir cache chmod 777 cache mkdir compiled chmod 777 compiled 使用apache发布ganglia-web(主节点) vi /usr/local/apache2/conf/httpd.conf 启动httpd服务 ? 1 /usr/local/apache2/bin/apachectl restart 配置ganglia 配置gmetad(主节点配置) cd /opt/monitor/ganglia-3.6.0 cp gmetad/gmetad.init /etc/init.d/gmetad 注:这里编译ganglia的时候加了参数sysconfdir,所以这里不需要进行如下步骤 cp gmetad/gmetad.conf /usr/local/ganglia/etc/ 但是如果没有加上系统配置参数,则要执行上一步,然后 gmetad -t | tee /usr/loca/ganglia/etc/gmetad.conf这个是为了生成默认配置文件 vim /etc/init.d/gmetad 修改:GMETAD=/usr/sbin/gmetad-->GMETAD=/usr/local/ganglia/sbin/gmetad vim etc/ganglia/gmetad.conf 修改:data_source "my cluster" localhost --> data_source "solrCloud" localhost 192.168.36.82:8649 192.168.36.81:8649 192.168.36.84:8649 192.168.36.80:8649 放开xml_port这里的端口不能和data_source的端口冲突 放开interactive_port vim opt/monitor/ganglia/ganglia-web-3.5.12/conf.php

这个端口和interactive port端口要一致 修改rrd_rootdir的路径 # rrd_rootdir "/some/other/place"-->rrd_rootdir "/opt/monitor/ganglia/rrds" 查看case_sensitive_hostnames 0是否已经放开,并且值为0 修改# gridname "MyGrid"-->gridname "solrCloud" 修改rrds数据目录所有者 chown -R nobody:nobody /etc/monitor/ganglia/rrds 启动gmetad服务,并设为开机自动运行 service gmetad restart Starting GANGLIA gmetad: [ OK ] chkconfig --add gmetad gmond配置(所有节点) cd /opt/monitor/ganglia-3.6.0 cp gmond/gmond.init /etc/init.d/gmond vim /etc/init.d/gmond 修噶:#GMOND=/usr/sbin/gmond-->GMOND=/usr/local/ganglia/sbin/gmond ./gmond/gmond -t > /etc/ganglia/gmond.conf(生成默认的配置文件) 或者gmond -t | tee /etc/ganglia/gmond.conf # generate initial gmond config(生成默认的配置文件) vim /etc/ganglia/gmond.conf 参考如下进行修改 gmetad 注:这个数据源后面的ip的是配置的server的ip data_source "Namenode" 192.168.1.28:8653 data_source "Datanode" 192.168.1.27:8649 data_source "Portal" 192.168.1.43:8650 data_source "Collector" 192.168.1.35:8651 data_source "DB" 192.168.1.51:8652 gridname "Hadoop" rrd_rootdir "/opt/modules/ganglia/html/rrds" #配置rrd数据保存文件的路径,给web界面用的,这个是固定的,最好放在web文件夹下,并赋予正确的权限 case_sensitive_hostnames 0 数据来源有5个,这5个分别是每个组的组长,相当于一道杠。但是组长是不需要配置gmetad的,除非你要做多级组播收集数据。每个组长只需要分配不同的端口号就可以了。你可能会问,IP不一样,端口一样不行吗?不行,因为这个IP是单播IP,相当于一个路由指向,而Ganglia实际的数据传输是在多播IP上进行的,而多播IP只有一个。在客户端配置,如果你需要多级gmetad,可以配多个多播IP。 客户端配置就比较复杂一些了。我只贴上需要修改的部分,其他都是默认就可以了 注:这里是多播的模式配置 gmond cluster { name = "Portal" #对应gmetad中的Portal,名称一定要写对。 owner = "unspecified"---->nobody latlong = "unspecified" url = "unspecified" } /* Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel */ udp_send_channel { #bind_hostname = yes # Highly recommended, soon to be default. # This option tells gmond to use a source address # that resolves to the machine's hostname. Without # this, the metrics may appear to come from any # interface and the DNS names associated with # those IPs will be used to create the RRDs. mcast_join = 239.2.11.71 port = 8650 #gmetad中的Portal所分配的端口号。 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 = 8650 bind = 239.2.11.71 } /* You can specify as many tcp_accept_channels as you like to share an xml description of the state of the cluster */ tcp_accept_channel { port = 8650 } 红色部分就是Portal小组的端口,从gmetad.conf中可以看到,Portal小组属于8650端口,那么相应的在gmond中,也要将udp和tcp端口写为8650。 如果是另外一个组的,就写上在gmetad中配置的那个端口。当然,你可以把这个端口号想像为小组的代号。可能更好理解一些。 再加上另外一个组的成员gmond就更容易理解了 cluster { name = "DB" owner = "unspecified" latlong = "unspecified" url = "unspecified" } /* The host section describes attributes of the host, like the location */ host { location = "unspecified" } /* Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel */ udp_send_channel { #bind_hostname = yes # Highly recommended, soon to be default. # This option tells gmond to use a source address # that resolves to the machine's hostname. Without # this, the metrics may appear to come from any # interface and the DNS names associated with # those IPs will be used to create the RRDs. mcast_join = 239.2.11.71 port = 8652 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 = 8652 bind = 239.2.11.71 } /* You can specify as many tcp_accept_channels as you like to share an xml description of the state of the cluster */ tcp_accept_channel { port = 8652 } 红色对红色,蓝色对蓝色。一目了然。 复制python module到ganglia部署目录 mkdir /usr/local/ganglia/lib64/ganglia/python_modules cp ./gmond/python_modules/*/*.py /usr/local/ganglia/lib64/ganglia/python_modules 安装程序ganglia-3.6.0默认提供了一些python module的配置文件,只需要部署到 /usr/local/ganglia/etc/conf.d目录下面即可生效 cp ./gmond/python_modules/conf.d/*.pyconf /etc/ganglia/conf.d service gmond restart chkconfig --add gmond 下面贴上单播的模式配置: 单播模式设置: 在每个节点上都要配置/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 /*注释掉组播*/ } 测试: # 命令行打印当前活动client gstat -a 常见错误: err2: There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused 解决代码: # mkdir -p /var/lib/ganglia/rrds # chown nobody:nobody /var/lib/ganglia/rrds 注:注:当有信息出错时,可以查看log文件 tail –n 100 /var/log/message //查看对进的100行 echo /dev/null > /var/log/message //清空message 参考文献: http://my.oschina.net/duangr/blog/181585 http://my.oschina.net/duangr/blog/181189 http://blog.csdn.net/kafeiflynn/article/details/6634380 http://www.cnblogs.com/Richardzhu/p/3481996.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档