Logstash ELK |日志文件grok过滤格式未推入弹性搜索

Logstash ELK |日志文件grok过滤格式未推入弹性搜索,logstash,elastic-stack,logstash-grok,logstash-configuration,filebeat,Logstash,Elastic Stack,Logstash Grok,Logstash Configuration,Filebeat,我有以下格式的日志文件要提取到弹性搜索中,但日志存储过滤的数据并没有推到弹性搜索中 同样的grok过滤配置,我可以从kibana开发工具获得它 示例日志文件: OCDE-2019-05-22 13:24:34.000错误org.ramyam.OCDE.task.NBALookupTask.checkResponsesToBeProcessed-checkResponsesToBeProcessed开始:Wed May 22 13:24:34 IST 2019 Filebeat配置: input

我有以下格式的日志文件要提取到弹性搜索中,但日志存储过滤的数据并没有推到弹性搜索中

同样的grok过滤配置,我可以从kibana开发工具获得它

示例日志文件: OCDE-2019-05-22 13:24:34.000错误org.ramyam.OCDE.task.NBALookupTask.checkResponsesToBeProcessed-checkResponsesToBeProcessed开始:Wed May 22 13:24:34 IST 2019

Filebeat配置:

input {
    file {
            type => "ocde"
            path => "C:\data\logs\OCDE.log"
    }
  beats {
    port => 5044
    ssl  => false
  }
}

filter {
        grok {
            match => [ "message" ,'%{DATA:moduleName} - %{TIMESTAMP_ISO8601:loggerTime}\s+%{LOGLEVEL:level}\s+%{JAVACLASS:className}\.%{DATA:methodName} - %{GREEDYDATA:loggermsg}}']
        }
}

output {
        if [type]=="ocde" 
        {
            elasticsearch
              {
                hosts => ["localhost:9200"]
                #manage_template => false
                index => "enliven_be_log_yyyymmdd"
                document_type=> ocde
            }   
        }
}
filebeat.inputs: -类型:原木 已启用:true 路径: -C:\data\logs\OCDE.log 文件类型:ocde

日志存储配置:

input {
    file {
            type => "ocde"
            path => "C:\data\logs\OCDE.log"
    }
  beats {
    port => 5044
    ssl  => false
  }
}

filter {
        grok {
            match => [ "message" ,'%{DATA:moduleName} - %{TIMESTAMP_ISO8601:loggerTime}\s+%{LOGLEVEL:level}\s+%{JAVACLASS:className}\.%{DATA:methodName} - %{GREEDYDATA:loggermsg}}']
        }
}

output {
        if [type]=="ocde" 
        {
            elasticsearch
              {
                hosts => ["localhost:9200"]
                #manage_template => false
                index => "enliven_be_log_yyyymmdd"
                document_type=> ocde
            }   
        }
}
我期待下面的结果从上面的弹性搜索配置

{
  "level": "ERROR",
  "loggerTime": "2019-05-22 13:24:34.000",
  "moduleName": "OCDE",
  "methodName": "checkResponsesToBeProcessed",
  "className": "org.ramyam.ocde.task.NBALookupTask",
  "loggermsg": "checkResponsesToBeProcessed started : Wed May 22 13:24:34 IST 2019"
}

任何人都可以解释或分享我缺少的示例配置吗

您可以在grok模式下尝试-

%{DATA:moduleName}%{SPACE}*-%{SPACE}*%{TIMESTAMP_ISO8601:loggerTime}%{SPACE}*%{LOGLEVEL:level}%{SPACE}*%{JAVACLASS:className}\.%{DATA:methodName}%{SPACE}*-%{SPACE}*%{GREEDYDATA:loggermsg}

你可以试试下面的格洛克模式-

%{DATA:moduleName}%{SPACE}*-%{SPACE}*%{TIMESTAMP_ISO8601:loggerTime}%{SPACE}*%{LOGLEVEL:level}%{SPACE}*%{JAVACLASS:className}\.%{DATA:methodName}%{SPACE}*-%{SPACE}*%{GREEDYDATA:loggermsg}

将您的工作更改为:

%{DATA:moduleName} - %{TIMESTAMP_ISO8601:loggerTime}\s+%{LOGLEVEL:level}\s+%{JAVACLASS:className}\.%{DATA:methodName} - %{GREEDYDATA:loggermsg}}
致:

要对此进行验证,请使用您提供的日志消息并将其粘贴到“


您的图案效果很好,您只需在末端多加一个括号。

将您的图案更改为:

%{DATA:moduleName} - %{TIMESTAMP_ISO8601:loggerTime}\s+%{LOGLEVEL:level}\s+%{JAVACLASS:className}\.%{DATA:methodName} - %{GREEDYDATA:loggermsg}}
致:

要对此进行验证,请使用您提供的日志消息并将其粘贴到“

你的图案很好,你只是在末端多了一个括号