云监控 Ganglia 安装步骤 (含python module)

文章转载自:https://my.oschina.net/duangr/blog/181585      ,仅用于个人学习、收藏,转载请注明原作者地址。

前言

最近在研究云监控的相关工具,感觉ganglia颇有亮点,能从一个集群整体的角度来展现数据. 但是安装过程稍过复杂,相关依赖稍多,故写此文章与大家分享下.

本文不讲解相关原理,若想了解请参考其他资料. 

本文目的: 即使之前未触过ganglia,也能按照文中步骤搭建自己的ganglia监控集群.

@Author duangr

@Website http://my.oschina.net/duangr/blog/181585

1.相关环境

Host NameIPOSArch
duangr-1192.168.56.10CentOS 6.4x86_64
duangr-2192.168.56.11CentOS 6.4x86_64
duangr-3192.168.56.12CentOS 6.4x86_64


全部主机确认:

  • iptables关闭

  • SELinux disabled

2.部署规划

监控服务主节点duangr-1
被监控从节点

duangr-2
duangr-3


Ganglia监控服务的主节点需要安装:

  • ganglia

  • ganglia-web

  • php

  • apache

Ganglia被监控从节点需要安装:

  • ganglia

安装路径规划

ganglia安装路径/usr/local/ganglia
php安装路径
/usr/local/php
apache安装路径
/usr/local/apache2
ganglia-web安装路径
/export/home/ganglia/ganglia-web-3.5.10
rrds数据路径
/export/home/ganglia/rrds

3.代码获取

  • ganglia-3.6.0.tar.gz

  • ganglia-web-3.5.10.tar.gz

  • httpd-2.2.23.tar.gz

  • php-5.4.10.tar.gz

4.前提依赖

4.1 主机环境检查(全部主机节点)

# rpm -q 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
gcc-4.4.7-3.el6.x86_64
glibc-2.14.1-6.x86_64
glibc-common-2.14.1-6.x86_64
rrdtool-1.3.8-6.el6.x86_64
rrdtool-devel-1.3.8-6.el6.x86_64
apr-1.3.9-5.el6_2.x86_64
apr-devel-1.3.9-5.el6_2.x86_64
expat-2.0.1-11.el6_2.x86_64
expat-devel-2.0.1-11.el6_2.x86_64
pcre-7.8-6.el6.x86_64
pcre-devel-7.8-6.el6.x86_64
dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch.rpm
dejavu-sans-mono-fonts-2.30-2.el6.noarch.rpm

若有缺失,请先安装. 可通过如下几个镜像网站下载相关安装包:

  • http://rpm.pbone.net/

  • http://mirrors.163.com/centos/6.4/os/x86_64/Packages/

  • http://mirrors.sohu.com/centos/6.4/os/x86_64/Packages/

4.2 dejavu

rpm -ivh dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch.rpm
rpm -ivh dejavu-sans-mono-fonts-2.30-2.el6.noarch.rpm

4.3 rrdtool

rpm -ivh rrdtool-1.3.8-6.el6.x86_64.rpm
rpm -ivh rrdtool-devel-1.3.8-6.el6.x86_64.rpm

4.4 apr

rpm -ivh apr-1.3.9-5.el6_2.x86_64.rpm
rpm -ivh apr-devel-1.3.9-5.el6_2.x86_64.rpm

4.5 libexpat

rpm -ivh expat-2.0.1-11.el6_2.x86_64.rpm
rpm -ivh expat-devel-2.0.1-11.el6_2.x86_64.rpm

4.6 libpcre

rpm -ivh pcre-7.8-6.el6.x86_64.rpm
rpm -ivh pcre-devel-7.8-6.el6.x86_64.rpm

4.7 confuse

confuse-2.7  http://www.nongnu.org/confuse/

tar -zxf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls
make && make install

4.8 python

Python-2.7.3.tar.bz2   http://www.python.org/

tar -jxf Python-2.7.3.tar.bz2
./configure  --prefix=/usr/local  --enable-shared 
make && make install

配置共享库

vi /etc/ld.so.conf-- 增加如下内容
/usr/local/lib

启用配置

ldconfig

检查是否生效

ldconfig -v |grep "libpython2.7.so"

5.编译安装

5.1 安装ganglia (全部节点都要安装)

# tar -zxf ganglia-3.6.0.tar.gz
# cd ganglia-3.6.0
# ./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python=/usr/local
Welcome to..______                  ___/ ____/___ _____  ____ _/ (_)___ _/ / __/ __ `/ __ \/ __ `/ / / __ `// /_/ / /_/ / / / / /_/ / / / /_/ /\____/\__,_/_/ /_/\__, /_/_/\__,_//____/Copyright (c) 2005 University of California, BerkeleyVersion: 3.6.0
Library: Release 3.6.0 0:0:0Type "make" to compile.
# make && make install

5.2 安装ganglia-web (主节点安装)

# tar -zxf ganglia-web-3.5.10.tar.gz -C /export/home/ganglia/
# cd /export/home/ganglia/ganglia-web-3.5.10
# cp conf_default.php conf.php

vi conf.php    调整为如下内容

$conf['gweb_confdir'] = "/export/home/ganglia/ganglia-web-3.5.10";
$conf['gmetad_root'] = "/export/home/ganglia";

vi header.php 

<?php
session_start();
ini_set('date.timezone','PRC');      --修改时区为本地时区if (isset($_GET['date_only'])) {$d = date("r");echo $d;exit(0);
}

配置临时目录

cd /export/home/ganglia/ganglia-web-3.5.10/dwoo
mkdir cache
chmod 777 cache
mkdir compiled
chmod 777 compiled

5.3 安装apache (主节点安装)

tar -zxf httpd-2.2.23.tar.gzcd httpd-2.2.23./configure --prefix=/usr/local/apache2make && make install

5.4 安装php (主节点安装)

tar -zxf php-5.4.10.tar.gz
cd php-5.4.10
./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs  --with-mysql=/usr
make  && make install

5.5 使用apache发布ganglia-web (主节点安装)

vi /usr/local/apache2/conf/httpd.conf

....
Listen 80
....<IfModule dir_module>DirectoryIndex index.html index.phpAddType application/x-httpd-php .php
</IfModule>
....# 在文件最后增加如下内容
# ganglia
Alias /ganglia "/export/home/ganglia/ganglia-web-3.5.10"
<Directory "/export/home/ganglia/ganglia-web-3.5.10">AuthType BasicOptions NoneAllowOverride NoneOrder allow,denyAllow from all
</Directory>

启动httpd服务

/usr/local/apache2/bin/apachectl restart

6.配置Ganglia

6.1 配置gmetad (主节点配置)

cd ganglia-3.6.0
cp ./gmetad/gmetad.init /etc/init.d/gmetad
cp ./gmetad/gmetad.conf /usr/local/ganglia/etc/

vi /etc/init.d/gmetad  --修改如下内容

GMETAD=/usr/local/ganglia/sbin/gmetad

vi /usr/local/ganglia/etc/gmetad.conf     -- 修改如下内容

data_source "duangr-cluster" 10 duangr-1  duangr-2  duangr-3
xml_port 8651
interactive_port 8652
rrd_rootdir "/export/home/ganglia/rrds"
case_sensitive_hostnames 0

修改rrds数据目录所有者

chown -R nobody:nobody /export/home/ganglia/rrds

启动gmetad服务,并设为开机自动运行 

service gmetad restart
chkconfig --add gmetad

6.2 配置gmond (全部节点配置)

cd ganglia-3.6.0
cp ./gmond/gmond.init /etc/init.d/gmond 
./gmond/gmond -t > /usr/local/ganglia/etc/gmond.conf

vi /etc/init.d/gmond  --修改如下内容

GMOND=/usr/local/ganglia/sbin/gmond

vi /usr/local/ganglia/etc/gmond.conf      -- 修改如下内容

cluster {name = "duangr-cluster"owner = "nobody"latlong = "unspecified"url = "unspecified"
}

复制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  /usr/local/ganglia/etc/conf.d

启动gmond服务,并设为开机自动运行

service gmond  restart
chkconfig --add  gmond

7.监控页面

http://192.168.56.10/ganglia/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORA-65096: 公用用户名或角色名无效引发的思考

解决方式&#xff1a; alter session set "_ORACLE_SCRIPT"true; alter session set containerPDBORCL;原因&#xff1a;查官方文档得知“试图创建一个通用用户&#xff0c;必需要用C##或者c##开头”&#xff0c;这时候心里会有疑问&#xff0c;什么是common user&am…

VS封装给Unity使用的DLL

首先: 注意两点,一个是选择3.5,Unity最高支持到3.5 然后要选择第二个FrameWork类库 第一个会报错 然后导入Unity dll 我Unity安装在F:\AppLicationWorkSpace\Unity5.6.2\Unity\Editor\Data\Managed 用哪个导入哪个 然后生成 Ok 把生成的DLL放到Unity里就可以使用了 继续写…

hawq state 报错: the database is down, but Ambari shows all hawq services as being

此问题官方有给出解决方案&#xff1a;https://discuss.pivotal.io/hc/en-us/articles/221826748-Pivotal-HDB-state-indicates-the-database-is-down-but-Ambari-shows-all-Pivotal-HDB-services-as-being-up Environment ProductVersionPivotal HDB (HAWQ)2.x Symptom Piv…

OpenLayer学习之矢量地图

一、首先了解下矢量地图和栅格地图 矢量图使用直线和曲线来描述图形&#xff0c;这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等&#xff0c;矢量地图放大和缩小不会失真&#xff08;图片你要是放大一定程度明显可以看出一个一个小格→栅格地图的缺点&#xff09;。为…

文件拷贝(字符、字节)

1.字节流byte&#xff1a;读入到字节数组后&#xff0c;返回一个长度len&#xff0c;如果没有读到数据&#xff0c;len-1 2.字符流char&#xff1a;同样是-1 3.代码生成器&#xff1a;null 一行一行地读 4.键盘录入&#xff0c;写入文件 5.构造器&#xff0c;追加用true 6.类…

HBae找不到协处理器导致RegionServer全部挂掉

一、问题背景&#xff1a; 跟兄弟单位公用一个大数据集群&#xff0c;通过Dataspace结合Kerberos控制数据的访问&#xff0c;我们生产环境中用到的OLAP工具Kylin&#xff0c;在升级Kylin的过程中&#xff0c;由于删除了旧的协处理器&#xff0c;导致原来数据继续去寻找目标协处…

Spark SQL的整体实现逻辑

1、sql语句的模块解析 当我们写一个查询语句时&#xff0c;一般包含三个部分&#xff0c;select部分&#xff0c;from数据源部分&#xff0c;where限制条件部分&#xff0c;这三部分的内容在sql中有专门的名称&#xff1a; 当我们写sql时&#xff0c;如上图所示&#xff0c;在进…

Mysql的高可用方案及主从详细配置

1、常用的高可用MySQL解决方案&#xff1a; 数据库作为最基础的数据存储服务之一&#xff0c;在存储系统中有着非常重要的地位&#xff0c;因此要求其具备高可用性无可厚非。能实现不同SLA(服务水平协定)的解决方案有很多种&#xff0c;这些方案可以保证数据 库服务器在硬件或…

vue3+element plus组件库中el-carousel组件走马灯特效,当图片变动时下面数字也随着图片动态变化

1.效果图 2.html <section style"height:30%"><div class"left-img1-title"><img src"../assets/img/title.png"alt""srcset""><div class"text">回收垃圾数量</div></div>…

数据库MySQL/mariadb知识点——数据类型

数据类型 所谓的列类型&#xff0c;其实就是指数据类型&#xff0c;即对数据进行统一的分类&#xff0c;从系统的角度出发是为了能够使用统一的方式进行管理&#xff0c;更好的利用有限的空间。 在 SQL 中&#xff0c;将数据类型分成了三大类&#xff0c;分别为&#xff1a;数值…

期货大赛项目|九,fileinput插件的应用

引入JS和CSS bundles.Add(new ScriptBundle("~/bundles/fileinputJs").Include( "~/Content/vendors/bootstrap-fileinput-master/js/fileinput.min.js", "~/Content/vendors/bootstrap-fileinput-master/js/locales/zh.js", "~/Scripts/fi…

PLSQL中文显示乱码(问号)

1、输入 select * from V$NLS_PARAMETERS 查看第一行value值是否为简体中文 simplified chinese 实际显示为&#xff1a;AMERICAN 2、设置本地环境变量 &#xff1a;NLS_LANG NLS_LANGAMERICAN_AMERICA.ZHS16GBK NLS_LANG的值为三个划线值拼接而成。 3、重新打开PLSQL…

Mybatis下collections使用pageHelper进行分页

pageHelper在对mybatis一对多分页时造成查询总页数结果不对的情况。 可以做出如下修改&#xff1a; service层&#xff1a; public CommonResult worksList(String userId, int page, int pageSize) throws Exception { PageHelper.startPage(page, pageSize); List<…

解决ubuntu系统root用户下Chrome无法启动问题

说明&#xff1a;本文转载自-https://www.cnblogs.com/hbsygfz/p/8409517.html 由于ubuntu16.04系统自带的是Firefox浏览器&#xff0c;需要安装Chrome浏览器&#xff0c;但是在root用户下安装后发现&#xff0c;Chrome无法正常启动。安装及问题解决具体如下&#xff1a; 1. …

mysql ERROR 1045 和2058时(28000): 错误解决办法

mysql ERROR 1045 (28000): 错误解决办法 听语音|浏览&#xff1a;54286|更新&#xff1a;2018-02-23 14:34|标签&#xff1a;mysql 1234567分步阅读ERROR 1045 (28000): Access denied for user ODBClocalhost (using password: NO) ERROR 1045 (28000): Access denied for us…

maven POM总结

可继承的字段 version property 其他占坑&#xff1a; parent import scope Dependency_Management中的scope是可以被继承的&#xff0c;http://maven.apache.org/pom.html#Dependency_Management name 不可继承 artifactId 不可继承 &#xff0c; 确定打包的最终名称。 这个…

JVM从入门到放弃——JVM内存模型

前言 Java和C或者是C相比较而言&#xff0c;最大的区别是C系列的程序员在编写代码的时候&#xff0c;总是要对程序中的变量进行释放内存的操作&#xff0c;所以在编写C或者是C的程序员需要格外的谨慎&#xff0c;因为他们对程序的内存有着很高的权限&#xff0c;这样虽然是特点…

485. Max Consecutive Ones - LeetCode

Question 485. Max Consecutive Ones Solution 题目大意:给一个数组,取连续1的最大长度 思路:遍历数组,连续1就加1,取最大 Java实现: public int findMaxConsecutiveOnes(int[] nums) {if (nums null) return 0;int result 0;int tmp 0;for (int i : nums) {if (i 1) {tmp;…

MacBook创建docker私有仓库docker server gave HTTP response to HTTPS client 问题处理办法

在 mac上搭建一个私有仓库&#xff0c;在向仓库push镜像时&#xff0c;会报如下错误&#xff1a; #docker push 192.168.163.131:5000/test Get https://192.168.163.131:5000/v1/_ping: http: server gave HTTP response to HTTPS client 百度了下答案发现都不试用mac版本的d…

Redis基础1(定义及基础)

Redis 定义&#xff1a;Redis是一个软件&#xff0c;帮助开发者对一台机器的内存进行操作 安装redis软件方法&#xff1a; 超链接地址&#xff1a;https://www.cnblogs.com/L5251/articles/9146881.html Python中下载依赖包 pip3 install redis 测试Redis是否安装成功 # 1、引入…