一.引言
需求:
将A服务器上的日志实时采集到B服务器。
技术选型:
exec source + memory channel + avro sink
avro source + memory channel + logger sink
设计图:
二.配置
-
服务器A(47.100.63.28)的配置:
目的是操作data下的date.log文件,以便于其他服务器监控到该服务器的操作日志信息,在A服务器中的Flume中的conf下创建名为exec-memory-avro.conf的配置文件,然后把以下配置放在配置文件中:exec-memory-avro.sources = exec-source exec-memory-avro.sinks = avro-sink exec-memory-avro.channels = memory-channel exec-memory-avro.sources.exec-source.type = exec exec-memory-avro.sources.exec-source.command = tail -F /root/data/data.log exec-memory-avro.sources.exec-source.shell = /bin/sh -c exec-memory-avro.sinks.avro-sink.type = avro exec-memory-avro.sinks.avro-sink.hostname = 47.100.176.47 指定监控的服务器 exec-memory-avro.sinks.avro-sink.port = 55555 指定监控的端口 exec-memory-avro.channels.memory-channel.type = memory exec-memory-avro.sources.exec-source.channels = memory-channel exec-memory-avro.sinks.avro-sink.channel = memory-channel
-
启动指令:
flume-ng agent --name exec-memory-avro --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/exec-memory-avro.conf -Dflume.root.logger=INFO,console
-
服务器B(47.100.176.47)的配置:
目的是监控服务器A,监控他是否进行操作,如果有操作,把操作日志打印在控制台中,同上一样,在Flume的conf下创建一个名为avro-memory-logger.conf的配置文件,在里面加上以下配置:avro-memory-logger.sources = avro-source avro-memory-logger.sinks = logger-sink avro-memory-logger.channels = memory-channel #监听端口 avro-memory-logger.sources.avro-source.type = avro avro-memory-logger.sources.avro-source.bind = 47.100.176.47 avro-memory-logger.sources.avro-source.port = 55555 avro-memory-logger.sinks.logger-sink.type = logger avro-memory-logger.channels.memory-channel.type = memory avro-memory-logger.sources.avro-source.channels = memory-channel avro-memory-logger.sinks.logger-sink.channel = memory-channel
-
启动指令:
flume-ng agent --name avro-memory-logger --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/avro-memory-logger.conf -Dflume.root.logger=INFO,console
注意:
启动顺序一定是先启动监控服务器B中的配置,不然就不会监控到日志信息。
三.启动两台服务器中的Flume
1).服务器B启动之后成功界面:
2).服务器A启动之后的效果:
3).测试:
在服务器A中的data目录下的data.log文件中加入数据,看服务器B有什么变化:
添加数据:
服务器B的变化:
以上就完成了跨服务器监控操作日志的过程,一定要着重的学习,因为很重要,但是有一个缺陷就是他不是实时监控的,而是有时间差的,后面会讲和kafka集成,做实时日志监控。