如何在Kibana中显示之前处理和标记日志数据,使用filebeat记录转发
我在学麋鹿。我在一台主机上安装了Filebeat,该主机将日志转发到另一台服务器上的logstash,该服务器将日志转发到elasticsearch filebeat转发的日志是/var/log/messages和/var/log/sa/* /var/log/*.log,/var/log/sample/access.log 当我看到kibana中的消息时,源是日志的文件名,但是整个消息都在一个字段“message”中,但是我想以单独的标签显示每个日志数据字段,就像在访问日志中一样,我们得到很多字段,如:源IP、响应代码、所用时间、字节大小等。。所以每个人都应该得到不同变量名的标签,这样就可以很容易地用timelion中的变量名生成图形 在Kibana中是否有一种类似splunk的方法,我在任何字段值上使用正则表达式,并使用其中的数据创建变量,然后使用该变量生成图形 提前感谢您的回复如何在Kibana中显示之前处理和标记日志数据,使用filebeat记录转发,kibana,elastic-stack,logstash-grok,filebeat,
elasticsearch-dsl,Kibana,Elastic Stack,Logstash Grok,Filebeat,
elasticsearch Dsl,我在学麋鹿。我在一台主机上安装了Filebeat,该主机将日志转发到另一台服务器上的logstash,该服务器将日志转发到elasticsearch filebeat转发的日志是/var/log/messages和/var/log/sa/* /var/log/*.log,/var/log/sample/access.log 当我看到kibana中的消息时,源是日志的文件名,但是整个消息都在一个字段“message”中,但是我想以单独的标签显示每个日志数据字段,就像在访问日志中一样,我们得到很多字
谢谢你的回复 编辑: 我尝试了以下sar平均负载模式
filter {
if [source] == "sarLoadLog.log" {
grok {
match => { "message" => %{GREEDYDATA:time_12} %{NUMBER:runqsz} %{NUMBER:plistsz} %{NUMBER:ldavg1} %{NUMBER:ldavg5} %{NUMBER:ldavg15} %{NUMBER:blocked} }
}
}
}
但它不工作,我尝试了grok调试器,它在那里工作
以下是这方面的数据
05:36:01 PM 3 300 0.00 0.02 0.05 0
您可以使用logstash实现预期结果,因为您已经在设置中配置了logstash 您需要在logstash中配置过滤器插件,将日志解析为各个字段,以便能够在这些字段上进行聚合和可视化。请参阅以下链接开始: 具体来看下面的过滤器插件
谢谢回复谢谢回复,我在logstash的filter.conf中配置了以下模式,它开始填充字段中的值。但是如果[source]{grok{match=>{“message”=>“%{greedyddata:load_time}\s*%{NUMBER:kbmemfree}\s*%{NUMBER:kbmemused}\s*{NUMBER:kbmemused}\s*%{NUMBER:memused}\s*{NUMBER:kbbuffers}\s*%{NUMBER:kbcached}\s*%{NUMBER:kbcached}\s*{NUMBER:kbmemused}\s*{NUMBER:commit}\s*%{NUMBER:kbmemused}\s*{{NUMBER:kbdirty}\s*“}}}}映射中的字段是否设置为index:false?在grok模式工作的下面,较早的空格导致grok模式失败grok{match=>{“message”=>“%{greedydydata:load\u time}\s*%{NUMBER:kbmemfree}\s*%{NUMBER:kbmemused}\s*{NUMBER:memused}\s*{NUMBER:kbmemused}\s*%{NUMBER:kbbuffers}\s*%{NUMBER:kbcached}\s*%{NUMBER:kbcommit}\s*%{NUMBER:commit}\s*%{NUMBER:kbactive}\s*%{NUMBER:kbinact}\s*%{NUMBER:kbdirty}\s*“}也许您也可以尝试使用过滤器插件csv并选择作为分隔符“”,唯一的事情是……您需要在之后重命名字段