Flume监控之Ganglia

Tamara ·
更新时间:2024-11-13
· 729 次阅读

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

2. 安装其他依赖

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

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

2). 安装rpm的三大组件

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

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

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

修改为如下:

# Ganglia monitoring system php web frontend Alias /ganglia /usr/share/ganglia Order deny,allow #Deny from all Allow from all # Allow from 127.0.0.1(只能通过本地访问) # Allow from ::1 # Allow from .example.com

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

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

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

data_source "cos100" cos100

或:

data_source "cos100" 192.168.xx.x

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

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

在文件中寻找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 }

7. 修改selinux配置

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

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

[root@cos100 flume]# sudo setenforce 0

8. 启动ganglia

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

9. 网页上浏览Ganglia页面

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

[root@cos100 flume]# sudo chmod -R 777 /var/lib/ganglia 二. 使用Ganglia监控Flume

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

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

在文件中增加如下内容:

JAVA_OPTS="-Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=cos100:8649 -Xms100m -Xmx200m"

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

此时即可在网页查看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

服务端监控页面显示:

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

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

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

完毕!


作者:不将就的cris



ganglia flume

需要 登录 后方可回复, 如果你还没有账号请 注册新账号