Flume数据流监控--Ganglia

前言:Ganglia监控Flume比较鸡肋,花里花哨,页面也不好看,确实监控不到什么内容,因为根据Flume的架构原理,Flume是不可能丢失数据的,其内部有完善的事务机制,Source到Channel是事务性的,Channel到Sink是事务性的,因此这两个环节不会出现数据的丢失,唯一可能丢失数据的情况是Channel采用memoryChannel,agent宕机导致数据丢失,或者Channel存储数据已满,导致Source不再写入,未写入的数据丢失。

Flume不会丢失数据,但是有可能造成数据的重复,例如数据已经成功由Sink发出,但是没有接收到响应,Sink会再次发送数据,此时可能会导致数据的重复

唯一有点用的是看看channel的使用占比,从而判断flume使用状况。

一、Ganglia的安装与部署

Ganglia由gmond、gmetad和gweb三部分组成。

gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。

gmetad(Ganglia Meta Daemon)整合所有信息,并将其以RRD格式存储至磁盘的服务。

gweb(Ganglia Web)Ganglia可视化工具,gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。

1安装ganglia

(1)规划

MyLinux102:     web  gmetad gmod

MyLinux103:     gmod

MyLinux104:     gmod

(2)在102 103 104分别安装epel-release

[huawei001@MyLinux102 flume]$ sudo yum -y install epel-release

(3)在102 安装

[huawei001@MyLinux102 flume]$ sudo yum -y install ganglia-gmetad

[huawei001@MyLinux102 flume]$ sudo yum -y install ganglia-web

[huawei001@MyLinux102 flume]$ sudo yum -y install ganglia-gmond

(4)在103 和 104 安装

[huawei001@MyLinux102 flume]$ sudo yum -y install ganglia-gmond

2)在102修改配置文件/etc/httpd/conf.d/ganglia.conf

[huawei001@MyLinux102 flume]$ sudo vim /etc/httpd/conf.d/ganglia.conf

修改为红颜色的配置:

# Ganglia monitoring system php web frontend

#

 

Alias /ganglia /usr/share/ganglia

 

  # Require local

  # 通过windows访问ganglia,需要配置Linux对应的主机(windows)ip地址

    Require ip 192.168.202.1  

  # Require ip 10.1.2.3

  # Require host example.org

5)在102修改配置文件/etc/ganglia/gmetad.conf

[huawei001@MyLinux102 flume]$ sudo vim /etc/ganglia/gmetad.conf

修改为:

data_source "my cluster" MyLinux102

6)在102 103 104修改配置文件/etc/ganglia/gmond.conf

[huawei001@MyLinux102 flume]$ sudo vim /etc/ganglia/gmond.conf

修改为:

cluster {

  name = "my cluster"

  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

  # 数据发送给MyLinux102

  host = MyLinux102

  port = 8649

  ttl = 1

}

udp_recv_channel {

  # mcast_join = 239.2.11.71

  port = 8649

  # 接收来自任意连接的数据

  bind = 0.0.0.0

  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)在102修改配置文件/etc/selinux/config

[huawei001@MyLinux102 flume]$ sudo vim /etc/selinux/config

修改为:

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

尖叫提示:selinux本次生效关闭必须重启,如果此时不想重启,可以临时生效之:

[huawei001@MyLinux102 flume]$ sudo setenforce 0

8启动ganglia

(1)在102 103 104 启动

[huawei001@MyLinux102 flume]$ sudo systemctl  start gmond

(2)在102 启动

[huawei001@MyLinux102 flume]$ sudo systemctl start httpd

[huawei001@MyLinux102 flume]$ sudo systemctl start gmetad

9打开网页浏览ganglia页面

http://MyLinux102/ganglia

尖叫提示:如果完成以上操作依然出现权限不足错误,请修改/var/lib/ganglia目录的权限:

[huawei001@MyLinux102 flume]$ sudo chmod -R 777 /var/lib/ganglia

二、 操作Flume测试监控

1启动Flume任务

[huawei001@MyLinux102 flume]$ bin/flume-ng agent \

-c conf/ \

-n a1 \

-f datas/netcat-flume-logger.conf \

-Dflume.root.logger=INFO,console \

-Dflume.monitoring.type=ganglia \

-Dflume.monitoring.hosts=MyLinux102:8649

2发送数据观察ganglia监测图

[huawei001@MyLinux102 flume]$ nc localhost 44444

样式如图:

Flume数据流监控--Ganglia_第1张图片

 

图例说明:

字段(图表名称)

字段含义

EventPutAttemptCount

source尝试写入channel的事件总数量

EventPutSuccessCount

成功写入channel且提交的事件总数量

EventTakeAttemptCount

sink尝试从channel拉取事件的总数量。

EventTakeSuccessCount

sink成功读取的事件的总数量

StartTime

channel启动的时间(毫秒)

StopTime

channel停止的时间(毫秒)

ChannelSize

目前channel中事件的总数量

ChannelFillPercentage

channel占用百分比

ChannelCapacity

channel的容量

 

你可能感兴趣的:(flume,大数据)