Как создать конвейер для приема многострочного журнала в Elastic cloud с использованием фильтра GROK? - PullRequest
0 голосов
/ 29 сентября 2019

Я запутался, как я использую фильтр GROK, созданный мной в отладчике Elastic Grok, для многострочной записи журнала и использую Filebeat, чтобы отправить его в мой экземпляр ElasticSearch. Я считаю, что для этого мне нужно создать конвейер, но мне трудно это сделать. Экранирование и многострочный характер моих журналов делают использование консоли очень сложным. Я пытаюсь работать на примере здесь. https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html

У меня есть фильтр GROK:

-- BEGIN MESSAGE LOG --
%{GREEDYDATA} %{TIMESTAMP_ISO8601:timestamp}
([\s\S]*Exception:\s*)%{GREEDYDATA:exception}\s
([\s\S]*Message:\s*)%{GREEDYDATA:message}
(?m)\s%{GREEDYDATA:details}
([\s\S]*BaseDir:\s*)%{GREEDYDATA:application}
([\s\S]*ThreadId:\s*)%{GREEDYDATA:threadId}
([\s\S]*Machine:\s*)%{GREEDYDATA:machine}
([\s\S]*Thread:\s*)%{GREEDYDATA:thread}\s
([\s\S]*Windows\sidentity:\s*)%{GREEDYDATA:identity}
 -- END MESSAGE LOG --``

and the log entries look like this:


-- BEGIN MESSAGE LOG --
Timestamp: 2019-09-26 09:14:04.1993
...
-- END MESSAGE LOG --

Мой конвейер выглядит следующим образом

 POST _ingest/pipeline/_simulate
    {
        "pipeline": {
      "description" : "Raisin Error Log Pipeline",
      "processors": [
        {
          "grok": {
            "field": "message",
            "patterns": ["-- BEGIN MESSAGE LOG --
    %{GREEDYDATA} %{TIMESTAMP_ISO8601:timestamp}
    ([\s\S]*Exception:\s*)%{GREEDYDATA:exception}\s
    ([\s\S]*Message:\s*)%{GREEDYDATA:message}
    (?m)\s%{GREEDYDATA:details}
    ([\s\S]*BaseDir:\s*)%{GREEDYDATA:application}
    ([\s\S]*ThreadId:\s*)%{GREEDYDATA:threadId}
    ([\s\S]*Machine:\s*)%{GREEDYDATA:machine}
    ([\s\S]*Thread:\s*)%{GREEDYDATA:thread}\s
    ([\s\S]*Windows\sidentity:\s*)%{GREEDYDATA:identity}
     -- END MESSAGE LOG --"]
          }
        }
      ]
    },"docs":[
      {
        "_source": {
          "message": "-- BEGIN MESSAGE LOG --
     Timestamp: 2019-09-26 15:19:40.2496
     Exception: MissingFieldException 
     Message:   Error clearing cache after saving
     Exception details: 
     ..snip stack trace and sensitive info..
     Thread:   13 
     Windows identity: NT AUTHORITY\NETWORK SERVICE
     -- END MESSAGE LOG --"
        }
      }
      ]
    }

Многолинейные и Windows-пути / трассировки стека делаютПочтовые инструкции я попробовал здесь очень сложно.

...