参考 flume的http监控参数说明

普通的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

Flume的监控参数的更多相关文章

  1. Flume(4)-监控模型

    一. 监控端口数据 首先启动Flume任务,监控本机44444端口,服务端: 然后通过netcat工具向本机44444端口发送消息,客户端: 最后Flume将监听的数据实时显示在控制台. 1. 安装n ...

  2. Flume实时监控目录sink到hdfs,再用sparkStreaming监控hdfs的这个目录,对数据进行计算

    目标:Flume实时监控目录sink到hdfs,再用sparkStreaming监控hdfs的这个目录,对数据进行计算 1.flume的配置,配置spoolDirSource_hdfsSink.pro ...

  3. oracle监控参数

    Sar –u 检查CPU的繁忙程度列说明Usr用户模式下cpu运行所占的百分比Sys系统模式下cpu运行所占的百分比Wio因为有进程等待块I/O而使cpu处于闲置状态所占百分比IdleCpu为闲置状态 ...

  4. 第1节 flume:7、flume的监控文件夹,实现数据收集到hdfs上

    1.2.2 采集案例 1.采集目录到HDFS 需求分析 结构示意图: 采集需求:某服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就需要把文件采集到HDFS中去 根据需求,首先定义以下3大 ...

  5. zabbix 用户自定义监控参数添加

    1. item  key的添加 key可以带参数,该参数为一个数组列表,可以同时传递多个参数,key的格式如下 key -- [ parameters] -- 例如: vfs.fs.size[/] v ...

  6. Flume 知识点(六)Flume 的监控

    简述 使用 Flume 实时收集日志的过程中,尽管有事务机制保证数据不丢失,但仍然需要时刻关注 Source.Channel.Sink 之间的消息传输是否正常. 比如,SouceChannel 传输了 ...

  7. Zabbix CPU utilization监控参数

    工作中查看Zabbix linux 监控项的时候对linux 监控的cpu使用的各个参数没怎么明白,特意查看了下资料 Zabbix linux模板下的CPU utilization是自带的监控Linu ...

  8. mysql服务器监控参数总结

    1)主机健康监控:网络通信.软硬件错误.磁盘空间.内存使用 2)mysql健康监控: 服务端口(telnet尝试连接).mysqld和mysqld_safe进程.errorlog和复制状态 3)主机性 ...

  9. Fiddler系统监控参数解读

    转自:https://blog.csdn.net/txj236/article/details/38872855 在对系统监控的过程中,发现ClientConnected和ClientBeginReq ...

随机推荐

  1. CSS-三角形及其原理

    CSS中三角形在网页中比较常见,以前是图片,不过现在基本上都是通过CSS可以完成,实现比较简单,我们可以看一组简单的三角形效果: 其实实现起来比较简单,通过空div然后设置宽高为0,之后可以四周bor ...

  2. C#编程 - 交通灯模拟

    程序写的有点繁杂,但大体功能出来的! 效果图: using System; using System.Collections.Generic; using System.Linq; using Sys ...

  3. Java中类加载过程和对象创建过程

    类加载过程: 1, JVM会先去方法区中找有没有相应类的.class存在.如果有,就直接使用:如果没有,则把相关类的.class加载到方法区 2, 在.class加载到方法区时,会分为两部分加载:先加 ...

  4. 64位ubuntu搭建android开发环境问题解决方案

    安装32位库支持,删除eclipse 的配置文件和.android目录(测试环境ubuntu 14.04) sudo apt-get install libc6-i386 lib32stdc++6 l ...

  5. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第4章编程练习6

    #include <iostream>using namespace std;struct CandyBar{ char kind[20]; float weight; int calor ...

  6. 让公式在网页传播——mathJAX

    让公式在网页传播--mathJAX 对于学生党而言,写公式最好的工具是LaTeX,但LaTeX把公式展示到互联网上就有些困难,而使用截图又不太雅观.幸运的是,mathJAX引擎可以在浏览器中解析渲染数 ...

  7. 在C#中,Json的序列化和反序列化的几种方式总结 转载

    转载自  https://www.cnblogs.com/caofangsheng/p/5687994.html    谢谢 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据 ...

  8. Centos-Mariadb(新版mysql)无法远程连接

    实际上之前有别人安装过了,对于这种交接的工作最难做,也就是沟通问题.我需要解决的问题是远程连接的问题,百度了一下后,被各路大佬绕的稀里糊涂,耗费了3 个小时 对于即将提交项目的我们来说,简直头疼.表示 ...

  9. angular-环境搭建

    angular环境搭建(angular-cli) 1.安装nodejs http://nodejs.cn/download/ 2.Angular命令行工具安装 npm install -g @angu ...

  10. 移动端适配问题px->rem方法

    移动端web页面适配问题 1.引入插件 github地址:https://github.com/re54k/mobileweb-utilities/blob/master/util/mobile-ut ...