LogStash Agenten auf allen
Ja, Sie einige Mittel auf allen Maschinen müssen
Maschinen installiert werden. Die Lösung im ELK-Stack ist eigentlich
FileBeat, keine Logstash-Agenten. Logstash ist in diesem Szenario eher ein Server/Nachrichtenbus.
In ähnlicher Weise müsste ein Spark-Job ausgeführt werden, um eine Datei zu lesen. Persönlich hätte ich alles andere hinter einer Protokolldatei (sogar wörtlich nur tail -f file.log
, die einen Netzsockel herauspeitscht). Das Schreiben und Verteilen von Spark JAR + Konfigurationsdateien ist ein klarer Nachteil. Besonders wenn Sie Java auf jedem Rechner installieren müssen, auf dem Sie sich anmelden.
Flume oder Fluentd sind andere weit verbreitete Optionen für verteilte Logsammlung mit Kafka Zielen
LogStash Daten an Kafka schieben
The Beats framework has a Kafka Output, aber Sie können auch zuerst Logstash versenden.
Es ist nicht klar, ob Sie LogStash ausschließlich für Kafka verwenden oder ElasticSearch hier verwenden, aber Kafka Connect bietet eine Dateiquelle (und Elasticsearch-Ausgabe).
liest nur, dass nicht die gesamte Datei erneut
Was auch immer Werkzeug, das Sie (einschließlich Spark-Streaming der Quelle der Datei) verwenden, werden in der Regel Verzeichnisse von Dateien beobachten (weil, wenn Sie keine Dateien rotierenden Protokoll, Sie mache es falsch. Wenn Dateien eintreffen oder Bytes in eine Datei geschrieben werden, muss das Framework intern eine Art von Markierung festschreiben, um anzuzeigen, welche Elemente bisher verbraucht wurden. Um den Agent zurückzusetzen, sollten diese Metadaten entfernt/zurückgesetzt werden können, um von Anfang an zu beginnen.
Warum möchten Sie Spark Streaming verwenden? –