Flume监控之Ganglia

Ganglia简介

Ganglia是UC Berkeley发起的一个开源集群监视可视化工具,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
其详细介绍和工作原理请参考百度百科,地址:https://baike.baidu.com/item/Ganglia/1283012?fr=aladdin

一. Ganglia的安装与部署

1. 安装httpd服务与php

[root@cos100 flume]# sudo yum -y install httpd php
  • 1

2. 安装其他依赖

[root@cos100 flume]# sudo yum -y install rrdtool perl-rrdtool rrdtool-devel apr-devel
  • 1

3. 安装Ganglia

1). 导入rpm源

[root@cos100 flume]# sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  • 1

2). 安装rpm的三大组件

[root@cos100 flume]# sudo yum -y install ganglia-gmetad ganglia-web ganglia-gmond
  • 1

4. 修改配置文件ganglia.conf(修改前端访问权限)

[root@cos100 flume]# sudo vim /etc/httpd/conf.d/ganglia.conf
  • 1

修改为如下:

# Ganglia monitoring system php web frontend
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
  Order deny,allow
  #Deny from all
  Allow from all
  # Allow from 127.0.0.1(只能通过本地访问)
  # Allow from ::1
  # Allow from .example.com
</Location>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5. 修改配置文件gmetad.conf(修改data_source)

[root@cos100 flume]# sudo vim /etc/ganglia/gmetad.conf
  • 1

修改为如下:
其中"cos100"为本地主机名

data_source "cos100" cos100
  • 1

或:

data_source "cos100" 192.168.xx.x
  • 1

6. 修改配置文件gmond.conf(修改监控的数据源)

[root@cos100 flume]# sudo vim /etc/ganglia/gmond.conf
  • 1

在文件中寻找cluster{},udp_send_channel{},udp_recv_channel{}三个组并修改如下:

cluster {
  # 本机主机名
  name = "cos100"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
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
  # 本机IP
  host = 192.168.xx.x
  port = 8649
  ttl = 1
}
udp_recv_channel {
  # mcast_join = 239.2.11.71
  port = 8649
  # 本机IP
  bind = 192.168.xx.x
  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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

7. 修改selinux配置

[root@cos100 flume]# sudo vim /etc/selinux/config
  • 1

设置其中的SELINUX=disabled从而关闭Selinux。
设置完毕需要重启虚拟机,如果暂时不想重启,则必须使之临时生效

[root@cos100 flume]# sudo setenforce 0
  • 1

8. 启动ganglia

[root@cos100 flume]# sudo service httpd start
  • 1
[root@cos100 flume]# sudo service gmetad start
  • 1
[root@cos100 flume]# sudo service gmond start
  • 1

9. 网页上浏览Ganglia页面

打开网页,输入网址:http://cos100/ganglia即可显示如下页面:
在这里插入图片描述注意:如果完成如上配置,访问网页显示权限不足,如下图所示:
在这里插入图片描述
此情况为/var/lib/ganglia目录的权限不足问题导致,授予权限即可

[root@cos100 flume]# sudo chmod -R 777 /var/lib/ganglia
  • 1

二. 使用Ganglia监控Flume

1. 修改Flume配置文件flume-env.sh

[root@cos100 flume]# vim conf/flume-env.sh
  • 1

在文件中增加如下内容:

JAVA_OPTS="-Dflume.monitoring.type=ganglia
-Dflume.monitoring.hosts=cos100:8649
-Xms100m
-Xmx200m"
  • 1
  • 2
  • 3
  • 4

2. 启动Flume任务

[root@cos100 flume]# bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-netcat-logger.conf -Dflume.root.logger==INFO,console -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=cos100:8649
  • 1

此时即可在网页查看Flume的状态,如下红色框选部分
1). Grid下拉框选择Source为本机主机名
2). 点击选择进入新的网页后继续选择Node为本机主机名
3). 点击选择进入网页后在如下右侧框选下拉框部分选择Metric Group为flume
在这里插入图片描述
选择完成后即显示Flume的状态页面
在这里插入图片描述
此时,Flume便被Ganglia实时监控。

3. 发送数据观察Ganglia监测图

新开一个客户端窗口,通过netcat实时生产数据

[root@cos100 flume]# nc localhost 44444
hello world 
OK
  • 1
  • 2
  • 3

服务端监控页面显示:

2020-02-18 04:59:02,343 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 20             hello world  
  • 1

网页Flume监控页面显示:
在这里插入图片描述
如下为各个监控页面的具体说明:

图表名称具体说明
EventPutAttemptCountsource尝试写入channel的事件总数量
EventPutSuccessCount成功写入channel且提交的事件总数量
EventTakeAttemptCountsink尝试从channel拉取事件的总数量。这不意味着每次事件都被返回,因为sink拉取的时候channel可能没有任何数据。
EventTakeSuccessCountsink成功读取的事件的总数量
StartTimechannel启动的时间(毫秒)
StopTimechannel停止的时间(毫秒)
ChannelSize目前channel中事件的总数量
ChannelFillPercentagechannel占用百分比
ChannelCapacitychannel的容量

完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值