水槽系统日志代理没有选择消息并将其放入 HDFS
Posted
技术标签:
【中文标题】水槽系统日志代理没有选择消息并将其放入 HDFS【英文标题】:flume syslog agent not picking the message and placing it into HDFS 【发布时间】:2018-04-11 17:07:43 【问题描述】:我正在尝试模拟 syslog 水槽代理,最终应该将数据放入 HDFS。 我的场景如下:
syslog flume 代理正在物理服务器 A 上运行,以下是配置详细信息:
===
syslog_agent.sources = syslog_source
syslog_agent.channels = MemChannel
syslog_agent.sinks = HDFS
# Describing/Configuring the source
syslog_agent.sources.syslog_source.type = syslogudp
#syslog_agent.sources.syslog_source.bind = 0.0.0.0
syslog_agent.sources.syslog_source.bind = localhost
syslog_agent.sources.syslog_source.port = 514
# Describing/Configuring the sink
syslog_agent.sinks.HDFS.type=hdfs
syslog_agent.sinks.HDFS.hdfs.path=hdfs://<IP_ADD_OF_NN>:8020/user/ec2-user/syslog
syslog_agent.sinks.HDFS.hdfs.fileType=DataStream
syslog_agent.sinks.HDFS.hdfs.writeformat=Text
syslog_agent.sinks.HDFS.hdfs.batchSize=1000
syslog_agent.sinks.HDFS.hdfs.rollSize=0
syslog_agent.sinks.HDFS.hdfs.rollCount=10000
syslog_agent.sinks.HDFS.hdfs.rollInterval=600
# Describing/Configuring the channel
syslog_agent.channels.MemChannel.type=memory
syslog_agent.channels.MemChannel.capacity=10000
syslog_agent.channels.MemChannel.transactionCapacity=1000
#Bind sources and sinks to the channel
syslog_agent.sources.syslog_source.channels = MemChannel
syslog_agent.sinks.HDFS.channel = MemChannel
我正在使用内置实用程序“记录器”从不同的物理服务器 B 发送系统日志“日志”,如下所示:
sudo logger --server IP_Address_physical_server_A> --port 514 --udp
我确实看到 yje 日志消息进入物理 server-A 的路径 --> /var/log/messages
但我没有看到任何消息进入 HDFS;即使消息从服务器 B 发送到服务器 A,水槽代理似乎也无法获取任何数据。
我在这里做错了吗?谁能帮我解决这个问题?
编辑
以下是运行 syslog 守护程序的服务器 A 上 netstat 命令的输出:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 573/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 573/rsyslogd
udp 0 0 0.0.0.0:514 0.0.0.0:* 573/rsyslogd
udp6 0 0 :::514 :::* 573/rsyslogd
【问题讨论】:
【参考方案1】:我不确定logger --server
.给你什么,但我见过的大多数例子都使用netcat。
无论如何,你已经设置了batchSize=1000
,所以在你发送 1000 条消息之前,Flume 不会写入 HDFS。
请记住,HDFS 不是流媒体平台,并且不喜欢有小文件。
如果您正在寻找日志收集,请查看以 Kafka 主题为前端的 Elasticsearch 或 Solr
【讨论】:
以上是关于水槽系统日志代理没有选择消息并将其放入 HDFS的主要内容,如果未能解决你的问题,请参考以下文章
水槽仍然保留 .tmp 文件并且没有将文件完全复制到 HDFS