Flume主要有以下几种监控方式:

 

1.JMX监控
配置 {$FLUME_HOME}/conf/flume-env.sh
cd $FLUME_HOME/conf
vi flume-env.sh

export JAVA_OPTS="-Xms500m -Xmx10240m -Dcom.sun.management.jmxremote \
    -Dcom.sun.management.jmxremote \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false \
    -Dcom.sun.management.jmxremote.port=54321 \
    -Dcom.sun.management.jmxremote.rmi.port=54322
    -Djava.rmi.server.hostname=10.202.76.218"

之后启动flume

bin/flume-ng agent --conf conf/ --name tj_rt_data --conf-file jobs/dir_console.conf -Dflume.root.logger=INFO,console

附:一个agent配置
cat dir_console.conf

#描述所有组件
tj_rt_data.sources = spooling-dir-src
tj_rt_data.channels = mem-channel1
tj_rt_data.sinks = console-sink2

#描述source
tj_rt_data.sources.spooling-dir-src.type = spooldir
tj_rt_data.sources.spooling-dir-src.spoolDir = /home/sfapp/tianjin/rt_src_path
tj_rt_data.sources.spooling-dir-src.fileHeader = true
tj_rt_data.sources.spooling-dir-src.fileHeaderKey = file
tj_rt_data.sources.spooling-dir-src.basenameHeader = true
tj_rt_data.sources.spooling-dir-src.basenameHeaderKey = basename
tj_rt_data.sources.spooling-dir-src.includePattern = (^bill.*\.txt)
tj_rt_data.sources.spooling-dir-src.ignorePattern = ([^ ]*\.tmp)|([^ ]*\.COMPLETED)
tj_rt_data.sources.spooling-dir-src.inputCharset = GBK
tj_rt_data.sources.spooling-dir-src.pollDelay = 5000
tj_rt_data.sources.spooling-dir-src.recursiveDirectorySearch = true
tj_rt_data.sources.spooling-dir-src.batchSize = 200
tj_rt_data.sources.spooling-dir-src.deserializer = LINE
tj_rt_data.sources.spooling-dir-src.deserializer.maxLineLength = 20480
tj_rt_data.sources.spooling-dir-src.deserializer.outputCharset = UTF-8
tj_rt_data.sources.spooling-dir-src.selector.type = replicating
tj_rt_data.sources.spooling-dir-src.interceptors = i1
tj_rt_data.sources.spooling-dir-src.interceptors.i1.type = regex_extractor
tj_rt_data.sources.spooling-dir-src.interceptors.i1.regex = ^.*\\$(apex|cae|dhl|ems|fedex|hto|sf|sto|tnt|ups|yto|yunda|zjs|zto|zyh)\\$.*$
tj_rt_data.sources.spooling-dir-src.interceptors.i1.serializers = s1
tj_rt_data.sources.spooling-dir-src.interceptors.i1.serializers.s1.type = org.apache.flume.interceptor.RegexExtractorInterceptorPassThroughSerializer
tj_rt_data.sources.spooling-dir-src.interceptors.i1.serializers.s1.name = src_company_code

#组织sinks
tj_rt_data.sinks.console-sink2.type = logger

#组织channel
tj_rt_data.channels.mem-channel1.type = memory
tj_rt_data.channels.mem-channel1.capacity = 20480
tj_rt_data.channels.mem-channel1.transactionCapacity = 2048

# 将source和sink绑定到channel
tj_rt_data.sources.spooling-dir-src.channels = mem-channel1
tj_rt_data.sinks.console-sink2.channel = mem-channel1

在图形界面的系统(windows、mac、linux图形)和jdk的环境下启动jconsole
jconsole

 连接jmx端口.jpg

 jmx监控控制台.jpg

 

可以看到flume应用所使用的内存、线程、类、CPU等使用情况。
MBean可以监控flume的各个组件运行情况。

 

 

2.HTTP监控

Flume可以通过HTTP以JSON形式报告metrics,启用HTTP监控,Flume需要配置一个端口。
配置一个简单的打印conf文件: dir_console.conf ,如第1章

 

启动flume并指定http监控形式和端口

bin/flume-ng agent --conf conf/ --name tj_rt_data --conf-file jobs/dir_console.conf -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=1234

查看metric监控
用浏览器或者GET方式打开
http://ip:1234/metrics
获得数据如下:

 

posted on 2023-04-28 18:32  架构艺术  阅读(226)  评论(0编辑  收藏  举报