ich folgende Konfiguration haben:Logstash: Verwendung als document_id Offset
FileBeat -> Logstash -> Elasticsearch -> Kibana (alle 5.1.1)
Wenn ich die Protokolldatei drücken (JSON
) in Filebeat, und wenn ich versuche, es in Kibana Interface zu sehen, werden die gleichen Protokolle 3-4 Mal hinzugefügt (Duplikate). Nach dem Überprüfen der FileBeat-Protokolle wurde mir klar, dass dies daran liegen könnte, dass Filebeat keine Bestätigung für gesendete Logs erhält und daher weiter sendet. zu stoppen doppelte Dokumente zu erhalten Ich denke, ich muss eine document_id
in Logstash Config-Datei verwenden.
heißt
output
{
elasticsearch {
document_id => "%{offset}"
index => "ap-index"
hosts => ["localhost:9222"]
}
}
Meine Frage ist, Ist das Offset-Feld für jedes Dokument einzigartig? und Ist das ein richtiger Weg, um Duplikate zu stoppen?
Ich könnte mehr als eine Protokolldatei haben und ja es kann eine Protokollrotation sein. Auch mein Timestamp ist möglicherweise nicht einzigartig. In diesem Fall kann Hash unterschiedlich sein ?? –
Sie können diesen Hash ändern, um den durch Filebeat angegebenen Offset zu berücksichtigen. Wenn Ihre Zeitstempel wie in Sekunden eine niedrige Auflösung haben, würde ich dies tun. Ich werde die Antwort aktualisieren, um den Offset aufzunehmen. –