问题
filebeat采集日志信息后,logstash打印信息,这个过程中,filebeat将自身的客户端信息也传送给了logstash,如果logstash不对这些字段进行过滤,导致es创建索引时,产生大量没有必要的字段。
解决方案:
在配置文件中进行过滤,删除没有必要的字段。
input {
beats {
port => 5044
}
}
filter{
mutate{
remove_field => ["host"]
remove_field => ["agent"]
remove_field => ["ecs"]
remove_field => ["tags"]
remove_field => ["fields"]
remove_field => ["@version"]
remove_field => ["@timestamp"]
remove_field => ["input"]
remove_field => ["log"]
}
}
output {
elasticsearch {
hosts => ["192.168.22.68:9200"]
index => "english"
}
stdout { codec => rubydebug }
}
结果如下:
kibana中显示效果如下:
官网(https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html)