elasticsearch logstash remove_字段不工作,无法将csv上载到elasticsearch
我正在使用elasticsearch、kibana和Logstash6.0.1 我希望通过日志存储和删除字段(路径、@timestamp、@version、主机和消息)将csv数据上载到elasticsearch。我在下面显示logstash.conf和emp.csv文件。如果我不使用remove_字段指令,上传将起作用,但我需要这样做。此外,没有创建索引 logstash.conf:elasticsearch logstash remove_字段不工作,无法将csv上载到elasticsearch,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我正在使用elasticsearch、kibana和Logstash6.0.1 我希望通过日志存储和删除字段(路径、@timestamp、@version、主机和消息)将csv数据上载到elasticsearch。我在下面显示logstash.conf和emp.csv文件。如果我不使用remove_字段指令,上传将起作用,但我需要这样做。此外,没有创建索引 logstash.conf: input { file { path => "e:\emp.csv" s
input {
file {
path => "e:\emp.csv"
start_position => "beginning"
}
}
filter {
csv {
separator => ","
columns => ["code","color"]
remove_field => ["path", "@timestamp", "@version", "host", "message"]
}
mutate {convert => ["code", "string"]}
mutate {convert => ["color", "string"]}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "emp5"
user => "elastic"
password => "password"
}
stdout {}
}
emp.csv:
1,blue
2,red
这种情况下缺少什么?在您的
csv
文件中,您试图删除的数据不可用
改为尝试删除例如path
和host
字段:
(...)
filter {
csv {
separator => ","
columns => ["code","color"]
}
mutate {
remove_field => ["path", "host"]
}
(...)
作为参考,如果字段path
和/或host
不存在,则没有问题。如果字段存在,插件将删除字段,如果字段不存在,插件将什么也不做
编辑:
我已经在新鲜的弹性堆栈上测试过了
:
您可以使用以下命令删除索引:
curl -X DELETE "localhost:9200/emp5"
还请注意,在当前配置中,日志存储只会读取文件一次。
您可以通过添加sincedb\u path=>“/dev/null”
或者在Windows
案例中:sincedb\u path=>“NUL”
内部:
input {
file {
(...) # here
}
节
然后在logstash
工作后,使用以下工具验证结果:
curl -X GET "localhost:9200/emp5?pretty"
{
"emp5" : {
"aliases" : { },
"mappings" : {
"doc" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"code" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"color" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
},
"settings" : {
"index" : {
"number_of_shards" : "5",
"blocks" : {
"read_only_allow_delete" : "true"
},
"provided_name" : "emp5",
"creation_date" : "1576099826712",
"number_of_replicas" : "1",
"uuid" : "reXYzqPgQryYcASoov9l5A",
"version" : {
"created" : "6080599"
}
}
}
}
}
如您所见,没有
主机
和路径
字段。Ok。我添加了remove_字段进行变异,但得到了相同的结果。索引没有创建。@user3637971您说您添加了它,但您是否也从csv
filter中删除了它?我添加了mutate,并从csv filter中删除了它。@user3637971我编辑了答案以进一步帮助您。是的,您是对的。正在删除路径和主机。然后我添加了消息、时间戳和版本以删除_字段。添加sincedb_path=>“NUL”是必要的。谢谢