【发布时间】:2015-10-09 08:31:44
【问题描述】:
我有一个 logstash 客户端和服务器。
客户端将带有logstash的udp输出的日志文件发送到服务器,服务器也运行logstash来获取这些日志。在服务器上,我有一个 json 过滤器,它在实际日志的字段中提取 json 格式的消息,以便弹性搜索可以索引它们。
这是我的服务器代码:
input{
udp{}
}
filter{
json {
source => "message"
}
}
output{
elasticsearch{
}
}
来自客户端:
input{
file{
type => "apache-access"
path => "/var/log/apache2/access.log"
}
}
output{
udp{
host => "192.168.0.3"
}
}
此代码运行良好,除了一件事:
在某种程度上,我得到了两次字段type,一次是type,一次是_type,它们具有相同的内容。
我尝试使用mutate-过滤器删除type-字段,如下所示:
mutate{
remove_field => [ "type" ]
}
但此过滤器会删除两个 type 字段。(_type 字段设置为默认值:logs)
如何保留_type 字段并删除type 字段?
【问题讨论】:
-
能否给出完整的logstash配置文件...
-
@AnilkumarBathula 这才是最重要的,在完整的配置文件中只是更多的输入、不同的 udp 端口和与此问题无关的过滤器:
mutate{add_field=>{"program"=>"apache"}} -
我觉得这两个字段其实是同一个内存,如果
_source中没有type字段,那_type会自动输出为“logs” . -
是的@克劳斯。但我在想的是这个
type是如何创建的 -
@Anilkumar 我认为在文件输入中设置类型会设置 _source 中的类型,而 _type 只是某种类型的指针。
标签: json elasticsearch logstash