ELK |Отфильтрованный по гроку формат файла журнала, не вставляющий в упругий поиск - PullRequest
1 голос
/ 29 мая 2019

У меня есть файл журнала, имеющий формат ниже, для извлечения в упругий поиск, но данные, отфильтрованные logstash, не передаются в упругий поиск.

Та же конфигурация с фильтром grok, я могу получить ее от kibana devtools

Пример файла журнала: OCDE - 2019-05-22 13: 24: 34.000 ОШИБКА org.ramyam.ocde.task.NBALookupTask.checkResponsesToBeProcessed - checkResponsesToBeProcessed начался: ср 22 мая 13:24:34 IST 2019

Конфигурация Filebeat:

filebeat.inputs: - тип: журнал включено: правда пути: - C: \ data \ logs \ OCDE.log document_type: ocde

конфигурация logstash:

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"
}

Может кто-нибудь объяснить или поделиться примером конфигурации, что мне не хватает

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Измените свой грок с:

%{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}

Чтобы проверить это, используйте http://grokdebug.herokuapp.com/ и вставьте предоставленное вами сообщение в "enter image description here

Ваш шаблон работает нормально, у вас только один дополнительный кронштейн в конце.

0 голосов
/ 18 июня 2019

Вы можете попробовать ниже шаблон Грока -

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