在使用Flume实时收集日志的过程中,虽然有事务机制保证数据不丢失,但仍需要时刻关注Source、Channel、Sink之间的消息传输是否正常。比如,Source给Channel传输了多少消息,Sink从Channel中获取多少消息,Source接收与Sink下沉的消息量(即Channel中堆积的消息量)是否偏差过大,等等。
Flume为我们提供了Monitor机制(见http://flume.apache.org/FlumeUserGuide.html#monitoring),通过Reporting的方式,把过程中的Counter都打印出来。一共有4中Reporting方式(即JMX Reporting、Ganglia Reporting、JSON Reporting、Custom Reporting),这里以最简单的JSON Reporting为例。
在启动Flume Agent时,需增加两个参数:
bin/flume-ng agent --conf conf --conf-file conf/flume-agent.conf --name logger -Dflume.monitoring.type=http -Dflume.monitoring.port=34545 -Dflume.root.logger=INFO,console
# nohup后台启动
nohup bin/flume-ng agent --conf conf --conf-file conf/flume-agent.conf --name logger -Dflume.monitoring.type=http -Dflume.mon