Как разобрать пользовательские логи - PullRequest
0 голосов
/ 08 октября 2018

Я новичок в logstash, может кто-нибудь помочь мне с помощью фильтра grok для анализа данных из нескольких символов новой строки в одном журнале

2018-10-08 13: 38: 34,280 [https-openssl-apr-0: 0: 0: 0: 0: 0: 0: 0-8443-exec-424] INFO Rq: 144839 ControllerInterceptor - URL-адрес afterCompletion (): GET :: / system / data / connect / service response: 200 истекло:10 мс

1 Ответ

0 голосов
/ 09 октября 2018
  • 1.Использование Grok

http://grokdebug.herokuapp.com/

[Первый входной блок] ВХОД

2018-10-08 13:38:34,280 [https-openssl-apr-0:0:0:0:0:0:0:0-8443-exec-424] INFO Rq:144839 ControllerInterceptor - afterCompletion()
response: 200
elapsed: 10 ms

[Второе поле ввода] Анализ Grok ==> %{UPTONEWLINE:Part1}%{UPTONEWLINE:Part2}

Установите флажок Добавить пользовательские шаблоны и добавьте следующую строку UPTONEWLINE (?: (. +?) (\n))

ВЫХОД

{
  "Part1": [
    [
      "2018-10-08 13:38:34,280 [https-openssl-apr-0:0:0:0:0:0:0:0-8443-exec-424] INFO Rq:144839 ControllerInterceptor - afterCompletion()\n"
    ]
  ],
  "Part2": [
    [
      "response: 200\n"
    ]
  ]
}
  • 2.Без использования фильтра Грока - файл конфигурации Logstash

ВХОД

2018-10-08 13:38:34,280 [https-openssl-apr-0:0:0:0:0:0:0:0-8443-exec-424] INFO Rq:144839 ControllerInterceptor - afterCompletion()\nresponse: 200\nelapsed: 10 ms

Файл конфигурации Logstash

input {
  http {
    port => 5043
    response_headers => {
        "Access-Control-Allow-Origin" => "*"
        "Content-Type" => "text/plain"
        "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, 
        Accept"
    }   
    }
}

filter {
    mutate {           
            split => ['message','\n']
            add_field => {
                 "Part1" => "%{[message][0]}"
                 "Part2" => "%{[message][1]}"
                 "Part3" => "%{[message][2]}"
            }
         }
}

output {
  stdout  { 
        codec => rubydebug
    }
}

ВЫХОД

{
  "host"=>"0:0:0:0:0:0:0:1",
  "@version"=>"1",
  "message"=>[
    [0]"2018-10-08 13:38:34,280 [https-openssl-apr-0:0:0:0:0:0:0:0-8443-exe c-424] INFO Rq:144839 ControllerInterceptor - afterCompletion()",
    [1]"response: 200",
    [2]"elapsed: 10 ms"
  ],
  "Part1"=>"2018-10-08 13:38:34,280 [https-openssl-apr-0:0:0:0:0:0:0:0-8443-exec-424] INFO Rq:144839 ControllerInterceptor - afterCompletion()",
  "Part2"=>"response: 200",
  "Part3"=>"elapsed: 10 ms",
  "@timestamp"=>2018-10-09T05: 27: 41.695Z
}
...