2017-06-02 4 views
0

Ich habe Kibana und ElasticSearch-Instanz auf einer Maschine ausgeführt. Logstash und Dateibeat laufen auf einem anderen Rechner.Die Logstash Retry-Richtlinie verstehen

Der Fluss funktioniert einwandfrei. Ich habe einen Zweifel und ich muss das verstehen. Ich ließ elasticsearch runtergehen und machte Logstash, um ein paar Stämme zu elasticearch zu pumpen. Da elasticsearch down ist, hoffe ich, dass Daten verloren gehen. Aber als ich den Elasticsearch-Service aufbrachte, war Kibana in der Lage, die Logs zu zeigen, die geschickt wurden, als elasticsearch nicht mehr da war.

Wenn ich online google, habe ich erfahren, dass Logstash Versuche in Elasticsearch zu verbinden ist unten.

Darf ich bitte wissen, wie diese Parameter setzen

Antwort

0

Der Grund dafür ist, dass die elasticsearch output implementiert exponentieller Backoff mit zwei Parametern aufgerufen:

  • retry_initial_interval
  • retry_max_interval

Wenn ein Massenaufruf schlägt fehl, Logstash wartet auf retry_initial_interval Sekunden und versucht es erneut. Wenn es weiterhin fehlschlägt, wird auf 2 * retry_initial_interval gewartet und es wird erneut versucht. Ans so weiter, bis die Wartezeit retry_max_interval erreicht, an diesem Punkt wird es versuchen, alle retry_max_interval Sekunden für unbestimmte Zeit zu versuchen.

Beachten Sie, dass diese Wiederholungsrichtlinie nur funktioniert, wenn ES nicht erreichbar ist. Wenn ein anderer Fehler auftritt, z. B. ein Zuordnungsfehler (HTTP 400) oder ein Konflikt (HTTP 409), wird der Massenaufruf nicht wiederholt.

+0

Ok .. Danke für die Info. Diese Parameter (** retry_initial_interval & retry_max_interval **) sollten in Logstash oder ElasticSearch festgelegt werden. –

+0

Offensichtlich in Ihrer Logstash-Konfiguration. ES hat keine Ahnung, dass Logstash das Dokument in großen Mengen dorthin sendet. – Val

+0

Hallo Val, Sorry, ich war in der Mitte von etwas. Ich versuche, X-Pack für Kibana, Elasticsearch und Logstash einzurichten und ich habe damit Probleme. Sowieso i hinzugefügt, um die retry_initial_interval & retry_max_interval wie folgt ausgegeben { Elasticsearch {hosts => [ "localhost: 9200"] \t \t \t \t user => [ "elastisch"] \t \t \t \t Passwort => [ "changeme" ] \t \t \t \t retry_initial_interval => 5 \t \t \t \t retry_max_interval => 50 \t \t \t \t} stdout {codec => rubydebug} } als ich den logstash-service gestartet habe, habe ich keinen fehler gesehen. Hoffe es funktioniert gut. Ich konnte nicht testen, wie ich in der Mitte von x-pack bin. –