我正在使用elasticsearch,kibana和logstash 6.0.1。
我希望通过logstash将csv数据上传到elasticsearch,并删除字段(路径,@ timestamp,@ version,主机和消息)。我在下面显示logstash.conf和emp.csv文件。如果我不使用remove_field指令,但我需要的话,上传将起作用。此外,未创建索引。
logstash.conf:
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
,则没有问题。如果字段存在,插件将删除字段,如果字段不存在,则插件将不执行任何操作。