Flume主要由以下几种监控方式:
JMX监控
JMX高爆可以在flume-env.sh文件修改JAVA_OPTS环境变量,如下:
export JAVA_OPTS=”-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=5445 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false”
Ganglia监控
Flume也可以报告metrics到Ganglia 3或者是Ganglia 3.1的metanodes。要将metrics报告到Ganglia,必须在启动的时候就支持Flume Agent。这个Flume Agent使用flume.monitoring作为前缀,通过下面的参数启动。当然也可以在flume-env.sh中设置:
属性
默认
描述
type
|
– |
组件名:ganglia
|
hosts
|
– |
Ganglia服务器的hostname:port列表,有逗号分隔。
|
pollFrequency |
60 |
多少秒向Ganglia发一次数据。 |
isGanglia3 |
false |
刚的服务器是否是3,默认情况下是发Ganglia3.1的格式。 |
如果要支持Ganglia,可以通过如下命令启动。
$ bin/flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=com.example:1234,com.example2:5455
JSON监控
Flume可以通过JSON形式报告metrics,启用JSON形式,Flume需要配置一个端口。如下是采用JSON格式报告metrics的格式:
{
"typeName1.componentName1" : {"metric1" : "metricValue1", "metric2" : "metricValue2"},
"typeName2.componentName2" : {"metric3" : "metricValue3", "metric4" : "metricValue4"}
}
例如:{
"CHANNEL.fileChannel":{"EventPutSuccessCount":"468085",
"Type":"CHANNEL",
"StopTime":"0",
"EventPutAttemptCount":"468086",
"ChannelSize":"233428",
"StartTime":"1344882233070",
"EventTakeSuccessCount":"458200",
"ChannelCapacity":"600000",
"EventTakeAttemptCount":"458288"},
"CHANNEL.memChannel":{"EventPutSuccessCount":"22948908",
"Type":"CHANNEL",
"StopTime":"0",
"EventPutAttemptCount":"22948908",
"ChannelSize":"5",
"StartTime":"1344882209413",
"EventTakeSuccessCount":"22948900",
"ChannelCapacity":"100",
"EventTakeAttemptCount":"22948908"}
}
属性名
默认
描述
type |
– |
组件的名称:http
|
port |
41414 |
启动服务的端口 |
可以用如下命令启动Flume:
$ bin/flume-ng agent --conf-file example.conf --name a1 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545
自定义监控
自定义的监控需要实现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已经实现的类,如下图:
根据上面的规范我么就可以开发自定义的监控组件了。
分享到:
相关推荐
Apache Flume 是一个分布式、可靠且可用的服务,用于有效地收集、聚合和移动大量日志数据。这个名为 "apache-flume-1.7.0-bin.tar....在实际应用中,Flume 经常用于大数据环境,如日志分析、事件监控和数据集成任务。
Flume 的主要特点体现在以下几个方面: 1. **可靠性**:Flume 提供了三种不同的可靠性级别,以确保数据在传输过程中的完整性。end-to-end 策略保证了数据的持久化存储,即使节点故障也能重新发送;store-on-failure...
Flume 的核心架构由以下几个关键组件构成: 1. **Agent**: 负责数据的收集工作。每个 Agent 包含 Source、Channel 和 Sink 组件。 - **Source**:负责接收或收集数据。 - **Channel**:作为 Source 和 Sink 之间...
Flume提供了多种预定义的source类型,例如简单文件source,允许监控和读取指定目录下的新文件,或者Avro source,用于与其他Avro兼容的系统进行交互。 2. Channel(通道):是Flume内部的数据缓冲区,负责临时存储...
在企业面试中,关于Flume的问题主要集中在以下几个方面: - **4.1 原理理解**: 深入理解Flume的工作原理,包括各个组件的具体作用及其交互过程。 - **4.2 实际应用**: 描述Flume在实际项目中的应用场景,如何根据...
监控代码埋点是一种通过在应用程序中添加埋点代码来收集监控数据的方法。其优点是一方面使用者控制精准,可以非常精确地选择什么时候发送数据;同时使用者可以比较方便地设置自定义属性、自定义事件,传递比较丰富的...
Apache Flume 是一种高效、可靠且可扩展的数据采集工具,尤其适合处理和移动大规模的日志数据。本文将深入探讨 Flume 在大数据采集中的作用,以及如何使用 Flume 进行数据加工。 Flume 是 Apache Hadoop 生态系统的...
通过学习 Apache Flume,你可以掌握一种高效的数据采集和处理方法,这对于大数据分析、日志管理和实时监控等场景具有重要的意义。在实践中,了解如何配置和优化 Flume 拓扑,以及如何处理不同的数据源和目标,将有助...
总的来说,Flume提供了一种高效、灵活的日志采集解决方案,通过合理的架构设计和配置,可以构建出高可用、可扩展的海量日志采集系统,满足企业对大数据实时分析的需求。对于学习者来说,深入理解Flume的工作原理和...
它提供了一种可靠且高性能的方式,来将日志数据从多个源传输到各种目的地,如HDFS、数据库或消息队列等。Flume的核心组件包括Source、Channel和Sink,它们构成了数据流的三个关键部分: - **Source**:负责接收或...
Spool Directory Source是Flume的一种数据摄入机制,它会监控一个指定的目录,并将新出现的文件作为事件流进行处理。一旦文件被读取,它会被移动到另一个“已完成”目录,以避免重复处理。这种源非常适合于从简单的...
* 日志采集模块 Flume Agent 的目录监控具体实现:包括日志数据的目录监控和文件监控等。 * 日志采集模块 Flume Agent 的数据保护机制:包括日志数据的加密和访问控制等。 九、结论 基于 Flume 的海量日志统一分析...
4. **监控和日志**:定期检查Flume的日志和监控指标,以便及时发现和解决问题。 总的来说,`flume-pg-sink`是Flume集成PostgreSQL的强大工具,它使得实时数据流可以无缝地流入关系型数据库,满足了对数据持久化和...
在这个系统中,Flume扮演着日志收集者的角色,持续监控和汇集来自不同源的日志信息。 3. **Apache Kafka**:Kafka是一种高吞吐量的分布式发布订阅消息系统。在这个系统中,Kafka作为数据缓冲区,接收Flume传递过来...
6. Flume中的通道选择器(ChannelSelector)主要分为两种模式:Replicating Channel Selector(复制模式)和Multiplexing Channel Selector(多路复用模式)。复制模式将事件复制到所有通道,确保高可用性和数据冗余...
针对这些问题,姚捷探讨了行业内的几种解决方案,包括淘宝的EagleEye、点评与携程的CAT、新浪微博的Watchman、Twitter的Zipkin以及听云***r和Newrelic。每种方案都有其特点,但唯品会最终选择自建监控平台,这是为了...
本文主要分析了几种主流的大数据采集平台,包括Apache Flume、Fluentd、Logstash、Chukwa、Scribe和Splunk Forwarder,关注其在高可靠性、高性能和高扩展性方面的实现。 1、Apache Flume Apache Flume是一个由...