一、flume安装
[woek@hadoop1 software]$ tar -zxf apache-flume-1.7.0-bin.tar.gz -C /opt/module/
[woek@hadoop1 module]$ mv apache-flume-1.7.0-bin flume
[woek@hadoop1 conf]$ mv flume-env.sh.template flume-env.sh
[woek@hadoop1 conf]$ vi flume-env.sh
# 更改JAVA_HOME
export JAVA_HOME=/opt/module/jdk
二、Ganglia安装和部署
1.安装阿里云yum源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
2.安装httpd服务与php
sudo yum -y install httpd php
3.安装其他依赖
sudo yum -y install rrdtool perl-rrdtool rrdtool-devel
sudo yum -y install apr-devel
4.安装ganglia
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo yum -y install ganglia-gmetad
sudo yum -y install ganglia-gmetad
sudo yum install -y ganglia-gmond
- Ganglia由gmond、gmetad和gweb三部分组成
gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。
gmetad(Ganglia Meta Daemon)整合所有信息,并将其以RRD格式存储至磁盘的服务。
gweb(Ganglia Web)Ganglia可视化工具,gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。
5.修改配置文件ganglia.conf
sudo vim /etc/httpd/conf.d/ganglia.conf
#
# 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>
6. 修改配置文件/etc/ganglia/gmetad.conf
sudo vim /etc/ganglia/gmetad.conf
data_source "hadoop1" 192.168.111.111
7.修改配置文件/etc/ganglia/gmond.conf
sudo vim /etc/ganglia/gmond.conf
cluster {
name = "hadoop1"
# mcast_join = 239.2.11.71
host = 192.168.1111.111
# mcast_join = 239.2.11.71
bind = 192.168.1111.111
}
8. 修改配置文件/etc/selinux/config
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本次生效关闭必须重启,如果此时不想重启,可以临时生效之
sudo setenforce 0
9.启动ganglia
sudo service httpd start
sudo service gmetad start
sudo service gmond start
10.打开网页浏览ganglia页面
http://192.168.111.111/ganglia
- 如果完成以上操作依然出现权限不足错误,请修改/var/lib/ganglia目录的权限:
sudo chmod -R 777 /var/lib/ganglia
11.操作Flume测试监控
11.1修改/opt/module/flume/conf目录下的flume-env.sh配置:
JAVA_OPTS="-Dflume.monitoring.type=ganglia
-Dflume.monitoring.hosts=192.168.111.111:8649
-Xms100m
-Xmx200m"
11.2创建Flume Agent配置文件flume-netcat-logger.conf
[woek@hadoop1 flume]$ mkdir job
[woek@hadoop1 flume]$ cd job/
[woek@hadoop1 flume]$ touch flume-netcat-logger.conf
[woek@hadoop1 flume]$ vim flume-netcat-logger.conf
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
11.3启动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=192.168.111.111:8649
11.4发送数据观察ganglia监测图
nc localhost 44444
- 监控名词解析
字段(图表名称) | 字段含义 |
---|---|
EventPutAttemptCount | source尝试写入channel的事件总数量 |
EventPutSuccessCount | 成功写入channel且提交的事件总数量 |
EventTakeAttemptCount | sink尝试从channel拉取事件的总数量。这不意味着每次事件都被返回,因为sink拉取的时候channel可能没有任何数据。 |
EventTakeSuccessCount | sink成功读取的事件的总数量 |
StartTime | channel启动的时间(毫秒) |
StopTime | channel停止的时间(毫秒) |
ChannelSize | 目前channel中事件的总数量 |
ChannelFillPercentage | channel占用百分比 |
ChannelCapacity | channel的容量 |