博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flume的监控参数
阅读量:4543 次
发布时间:2019-06-08

本文共 2995 字,大约阅读时间需要 9 分钟。

参考

 

普通的flume启动命令

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

日志信息在终端输出,只有去掉这个参数,日志才能在log4j和logback中输出

-Dflume.root.logger=INFO,console

如果要加上http监控的话

bin/flume-ng agent -c conf -f conf/flume-conf.properties -n agent -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=34545

 即加上参数,flume.monitoring.type=http 指定了Reporting的方式为http,flume.monitoring.port 指定了http服务的端口号

-Dflume.monitoring.type=http -Dflume.monitoring.port=34545

 访问

http://localhost:34545/metrics

 

参数说明:

(1)、SOURCE

SOURCE作为flume的数据源组件,所有收集日志的第一个到达的地方,它的监控信息非常重要。通过监控我们能够得到的监控数据有这些:

KafkaEventGetTimer

AppendBatchAcceptedCount(追加到channel中的批数量) 速率

EventAcceptedCount(成功放入channel的event数量) 速率

AppendReceivedCount(source追加目前收到的数量) 速率

StartTime(组件开始时间)

AppendBatchReceivedCount(source端刚刚追加的批数量) 速率

KafkaCommitTimer

EventReceivedCount(source端成功收到的event数量) 速率

Type(组件类型)

AppendAcceptedCount(放入channel的event数量) 速率

OpenConnectionCount(打开的连接数)

KafkaEmptyCount

StopTime(组件停止时间)

当然这些只是flume监控源码中已经自带的监控元素,如果你需要其他的监控信息,例如ip、端口号等,有两种方法,第一个,修改监控源码,添加你需要的监控元素,这种方法只是在原有代码基础上,添加一些满足自己需求的监控元素,比较简单,但灵活性不足;第二个就是自定义监控组件,这种方法是在原有监控框架中,自己实现自己的监控组件,这样可以达到完全满足自己需求,且灵活性很高。至于这两种方法如何操作,在后面Flume监控如何实现有讨论到。

同理CHANNEL、SINK这两个组件的监控也可以使用这两种方法来添加自己想要的监控元素。

(2)、CHANNEL

CHANNEL是flume的一个通道组件,对数据有一个缓存的作用。能够得到的数据:

ChannelCapacity(通道容量)

ChannelFillPercentage(通道使用比例)

Type(组件类型)

ChannelSize(目前在channel中的event数量)

EventTakeSuccessCount(从channel中成功取走的event数量) 速率

EventTakeAttemptCount(尝试从channel中取走event的次数) 速率

StartTime(组件开始时间)

EventPutAttemptCount(尝试放入将event放入channel的次数) 速率

EventPutSuccessCount(成功放入channel的event数量) 速率

StopTime(组件停止时间)

(3)、SINK

SINK是数据即将离开flume的最后一个组件,它从channel中取走数据,然后发送到缓存系统或者持久化数据库。能得到数据:

ConnectionCreatedCount(创建连接数) 速率

BatchCompleteCount(完成的批数量)  速率

BatchEmptyCount(批量取空的数量,空的批量的数量,如果数量很大表示souce写数据比sink清理数据慢速度慢很多) 速率

EventDrainSuccessCount(成功发送event的数量) 速率

StartTime(组件开始时间)

BatchUnderflowCount(正处于批量处理的batch数)等。  速率

ConnectionFailedCount(连接失败数) 速率

ConnectionClosedCount(关闭连接数量) 速率

Type(组件类型)

RollbackCount

EventDrainAttemptCount(尝试提交的event数量) 速率

KafkaEventSendTimer

StopTime(组件停止时间)

 

在实际生产环境中,由于数据量比较大(Kafka中导入200M左右的数据),Flume有时候会遇到下面oom问题

问题1

Exception in thread "PollableSourceRunner-KafkaSource-r1" java.lang.OutOfMemoryError: GC overhead limit exceeded

或者

Exception in thread "PollableSourceRunner-KafkaSource-r1" java.lang.OutOfMemoryError: Java heap space

 这是由于flume启动时的默认最大的堆内存大小是20M

解决方法:在flume的基础配置文件conf下的flume-env.sh中添加

export JAVA_OPTS="-Xms2048m -Xmx2048m -Xss256k -Xmn1g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit"

问题2

13:54:27.213 ERROR org.apache.flume.source.kafka.KafkaSource:317 - KafkaSource EXCEPTION, {}org.apache.flume.ChannelFullException: Space for commit to queue couldn't be acquired. Sinks are likely not keeping up with sources, or the buffer size is too tight

 flume的properties文件中添加

agent.channels.c1.capacity = 1000000 #改大一点agent.channels.c1.keep-alive = 60

 

转载于:https://www.cnblogs.com/tonglin0325/p/8963395.html

你可能感兴趣的文章
代码界的石器时代
查看>>
Buying Cheap And Stylish Nike Shoes in On-Line Wholesale Stores
查看>>
破解wifi时遇到rtl8187 - [phy1]SIOCSIFFLAGS: Name not unique on network
查看>>
C# 窗体间传值(综合版)
查看>>
关于地址跳转的参数
查看>>
linux每天一小步---find命令详解
查看>>
[VSTO系列]三、简单的UI设计/QQ联系人导出(下)
查看>>
Java 实现缓存,一个线程存,一个线程取
查看>>
Mongodb初探
查看>>
怎样安装虚拟机
查看>>
JQuery --- 第二期 (jQuery属性操作)
查看>>
(数组)Largest Rectangle in Histogram(栈解问题)
查看>>
关于IN-LIST迭代
查看>>
mobile响应式页面meta信息相关记录
查看>>
sublime 调试输出乱码-解决办法 (临时)
查看>>
codeforces 993 A
查看>>
gridview表头不生成<th>
查看>>
Jetty:部署到Jetty
查看>>
在XP上安装VS2002
查看>>
linux程序设计——网络信息(第十五章)
查看>>