我正在尝试模拟syslog flume代理,最终应将数据放入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
sudo logger --server&lt; IP_Address_physical_server_A &gt; --port 514 --udp
我确实看到yje日志消息进入物理 server-A 的路径 - &gt; /var/log/messages
但是我没有看到任何消息进入HDFS;即使消息从服务器-B发送到服务器-A,似乎水槽代理也无法获取任何数据。
我在这里做错了吗?任何人都可以帮我解决这个问题吗?
修改
以下是运行syslog守护程序的server-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
答案 0 :(得分:1)
我不确定CSS
。给你的是什么,但我见过的大多数例子都使用netcat。
在任何情况下,您都设置了logger --server
,因此在您发送1000条消息之前,Flume不会写入HDFS。
请记住,HDFS不是流媒体平台,并且不喜欢小文件。
如果您正在寻找日志收集,请查看Kafka主题前面的Elasticsearch或Solr