2017-08-15 1 views
2

J'ai un problème avec la conversion de valeur via logstash, je ne peux pas trouver une solution pour cela. il semble être lié à la date.Problème de logstash avec json_formater [LogStash :: Json :: ParserError: Caractère inattendu ('-' (code 45)): attendait la virgule pour séparer les entrées ARRAY]

#Log line 
[2017-08-15 12:30:17] api.INFO: {"sessionId":"a216925---ff5992be7520924ff25992be75209c7","action":"processed","time":1502789417,"type":"bookingProcess","page":"order"} [] [] 

configuration Logstash

filter { 
     if [type] == "api-prod-log" { 
       grok { 
         match => {"message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] %{WORD:module}.%{WORD:level}: (?<log_message>.*) \[\] \[\]" } 
         add_field => [ "received_from", "%{host}" ] 
       } 
       json { 
        source => "log_message" 
        target => "flightSearchRequest" 
        remove_field=>["log_message"] 
       } 
       date { 
         match => [ "timestamp", "YYYY-MM-dd HH:mm:ss" ] 
         timezone => "Asia/Jerusalem" 
       } 
     } 
} 

Toute idée?

Merci

Répondre

0

Quelle version de Logstash utilisez-vous? Sur Logstash 5.2.2 avec la configuration Logstash suivante:

input { 
    stdin{} 
} 

filter { 
    grok { 
     match => {"message" => '\[%{TIMESTAMP_ISO8601:timestamp}\] %{WORD:module}.%{WORD:level}: (?<log_message>.*) \[\] \[\]' } 
    } 
    json { 
     source => "log_message" 
     target => "flightSearchRequest" 
     remove_field=>["log_message"] 
    } 
    date { 
     match => [ "timestamp", "YYYY-MM-dd HH:mm:ss" ] 
     timezone => "Asia/Jerusalem" 
    } 
} 

output{ 
    stdout {codec => "rubydebug"} 
} 

je reçois un résultat tout à fait correct et aucune erreur, quand je passe votre ligne de journal en entrée:

{ 
      "@timestamp" => 2017-08-15T09:30:17.000Z, 
    "flightSearchRequest" => { 
      "action" => "processed", 
     "sessionId" => "a216925---ff5992be7520924ff25992be75209c7", 
      "time" => 1502789417, 
      "page" => "order", 
      "type" => "bookingProcess" 
    }, 
        "level" => "INFO", 
       "module" => "api", 
       "@version" => "1", 
       "message" => "[2017-08-15 12:30:17] api.INFO: {\"sessionId\":\"a216925---ff5992be7520924ff25992be75209c7\",\"action\":\"processed\",\"time\":1502789417,\"type\":\"bookingProcess\",\"page\":\"order\"} [] []", 
       "timestamp" => "2017-08-15 12:30:17" 
} 

J'ai enlevé la vérifier pour "type" au début, pouvez-vous tester si cela peut affecter le résultat?