Logstash 将所有内容放入所有 Elasticsearch 索引中
Posted
技术标签:
【中文标题】Logstash 将所有内容放入所有 Elasticsearch 索引中【英文标题】:Logstash puts everything into all Elasticsearch indexes 【发布时间】:2017-05-10 07:32:05 【问题描述】:我在/etc/logstash/conf.d
下有 4 个文件。这 4 个文件用于读取 tomcat 的日志和 apache 的日志,监听 log4j 的 3456 端口和读取 CSV 文件。
一切正常,但是当 Logstash 解析我的 CSV 文件时,它会将 CSV 文件的相关数据放入 tomcat 的日志索引、apache 的日志索引、log4j 索引和 CSV 文件索引(如我所愿)。
有我的 CSV 文件的配置文件:
input
file
path => "/exports/export4hadoop_FULL.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
filter
csv
columns => ["idTopic", "idContenu", "typeContenu", "titre", "date", "tag", "message", "typetag", "idGroupTmp"]
separator => ";"
ruby
code => "
b = event.get('idGroupTmp').split(',')
arr = Array.new
for c in b
arr.push(c)
end
event.set('idGroups', arr)
"
output
elasticsearch
hosts => "bigdatam1:9200"
index => "collabore_import"
我确实将"collabore_index"
指定为"elasticsearch"
下的索引...
【问题讨论】:
【参考方案1】:Logstash 会将配置文件合并成一个大文件。因此,根据您对其他类型日志的了解,您可能没有正确“分离”输出。
output
if ([type] == "csv")
elasticsearch
hosts => "bigdatam1:9200"
index => "collabore_import"
并在输入中相应地设置type
:
input
file
path => "/exports/export4hadoop_FULL.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
type => "csv"
【讨论】:
谢谢!它工作正常!但我不明白为什么其他配置的文件有效,而这个没有..以上是关于Logstash 将所有内容放入所有 Elasticsearch 索引中的主要内容,如果未能解决你的问题,请参考以下文章
ELK架构下利用Kafka Group实现Logstash的高可用
ELK架构下利用Kafka Group实现Logstash的高可用