2017-03-26 7 views
1

Betrachten Sie den folgenden Anwendungsfall:Kann Beats vorhandene Dokumente in Elasticsearch aktualisieren?

  • ich die Informationen von einem bestimmten Logzeile will in Elasticsearch indiziert werden, als Dokument X.
  • ich die Informationen von einer Protokollzeile will weiter unten in der Protokolldatei in dasselbe Dokument X indiziert werden (das Original nicht überschreiben, nur weitere Daten hinzufügen).

Der erste Teil, kann ich offensichtlich mit filebeat erreichen.

Für den zweiten hat jemand eine Idee darüber, wie man es angehen kann? Könnte ich zum Beispiel immer noch filebeat + eine Pipeline auf einem Ingest-Knoten verwenden?

Natürlich kann ich das ES-API verwenden, um das genannte Dokument zu aktualisieren, aber ich suchte nach einer Lösung, die keine Änderungen an meiner Anwendung erfordert - es ist vielmehr möglich, die Protokolldateien zu verwenden.

Vielen Dank im Voraus!

Antwort

1

Nein, das war nichts, was Beats erreichen sollte. Anreicherung, wie Sie beschreiben, ist eine der Sachen, mit denen Logstash helfen kann.

Logstash verfügt über einen Elasticsearch input, mit dem Sie Daten von ES abrufen und in der Pipeline zur Anreicherung verwenden können. Und die Elasticsearch output unterstützt Upsert-Operationen (Update falls vorhanden, neu einfügen, wenn nicht). Mit diesen beiden Funktionen können Sie Dokumente anreichern und aktualisieren, sobald neue Daten eintreffen.

Sie können die Protokollzeilen wie bei Elasticearch aufnehmen. Erstellen Sie dann mithilfe von Logstash einen separaten Index, der entities-spezifisch ist und basierend auf Daten aus den Protokollen ausgeführt wird.

Verwandte Themen