2016-04-18 4 views
0

Ich bin neu in ES. Versucht, JSON-Ereignisse an ES mit https://github.com/awslabs/logstash-output-amazon_es zu senden, aber wenn ich unten Konfiguration gebe, erkennt es keine Ereignisse?Wie senden Sie JSON-Ereignisse mit Logstash Plugin für Amazon ES an ES?

input { 
     file { 
      path => "C:/Program Files/logstash-2.3.1/transactions.log" 
      start_position => beginning 
      codec => "json_lines" 
     } 
    } 
    filter { 
     json { 
      source => "message" 
     } 
    } 

    output { 
     amazon_es { 
      hosts => ["endpoint"] 
      region => "us-east-1" 
      codec => json 
      index => "production-logs-%{+YYYY.MM.dd}" 

     } 
    } 

ich es im Debug-Modus laufen lasse, aber es gibt nichts im Protokoll Auch kann ich den Index erstellen müssen, bevor ich die Ereignisse aus Logstash beginnen zu senden?

Die unter Config funktioniert irgendwie, aber es erkennt keine json Felder

input { 
    file { 
     path => "C:/Program Files/logstash-2.3.1/transactions.log" 
     start_position => beginning 
    } 
} 

output { 
    amazon_es { 
     hosts => ["Endpoint"] 
     region => "us-east-1" 
     index => "production-logs-%{+YYYY.MM.dd}" 
    } 
} 

Dank!

+0

Ausführen unter Windows 7 –

+0

Was ist im Protokoll? Logstash ist ziemlich schrecklich in Parsing-Datei, Sie müssen wirklich filtern/analysieren es richtig zu Dump zur Ausgabe, sonst wird es einfach ignorieren sie. https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html > Standardmäßig wird jedes Ereignis als eine Zeile angenommen. Wenn Sie mehrere Protokollzeilen zu einem Ereignis hinzufügen möchten, sollten Sie den mehrzeiligen Codec oder Filter verwenden. Stellen Sie sicher, dass das Protokoll 1 Zeile, keine Zeilenumbrüche, korrekt formatierte JSON und Logstash die Zeilen, die es verarbeitet hat, nicht erneut lesen, so müssen Sie sicherstellen, dass "neue" Zeilen an die Datei angehängt werden. – Greyeye

Antwort

0

Es kann mehrere Dinge im Spiel sein, hier, darunter:

  • Logstash denkt Ihre Datei bereits verarbeitet wurde. start_position ist nur für Dateien, die vorher nicht gesehen wurden. Wenn Sie testen, legen Sie sincedb_path auf/dev/null fest, oder verwalten Sie Ihre Registrierungsdateien manuell.
  • Sie haben Zuordnungsprobleme. Elasticsearch löscht Dokumente, wenn die Feldzuordnung nicht korrekt ist (versucht, eine Zeichenfolge in ein numerisches Feld usw. einzufügen). Dies sollte in den Elasticsearch-Protokollen angezeigt werden, wenn Sie auf AWS zu ihnen gelangen.
  • debug ist sehr ausführlich. Wenn du wirklich nichts bekommst, erhältst du keine Eingaben. Siehe den ersten Punkt.
  • Hinzufügen einer Ausgabe stdout {} ist eine gute Idee, bis Sie die Dinge funktionieren. Dies zeigt dir, was Logstash an elasticsearch sendet.
Verwandte Themen