我是靠谱客的博主 神勇小熊猫,最近开发中收集的这篇文章主要介绍Flume监控端口的内容前置条件Demo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前置条件

安装了Flume
安装 netcat 工具: netcat安装试玩博客

Demo

概述

在这里插入图片描述

定义agent文件

在/apache-flume-1.7.0/conf/目录下新建个job目录,在job目录下面新建个flume-netcat-logger.conf配置文件

注:配置文件来源于官方手册
http://flume.apache.org/FlumeUserGuide.html

#a1是agent的名称,a1中定义了一个叫r1的source,如果有多个,使用空格间隔
# r1 表示是a1的source的名字
a1.sources = r1 
# k1表示是a1的sink的名字
a1.sinks = k1
# c1表示是a1的channel的名字
a1.channels = c1

#组名名.属性名=属性值
# 表示a1的输入源类型为netcat端口类型
a1.sources.r1.type = netcat
# 表示a1监听的主机的ip
# 如果是别的机器推送的话,不要写localhost,写监听的机器的ip,可以写自己的机器,
#  如果你写了localhost的话,别的机器无法连接上
a1.sources.r1.bind = 172.16.10.101
# a1监听的端口
a1.sources.r1.port = 4444

#定义sink,表示输出目的地是控制台logger类型的
a1.sinks.k1.type = logger

#定义chanel
# 表示a1的channel  c1类型是memory类型的
a1.channels.c1.type = memory
# 表示c1 这个channel的总容量是10000个event
a1.channels.c1.capacity = 10000
# 表示c1 的channel传输时收集到1000条event后再提交事务
a1.channels.c1.transactionCapacity = 1000

#同一个source可以对接多个channel,但是一个sink只能从一个channel里面拿数据 
# 表示将r1和c1连接起来
#  r1的sources想对接对c1的channels
a1.sources.r1.channels = c1
# 表示将k1和c1连接起来
# k1 sinks想从哪里拿数据?从c1里面拿就配置c1
a1.sinks.k1.channel = c1

[这步骤可以不做]修改logSink日志配置文件

如果不想改的话, 你也可以在启动agent的时候 用 -D 命令指定参数,也可以覆盖这个配置信息.

logSink需要 log配置文件,默认用的是flume/conf/log4j.properties配置文件.如果你想自定义日志的输出啥的,就可以修改这个properties配置文件.

目录: /apache-flume-1.7.0/conf/log4j.properties

flume.root.logger 属性改成DEBUG,console, 或者是 INFO,console 都可以, 主要是console ,这是打印控制台的.


flume.root.logger=DEBUG,console
# flume.root.logger=INFO,LOGFILE
flume.log.dir=./logs
flume.log.file=flume.log

启动agent

启动命令,然后发现开始打印一堆日志,注意日志如果有error 说明哪里配置错了,或者其它原因导致agent没启动成功,

# 启动命令
[root@zjj101 job]# flume-ng agent -c conf/ -n a1 -f  /root/soft/apache-flume-1.7.0/conf/job/flume-netcat-logger.conf  -Dflume.root.logger=DEBUG,console
# .............省略了一堆没用的日志信息不粘贴在这里了
# flume监听了 4444端口
20/10/23 09:24:07 INFO source.NetcatSource: Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/172.16.10.101:4444]

启动命令参数说明

	--conf/-c:表示配置文件存储在conf/目录
	--name/-n:表示给agent起名为a1,这个取值要和配置文件里面定义的agent名字要一致.
	--conf-file/-f:flume本次启动读取的配置文件是在job文件夹下的flume-telnet.conf文件,这个路径可以写绝对路径也可以写相对路径
	-Dflume.root.logger=INFO,console :-D表示flume运行时动态修改flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别。日志级别包括:log、info、warn、error。

测试

打开另外一台机器连接4444端口

# 连接zjj101(配置了host映射)机器的4444端口
[root@zjj102 ~]#  nc zjj101 4444
我是张俊杰
OK
11111
OK
public static void main
OK

输入完了一些内容之后

再看看启动agent机器
控制台打印三条,说明接收到了三条内容,至于为什么中文没显示,是因为我配置了压缩.

20/10/23 09:26:32 INFO sink.LoggerSink: Event: { headers:{} body: E6 88 91 E6 98 AF E5 BC A0 E4 BF 8A E6 9D B0    ............... }
20/10/23 09:26:48 INFO sink.LoggerSink: Event: { headers:{} body: 31 31 31 31 31                                  11111 }
20/10/23 09:27:10 INFO sink.LoggerSink: Event: { headers:{} body: 70 75 62 6C 69 63 20 73 74 61 74 69 63 20 76 6F public static vo }

最后

以上就是神勇小熊猫为你收集整理的Flume监控端口的内容前置条件Demo的全部内容,希望文章能够帮你解决Flume监控端口的内容前置条件Demo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部