我配置了Fortimail将其日志消息发送到Logstash,但是,当我在kibana仪表板上查看日志时。
我想在几个字段中拆分消息字段,例如:time
,device_id
,from
,to
......
看到这张图片:
我不知道如何继续自定义字段。
可以给我一些想法,知道要配置哪些文件?
答案 0 :(得分:5)
Alcazar是对的,但他几乎没有给你任何东西继续下去。
实际上,在您的logstash配置中,您将要设置一个filter{}
部分,该部分介绍如何将日志分解为各自的字段。请注意,这是在提取日志时完成的,而不是在他们已经进行弹性搜索之后。
有关详细信息,请参阅grok filter的文档。
答案 1 :(得分:1)
谢谢@Joe。我可以通过configure logstash将消息拆分为多个字段(例如,方法,持续时间,控制器)。
这是我的现实例子,让我们从文件中读取这些日志:
input {
file {
path => "/var/log/http.log"
}
}
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
}
}
答案 2 :(得分:0)
您需要使用类似kvp过滤器
之类的东西在logstash配置中执行此操作答案 3 :(得分:0)
检查最新消息(2019年6月)Elastic 7.2 release是否解决了您的问题:
弹性日志(版本7.2.0)可以在Elasticsearch Service上使用,也可以作为default distribution of Elastic Stack的一部分
对于Kibana中的Logs应用程序,其中包括字段固定,也称为自定义列。
这允许您指定其他字段以显示在日志查看器中,同时还包含默认字段:
答案 4 :(得分:0)
通常来看一下Logstash的grok过滤器和grok模式。就像正则表达式一样,另外还有已经可以用于通用数据的“内置”模式(请参见https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns)