一.介绍
        Ganglia是由UC Berkeley发起的一个开源监控项目,设计用于监控数以千几的节点。每台服务器都运行一个收集和发送监控数据名为gmond的守护进程。它将从操作系统和指定主机中收集。接收所有监控数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次架构模式,使ganglia可以实现良好的扩展。Gmond带来的系统负载非常小,这使得它成为集群中各个服务器上运行一段代码而不会影响用户性能。

Ganglia主要用来监控系统性能的软件,通过曲线很容易见到每个节点的工作状态,对合理调整,分配系统资源,提高系统整体性能起到重要作用,支持浏览器方式访问,但不能监控节点硬件技术指标。Ganglia是分布式的监控系统。

Ganglia的组件:
    Ganglia包括如下程序,它们之间通过xml格式传递监控数据。
        服务端ganglia meta daemon(gmetad):负责收集各个cluster的数据,并更新到rrd数据库中
        客户端ganglia monitoring daemon(gmond):收集本机的监控数据,发送到其他服务器上,收集其他服务器的监控数据,供gmetad读取。
基于web的动态访问方式ganglia PHP web Frontend:一个基于web的监控界面,需要和gmetad安装在同一个节点上,从gmetad取数据,并且读取rrd数据库,生成图片显示。

Ganglia工作模式:
        Ganglia收集数据可以工作在单播或多播模式下,默认为多播模式
单播:发送自己收集到的监控数据到特定的一台或几台服务器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段所有的服务器上,同时收集同一网段的所有服务器发送过来的监控数据。因为是以广播包的形式发送,因此需要在同一网段内,但同一网段内,又可以定义不同的发送通道。

二。ganglia的安装和配置:

1.直接使用epelyum源进行安装即可,或者编译安装

1.1 安装所需软件包:

yum install  -y rrdtool rrdtool-devel apr-devel expat-devel dejavu-lgc-sans-mono-fonts dejavu-sans-mono-fonts glibc glibc-common apr apr-devel apr-util expat expat-devel  pcre pcre-devel  zlib zlib-devel

1.2 安装confuse

wget http://ftp.twaren.net/Unix/NonGNU//confuse/confuse-2.7.tar.gz
tar -zxf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls
make && make install

1.3 设置python 模块的环境变量

echo "/usr/local/lib" /etc/ld.so.conf
ldconfig
ldconfig -v |grep "python"

1.4 安装ganglia 服务端 gmetad

 
wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.1/ganglia-3.7.1.tar.gz
tar zxf ganglia-3.7.1.tar.gz
cd ganglia-3.7.1
./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec
make
make install

1.5 安装ganglia的agent端

wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.1/ganglia-3.7.1.tar.gz
tar zxf ganglia-3.7.1.tar.gz
cd ganglia-3.7.1
./configure --prefix=/usr/local/ganglia  --enable-gexec
make
make install

1.6 安装ganglia-web 前端展示

2. 配置ganglia gmetad端

2.1 复制服务控制脚本

cp -fr ganglia/gmetad/gmetad.init /etc/init.d/gmetad

并修改脚本下面内容

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

2.2 修改gmetad的配置文件更改下面参数:(参数的具体含义请参考gmetad.conf配置文件解释)

data_source "my cluster" 10.10.211.6
setuid_username "nobody"
xml_port 8651
interactive_port 8652
rrd_rootdir “/var/lib/ganglia/rrds”
case_sensitive_hostnames 0

创建rrd_rootdir文件,并授权nobody

mkdir /var/lib/ganglia/rrds
chown -R nobody.nobody /var/lib/ganglia/rrds

2.3 启动gmetad 服务,检查服务端口和进程

[root@puppet.sa.beyond.com ~]#/etc/init.d/gmetad start
Starting GANGLIA gmetad:                                   [确定]
[root@puppet.sa.beyond.com ~]#netstat -lnpt | grep gmetad
tcp        0      0 0.0.0.0:8651                0.0.0.0:*                   LISTEN      4529/gmetad
tcp        0      0 0.0.0.0:8652                0.0.0.0:*                   LISTEN      4529/gmetad
[root@puppet.sa.beyond.com ~]#ps -ef | grep gmetad
nobody    4529     1  0 23:38 ?        00:00:00 /usr/local/ganglia/sbin/gmetad
root      4545 20744  0 23:38 pts/3    00:00:00 grep gmetad

3.配置ganglia gmond 端

globals {
 daemonize = yes        #以后台的方式运行
 setuid = yes
 user = nobody          #运行gmond的用户
 debug_level = 0        #调试级别
 max_udp_msg_len = 1472
 mute = no            #哑巴,本节点将不会再广播任何自己收集到的数据到网络上
 deaf = no             #聋子,本节点将不再接收任何其他节点广播的数据包
 allow_extra_data = yes
 host_dmax = 0 /*secs */
 cleanup_threshold = 300 /*secs */
 gexec = no             #是否使用gexec
 send_metadata_interval = 0
} cluster {
 name = "Cluster1"     #本节点属于哪个cluster
 owner = "junfeng"     #谁是该节点的所有者
 latlong = "unspecified"   #在地球上的坐标,经度、纬度?
 url = "unspecified"
} host {
 location = "unspecified"  
} udp_send_channel {       #udp包的发送通道
 mcast_join = 239.2.11.71   #多播,工作在239.2.11.71通道下。如果使用单播模式,则要写host = host1,单播模式下也可以配置多个udp_send_channel
 port = 8649            #监听端口
 ttl = 1
} udp_recv_channel {           #接收udp包配置
 mcast_join = 239.2.11.71   #同样工作在239.2.11.71通道下
 port = 8649                #监听端口
 bind = 239.2.11.71         #绑定
} tcp_accept_channel {
 port = 8649               #通过tcp协议监听的端口,远端可以通过链接8649端口得到监控数据
}

4.配置gmond web

gmond-web 是用php写的,所以需要web+php进行解析

4.1 下载软件包

wget http://heanet.dl.sourceforge.net/project/ganglia/ganglia-web/3.5.10/ganglia-web-3.5.10.tar.gz

4.2 配置

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

ganglia分布式监控部署的更多相关文章

  1. zabbix分布式监控部署--技术流ken

    前言 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...

  2. zabbix proxy分布式监控部署

    一.proxy分布式监控介绍 来源于zabbix官网: https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitorin ...

  3. 017-zabbix_proxy分布式监控部署

    一.proxy分布式监控介绍 来源于zabbix官网: https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitorin ...

  4. 分布式监控数据采集系统Ganglia实战

    一.什么是Ganglia 对于这个工具,大家可能比较陌生,但是它功能非常强大,如果我们想收集所有服务器.网络设备的数据,那么ganglia绝对是首选,在深入学习之前,还是先从基础概念了解起吧! Gan ...

  5. zabbix分布式监控的部署与win被控端

    zabbix是一个分布式监视,管理系统,基于server-clinet架构,可用于监视各种网络服务,服务器和网络机器等状态. server端基于C语言,web管理端Frontend则是基于PHPA制作 ...

  6. Ganglia+Nagios监控系统

    第1章 简介 ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU.内存. ...

  7. 大众点评开源分布式监控平台 CAT 深度剖析

    一.CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解.CAT不仅增强了CAL系统核心模型,还添加了更丰富的报 ...

  8. zabbix监控-部署(一)

    zabbix之自动化监控-部署篇(一) 标签(空格分隔): linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 浅谈监控 监控命令 查看硬件的温度/风扇转 ...

  9. NetCore实践篇:分布式监控客户端ZipkinTracer从入门到放弃之路

    前言 本文紧接上篇.Net架构篇:思考如何设计一款实用的分布式监控系统?,上篇仅仅是个思考篇,跟本文没有太大的关系.但有思考,结合现有的开源组件,实践起来更易理解起来,所以看本文之前,应该先看下上篇博 ...

随机推荐

  1. Detour3.0 win7 64bit下的安装

    最近在做API hook相关的东西,用了inline hook后感觉不错,但是查找资料发现inline hook并不稳定 inline hook 的原理是在系统访问一个函数的时候先替换原函数入口处的内 ...

  2. 动态ip、静态ip、pppoe拨号的区别

    pppoe拨号 pppoe拨号上网,又叫做ADSL拨号上网.宽带拨号上网.指现在有很多我的E家用户,送的无线猫,阉割了PPPOE拨号功能,必须要从电脑上拨号才能上网.还有大街上的WIFI热点也很多,如 ...

  3. C#语言

    封面 书名 版权 前言 目录 第Ⅰ部分 C#语言 第1章  NET体系结构 1.1  C#与.NET的关系 1.2  公共语言运行库 1.2.1  平台无关性 1.2.2  提高性能 1.2.3  语 ...

  4. Spark GraphX实例(3)

    7. 图的聚合操作 图的聚合操作主要的方法有: (1) Graph.mapReduceTriplets():该方法有一个mapFunc和一个reduceFunc,mapFunc对图中的每一个EdgeT ...

  5. PL/SQL学习笔记之变量、常量、字面量、字符串

    一:变量 1:变量声明与初始化 variable_name datatype(约束) [:= | DEFAULT 初始值] 如: sales , ); name ); a ; greetings ) ...

  6. 〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻译,导致系统切换语言后崩溃)

    Android项目开发过程中,容易出现缺少对应中英文翻译的情况,这个Python脚本是用于检查字符串是否缺少了对应的翻译 #!/usr/bin/env python # encoding: utf-8 ...

  7. sublime python3中读取和写入文件时如何解决编码问题

    # -*- coding: utf-8 -*- #分析用户身份审核信息 #python 3.5 #xiaodeng #http://apistore.baidu.com/apiworks/servic ...

  8. <转>vmp3.0.9全保护拆分解析

    以下为了避免插件干扰,故采用x64dbg原版进行分析. 首先我通过检测到调试器的弹窗进行栈回溯,定位到该关键点:CALL eax   由于才接触Vmp,所以是把各个保护拆分开来进行的分析,会比较简单一 ...

  9. argparse - 命令行选项与参数解析

    argparse模块作为optparse的一个替代被添加到Python2.7.argparse的实现支持一些不易于添加到optparse以及要求向后不兼容API变化的特性,因此以一个新模块添加到标准库 ...

  10. linux每日命令(35):grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...