Как извлечь объект JSON из журнала в конфигурации logstash? - PullRequest
0 голосов
/ 22 октября 2018

Я создаю приложение, в котором мне нужно получить пары значений ключа из объекта json в журналах с помощью конфигурации logstash.

Вот моя конфигурация:

input{
file{
path => "D:\ELK_Info\TestLogs_Updated_tablev4.log"
start_position => beginning
        codec => multiline {
                               pattern => "^%{TIMESTAMP_ISO8601}"
                               negate => true
                               what => "previous"
        }
}
}

filter{
    grok{
       match => {
      "message" => "%{IP:client_ip}%{NOTSPACE:space}%{GREEDYDATA:json_data}"
   }
  }
  #mutate { remove_field => [ "tags"]}
  json { source => "json_data" target => "parsedJson" remove_field=>["json_data"]}
  mutate {
     add_field => {
        "AssetManagerId" => "%{[parsedJson][AssetManagerId]}"
        "Amount" => "%{[parsedJson][Amount]}"
        "AccountId" => "%{[parsedJson][AccountId]}"
        "RequestCode" => "%{[parsedJson][RequestCode]}"
        "TicketNumber" => "%{[parsedJson][TicketNumber]}"
        "Status" => "%{[parsedJson][Status]}"
        "message" => ["%{[parsedJson][message]}"]
      }
    }
}

output {
file{
path => "D:\ELK_Info\logstashOutput.log"
}
}

Здесьжурнал, например:

Sep 28 15:09:50 52.231.153.246 gateway: [6] INFO AppLog - 180 - XXXGatewayAPI.APIHandlers - UpdateDepositTicket called by xyzadmin from 211.211.211.211: {"AssetManagerId":211,"AccountId":211,"AssetId":211,"AssetName":" ","Amount":"211","RequestCode":"211-211-211-211-211","RequestIP":"211.211.211.211","RequestUser":211,"RequestUserName":"211@211.com","OperatorId":211,"Status":"Accepted","FeeAmt":0,"UpdatedByUser":211,"UpdatedByUserName":"211","TicketNumber":211,"DepositInfo":"{\"Full Name\":\"211\",\"language\":\"kr\",\"Comments\":\"\"}","CreatedTimestamp":"2018-09-27T11:02:22Z","LastUpdateTimeStamp":"211-09-211:09:48.203Z","Comments":[],"Attachments":null,"type":"deposit"}

При моей текущей конфигурации я получаю пару ключ-значение в виде:

"Status" : "%{[parsedJson][Status]}"

, тогда как мне нужно точное значение для ключа 'Status' в json вместо "% {[parsedJson] [Status]}".

Какие изменения мне нужно внести, чтобы получить требуемый вывод?

...