Невозможно проанализировать поля JSON через плагин http в logstash - PullRequest
0 голосов
/ 08 июня 2019

Я хочу, чтобы мой ввод http (JSON), запущенный через curl, был проанализирован и сохранен вasticsearch. Ввод будет что-то вроде этого: -

curl http://localhost:8080 -d {"applicationname": "app2", "timestamp": "06.07.2009 12:40:40", "errormsg": "Ошибка в строке 1"}

Я хочу проанализировать каждый ключ JSON (имя приложения, метка времени, errormsg) и создать индекс на основе имени приложения и метки времени.

Ниже приведен файл logstash.conf, который я использую.

input {
    http {
        host => "localhost"
        port => "8080"
        codec => json
    }   
}
filter {  
    json {
        source => "message"
        target => "parsedJson"
    }
    mutate {
        add_field => {
            "appname" => "%{[parsedJson][applicationname]}"
            "tst" => "%{[parsedJson][timestamp]}"
            "msg" => "%{[parsedJson][errormsg]}"
        }
    }
}
output {    
    elasticsearch { 
        hosts => ["localhost:9200"] 
        index => "%{[appname]}-%{+YYYY.MM.dd}"
    }   
    stdout { codec => rubydebug }
}

Нужна помощь в разборе этого ввода JSON. Я получаю вывод ниже в logstash:

{
           "tst" => "%{[parsedJson][timestamp]}",
           "msg" => "%{[parsedJson][errormsg]}",
          "tags" => [
        [0] "_jsonparsefailure"
    ],
    "@timestamp" => 2019-06-08T11:21:21.607Z,
       "appname" => "%{[parsedJson][application]}",
       "message" => "'{applicationname:app2,timestamp:07/06/2019 12:40:40,errormsg:Error at line 1}'",
       "headers" => {
           "request_path" => "/",
        "http_user_agent" => "curl/7.55.1",
           "content_type" => "application/x-www-form-urlencoded",
              "http_host" => "localhost:8080",
         "content_length" => "79",
            "http_accept" => "*/*",
         "request_method" => "POST",
           "http_version" => "HTTP/1.1"
    },
      "@version" => "1",
          "host" => "127.0.0.1"
}

ожидаемый результат:

имя приложения: app2 tst: 06.07.2009 12:40:40 msg: ошибка в строке 1

Индекс должен быть создан с помощью "appname-tst" вasticsearch.

...