fluentd: Logs aus einem Share sammeln

haschi

Registered User
Hallo zusammen,

ich nutze zur Logfile-Zentralisierung fluentd. Der shipper ist entsprechend auf mehreren Servern eingerichtet.

Auf jedem Server wird ein NFS-Share eingebunden (/data), auf dem auch diverse Logs landen, diese Logs muss ich definitiv abholen. Um mein Problem jetzt zu konkretisieren..

Auf Server 1 und Server 2 laufen diverse Jobs, welche durch Load-balancing "willkürlich" hinundher geschoben werden. Die Logs werden aus dem Grund auf /data geschrieben, pro Job immer ins gleich File. Mein Problem ist nun, dass somit die Logs für "Job1" als Beispiel doppelt von fluentd abgeholt werden.

Wie kann ich dieses unterbinden? Meine erste Idee war es, fluentd nur auf einem Server zu installieren. Kann ich aber nicht machen, da dann andere lokale Logs nicht abgeholt werden und bei Ausfall des Servers mit fluentd ebenfalls keine Logs von /data geholt werden.

Hat jemand eine Idee dazu? Konnte nach längerer Suche keinen Ansatz ergooglen...

Freue mich sehr auf eine Antwort! :-)

Gruß
Marco
 
Hi,

knifflige Situation. Das heißt per Load Balancing wird die Last der Workflows mal auf Server 1 und dann wieder auf Server 2 ausgeführt oder führen beide Server zeitgleich noch andere Jobs aus?

Der Ansatz wäre ja, das Server 2 erst dann wieder neue Jobs in der Log bearbeiten darf wenn Server 1 mit dem Job fertig ist und fluentd die Daten eingelesen hat. Also sollte fluentd die Daten ins NFS schreiben, dann kommt der Flush und somit werden mit "Exactly once" auch nur die Daten nach dem Flush einmal weitergegeben.

Ich habe mich leider mit fluentd nicht wirklich stark auseinandergesetzt und sicherlich hast du die folgende Webseite schon zu genüge durchsucht.. Ich poste dir den Link aber dennoch mal:

http://docs.fluentd.org/articles/high-availability

Viele Grüße
br4inbug
 
Back
Top