环境:ubuntu 1604
软件:①apache-flume-1.7.0-bin.tar.gz,解压后放到 /usr/local/ 下面。②sudo apt-get install apache2,然后sudo service apache2 start 启动服务。--第二步是为了安装httpd服务器,CentOS上直接yum install httpd即可。
配置:
larry@linux:~/opt/flume-conf$ cat demo.properties # 示例: 一个单节点的Flume 配置 # 命名该agent(a1)的components。 a1.sources = r1 a1.sinks = k1 a1.channels = c1 # 描述/配置 source a1.sources.r1.type = exec a1.sources.r1.command = tail -F /var/log/apache2/access.log # 描述 sink a1.sinks.k1.type = logger # 使用一个内存型 channel -- 能够缓存 events a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # 将 source和 sink 绑定到 channel。 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
这个配置,就是将tail命令产生的数据流发送到logger ,所以启动flume-ng的时候需要指定logger(因为默认的logger肯定不是输出到控制台的,而且级别也太高)。
启动:flume-ng agent --conf /usr/local/apache-flume-1.7.0-bin/conf --conf-file demo.properties --name a1 -Dflume.root.logger=INFO,console
--conf 是用于指定conf文件的路径,该路径通常包含了一些环境设置,即通用配置。
--conf-file 则是指定当前agent任务需要加载的配置文件。
--name 是指定加载--conf-file配置文件中的某个agent,这是因为一个配置文件可以有多组agent。
-Dflume.root.logger,其实是指定Java的选项,该选项会传递给Java程序。在这里,就是设置该应用的整体日志的级别和输出。
另外,需要注意flume-ng 后面的agent,不要忘记输入~
实验:浏览器访问 127.0.0.1,然后刷新、刷新、刷新。。
结果: