Logstash输入日志文件的Grok模式

问题描述

[1603870834]服务警告:本地主机;交换使用;确定;软件; 2;交换成功-释放1%(1023 MB中的0 MB)

我必须将 JSON 格式的字符串示例过滤为 Logstash ,这是我的 Nagios 日志文件输出,必须将其加载到我的ELK使用 Logstash ,该如何为此写信给grok?

解决方法

在grok中,有一种专用的模式用于这种类型的线: NAGIOSLOGLINE

因此您可以尝试以下方法:

 filter {
      grok {
        match => { "message" => "%{NAGIOSLOGLINE}" }
      }
    }

有关信息,您可以使用 grokdebug 测试更多模式here

,

这是您找到的修改后的grok模式:

\[%{NUMBER:unix_timestamp}\]\s%{DATA:type}:\s%{DATA:host};%{DATA:service};%{DATA:status};%{DATA:nagios_status};%{DATA:int};%{GREEDYDATA:nagios_message}