Flume主要有以下集中监控方式:

1.JMX监控

配置 {$FLUME_HOME}/flume-env.sh

cd $FLUME_HOME vi flume-env.sh

JAVA_OPTS="-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=192.168.16.214"

之后启动flume

bin/flume-ng agent -c . -f conf/exec-tail.conf -n a1 -Dflume.root.logger=INFO,console

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

jconsole

连接jmx端口.jpg

jmx监控控制台.jpg

可以看到flume应用所使用的内存、线程、类、CPU等使用情况。

2.HTTP监控

Flume可以通过HTTP以JSON形式报告metrics,启用HTTP监控,Flume需要配置一个端口。

配置一个简单的打印conf文件

vi conf/exec-tail.conf

a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.channels = c1
a1.sources.r1.command = tail -F /tmp/test
# 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

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

bin/flume-ng agent -c . -f conf/exec-tail.conf -n a1 -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=1234

查看metric监控

用浏览器或者GET方式打开
http://ip:1234/metrics

获得数据如下:

http监控metric.jpg

CURL方式:

http://localhost:1234/metrics 2>/dev/null|sed -e 's/([,])\s*/\1\n/g' -e 's/[{}]/\n/g' -e 's/[“,]//g'

获得数据如下:

"CHANNEL.c1":
"ChannelCapacity":"1000"
"ChannelFillPercentage":"0.0"
"Type":"CHANNEL"
"EventTakeSuccessCount":"10"
"ChannelSize":"0"
"EventTakeAttemptCount":"12"
"StartTime":"1476166839656"
"EventPutAttemptCount":"10"
"EventPutSuccessCount":"10"
"StopTime":"0""SOURCE.r1":
"EventReceivedCount":"10"
"AppendBatchAcceptedCount":"0"
"Type":"SOURCE"
"AppendReceivedCount":"0"
"EventAcceptedCount":"10"
"StartTime":"1476166840159"
"AppendAcceptedCount":"0"
"OpenConnectionCount":"0"
"AppendBatchReceivedCount":"0"
"StopTime":"0"

3.Ganglia监控

Flume也可以报告metrics到Ganglia 3或者是Ganglia 3.1的metanodes。要将metrics报告到Ganglia,必须在启动的时候就支持Flume Agent。这个Flume Agent使用flume.monitoring作为前缀,通过下面的参数启动。当然也可以在flume-env.sh中设置:

如果要支持Ganglia,可以通过如下命令启动。

bin/flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=com.example:1234,com.example2:5455

4.自定义监控

自定义的监控需要实现org.apache.flume.instrumentation.MonitorService
接口。例如有一个HTTP的监控类叫HttpReporting,我可以通过如下方式启动这个监控。

bin/flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=com.example.reporting.HTTPReporting -Dflume.monitoring.node=com.example:332

报告metrics我们也可以自定义组件,不过一定要继承org.apache.flume.instrumentation.MonitoredCounterGroup
虚拟类。Flume已经实现的类,如下图:

根据上面的规范就可以开发自定义的监控组件了。


作者:水他链接:http://www.jianshu.com/p/09493efe0fb8來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Flume监控几种方式相关推荐

  1. angularjs通过ng-change和watch两种方式实现对表单输入改变的监控

    angularjs通过ng-change和watch两种方式实现对表单输入改变的监控 直接上练习代码 <!DOCTYPE html> <html xmlns="http:/ ...

  2. 网络监控系统安装的4种方式,安防必备

    现如今,随着人们安防意识的提高,监控从业人员也越来越多.对于刚刚加入这个行业的新人来讲,可能首先要从最基层的监控设备安装做起.只有在实践中不断积累经验技术,才有可能独当一面.快速成长.作为一名新手,网 ...

  3. 为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控。

    快速阅读 为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控. 我们知道sql server 中有个工具叫sql profile ,可以实时监控sql server中 执行的sql 语句,以 ...

  4. 【前端监控系统】埋点数据上报的3种方式

    前言 首先,我们先对前端监控做一些简单的描述: 前端监控的目的? 提升用户体验 更快的发现发现异常.定位异常.解决异常 了解业务数据,指导产品升级--数据驱动的思想 它指的是通过一定的手段来获取用户行 ...

  5. flume系列之:flume基于kafka.topics和kafka.topics.regex两种方式匹配Kafka Topic

    flume系列之:flume基于kafka.topics和kafka.topics.regex两种方式匹配Kafka Topic 一.flume基于kafka.topics匹配Kafka Topic ...

  6. 摄像头poe供电原理_一篇图文,详解监控供电的几种方式选择

    独立供电的好处 独立供电是指在每个摄像机前端安装独立的安防监控电源,此安防监控电源只为一个摄像机提供电力供应. 独立供电原理图如下: 1. 检修简单,更换电源简易 因为每个摄像机都有独立的安防监控电源 ...

  7. Druid SQL监控的几种方式

    Druid SQL监控的几种方式 1.监控页面 2.JMX 3.shell脚本 4.直接调用本地MbeanServer Mbean操作 1.监控页面 2.JMX <servlet>< ...

  8. 另外一种方式:用USB摄像头实现网络监控

    另外一种方式:用USB摄像头实现网络监控 joyhope 5 主题 0 好友 300 积分 二级RPier 该用户从未签到 银元 75 块 声望 2 点 票子 178 张 精华 0   发消息 沙发 ...

  9. sass文件编译的三种方式【舒】

    [舒:]sass文件编译的三种方式 方式一: 1.webstorm打开evtGulp项目或者mcake-activity项目 2.中,开启gulp->default/develop,启动watc ...

最新文章

  1. Atitit r2017 r6 doc list on home ntpc.docx
  2. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-第9章-时滞系统的分析和综合
  3. java内存分析_java内存分析总结
  4. 设置ALV不同行的小数点位数
  5. Redis中的可用性保证之Sentinel故障转移
  6. P2900-[USACO08MAR]Land AcquisitionG【斜率优化】
  7. group by 与 order by
  8. 2017,人工智能技术如何让中国开发者“倾心”又“上火”!
  9. 提示未检测到 oracle,Oracle RAC [INS-40406] 未检测到现有的 Oracle Grid Infrastructure 软件...
  10. Smart ORM v0.4.1开发计划
  11. 如何提高go代码覆盖率_如何提高代码质量?
  12. 黄光裕出来后,首先会做这三件事(转)
  13. 如何在pe里加载阵列卡驱动_PE添加RAID驱动的方法
  14. java实现微信H5支付和回调的Demo源码
  15. SpringbootJPA分页 PageRequest过时
  16. 友盟分享——微信、腾讯微博、新浪微博分享失败原因分析
  17. PS 滤镜——扩散特效, 毛玻璃 效果
  18. 【题解】【AcWing】1526. 洗牌机
  19. 【转】Java中斜杠和反斜杠的替换
  20. cocos2dx图片闪亮_SassDoc 2-闪亮的流章鱼出来了!

热门文章

  1. IBatisNet XML 特殊配置
  2. 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)
  3. libuv 原理_Nodejs的运行原理-libuv篇
  4. 今晚直播预告丨Oracle 19c避雷经验分享
  5. MySQL主从延时这么长,怎么优化?
  6. 1024 程序员节:给 DBA 们的福音
  7. SQL查询提速秘诀,避免锁死数据库的数据库代码
  8. 资深Linux 系统管理员常用的15个很好用的Cron工作示例
  9. 从原理到实践,手把手带你轻松get数仓双集群容灾
  10. 如何保障企业数据资产的全生命周期安全?看这篇就够了