ganglia安装 flume监控

Ganglia监控系统部署
本文详细介绍如何在两台机器上分别安装配置Ganglia监控系统的gmetad和gmond服务,实现集群监控,并提供了flume监控配置示例。

两台机器

 

192.168.147.72  gmetad gweb

192.168.150.140 gmond

 

==========安装【gmetad】机器==========

 

#查看EPEL源

rpm -qa | grep epel

 

#如果没有安装EPEL源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

 

#安装依赖

yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

 

#安装ganglia-gmetad 和 ganglia-web

yum search ganglia

yum install -y ganglia-gmetad.x86_64 ganglia-web.x86_64

yum install -y ganglia-gmond.x86_64

rpm -qa | grep ganglia

 

#配置gmetad

data_source "flumeDataSrc" 10 192.168.150.140:8650

data_source "meta_gmond" 10 192.168.147.72:8649

 

#修改ganglia-web Apache配置

vi /etc/httpd/conf.d/ganglia.conf

#文件内容Deny from all 为 allow from all

 

#设置开机自启

chkconfig --add gmetad

chkconfig --add httpd

 

#关闭防火墙

service iptables stop

#关闭SELINUX

vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;需要重启机器

可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问!但此方法只是一权宜之计。要想永久修改selinux设置,还是要使用第一种方法

 

#启动服务

service gmetad start

service httpd start

service gmond start

#验证是否启动成功

service gmetad status

service gmond status

 

#web查看

http://192.168.147.72/ganglia

 

 

==========安装【gmond】机器==========

 

#查看EPEL源

rpm -qa | grep epel

 

#如果没有安装EPEL源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

 

#安装依赖

yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

 

#安装监控节点的gmond,【gmetad】节点也可以安装一个,监控【gmetad】节点的参数

yum search ganglia

yum install -y ganglia-gmond.x86_64

 

#配置gmond

cluster {

  name = "flumeDataSrc"

  owner = "unspecified"

  latlong = "unspecified"

  url = "unspecified"

}

host {

  location = "unspecified"

}

udp_send_channel {

  #mcast_join = 239.2.11.71

  host=192.168.150.140

  port = 8650

  ttl = 1 

}   

udp_recv_channel {

  #mcast_join = 239.2.11.71

  port = 8650

  #bind = 239.2.11.71

  #retry_bind = true

  # Size of the UDP buffer. If you are handling lots of metrics you really

  # should bump it up to e.g. 10MB or even higher.

  # buffer = 10485760

}

tcp_accept_channel {

  port = 8650

  # If you want to gzip XML output

  gzip_output = no

}

 

#配置开机自启

chkconfig –add gmond

 

#启动服务

service gmond start

#验证是否启动成功

service gmond status

 

==========注意事项==========

 

RRD存储位置:/var/lib/ganglia/rrds

 

WEB工程位置:/usr/share/ganglia/

 

#如果出现有图没有数据的情况,检查是否两台机器时间不同步

#安装ntpdate

yum install ntpdate

#同步时间

ntpdate time.windows.com

 

==========flume监控配置==========

 

vim  conf/flume-env.sh

 

export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=192.168.150.140:8650"

 

### GangliaFlume的集成及其在监控系统中的应用 #### 集成背景 大规模分布式系统的监控对于确保服务稳定性和性能至关重要。Ganglia作为一种高效的集群监控工具,能够实时收集并展示节点状态数据[^2]。而Apache Flume则是一个高可靠、高性能的日志采集、聚合和传输系统,支持在日志系统中定制各类Source、Channel和Sink来实现复杂的数据流处理逻辑。 #### 数据流动机制 为了使这两个组件协同工作,在设计上可以考虑让Flume作为数据源(Source),负责捕获来自不同主机上的应用程序产生的各种事件或指标;接着通过配置合适的通道(Channel)将这些信息传递给目的地(Sink)[^3]。这里的目的地就是指运行着Ganglia gmond守护进程的服务端,它会接收到来自多个客户端发送过来的状态报告,并将其汇总到中央数据库里供后续分析使用。 #### 实现方案概述 具体来说,可以通过编写自定义插件的方式扩展Flume的功能,使其可以直接向Ganglia提交度量值。这通常涉及到开发一个新的sink类实例,该类实现了必要的接口以便于与其他模块交互。下面给出了一段简化版Python脚本用于说明如何创建这样一个简单的sink: ```python from flume import Source, Channel, Sink class GangliaSink(Sink): def __init__(self, collector_host='localhost', port=8649): super().__init__() self.collector_host = collector_host self.port = port def process(self, event): # 假设event包含了要上报给ganglia的信息 message = str(event) try: # 这里应该有实际连接gmond并将message发送出去的操作 pass except Exception as e: print(f"Failed to send data to ganglia: {e}") ``` 上述代码片段仅提供了一个框架性的指导思路,具体的实现细节还需要依据实际情况调整优化。此外,考虑到安全性和效率等因素的影响,在生产环境中部署前应当充分测试整个链路的有效性以及稳定性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值