
Meine Hauptanforderung besteht darin, Protokolle mehrerer Rechner anzeigen und einfache Suchvorgänge darin durchführen zu können. Allerdings möchte ich, dass die Lösung nur minimale Auswirkungen auf den Rest des (Kern-)Systems hat. Ich habe keine Echtzeitanforderungen, der Prozess kann asynchron sein.
Syslog schien zunächst eine gute Option zu sein, aber was passiert, wenn der Syslog-Server ausfällt? Im schlimmsten Fall werden dem Benutzer des Kernsystems Fehler angezeigt, im besten Fall gehen einige Protokolle verloren.
Also begann ich mich umzusehen und fand Logstash (http://logstash.net/). Derzeit ist meine Idee:
- Auf jedem Server (auf dem die Kernkomponenten des Systems laufen) läuft ein Logstash-Agent
- Der Agent überwacht Logdateien und sendet diese an einen ElasticSearch-Cluster
- Es gibt einen anderen Server mit der Logstash-Benutzeroberfläche
Dieser Weg:
- Es gibt keinen einzelnen Ausfallpunkt
- selbst wenn der ES-Cluster ausfällt, sind nur die Agenten betroffen - die Anwendung schreibt weiterhin problemlos Protokolle in Dateien
- nachdem ES zurückkommt, wird der Agent (hoffentlich) aufholen und alle ausstehenden Protokolle senden (ist Logstash intelligent genug, um das zu tun?)
Glaubst du, dass das funktionieren wird? Oder kannst du vielleicht eine andere Lösung empfehlen?
Antwort1
Rsyslogverfügt über einige der von Ihnen beschriebenen Funktionen und das Projekt verfügt auch überumfangreiche Dokumentation zur zuverlässigen Nachrichtenweiterleitung.
Kurz gesagt, mit rsyslog können Sie dieRELPProtokoll für zuverlässige Syslog-Nachrichtenweiterleitung und Sie müssen sich dann keine Sorgen über Nachrichtenverluste machen. Außerdem haben Sie die Möglichkeit, lokale Spool-Dateien zu konfigurieren, in denen rsyslog Nachrichten puffert, falls der Remote-Server ausfällt. Sobald der Remote-Server wieder hochfährt, wird Ihr Agent aufholen.
Sie haben auch die Möglichkeit, rsyslog so zu konfigurieren, dass es in eine relationale Datenbank schreibt, und können die Datenbank dann so redundant machen, wie Sie möchten (ich persönlich finde, dass sich ein Syslog-Server leichter clustern lässt).
Antwort2
Diese Frage wird höchstwahrscheinlich geschlossen, da sie nicht zum Thema gehört. Weitere Informationen finden Sie in den FAQ.
Unabhängig davon sollte Syslog (oder jedes Syslog-basierte System) einwandfrei funktionieren. Wenn Sie sich Sorgen über den Verlust von Protokollen machen, sollten Sie unbedingt den Syslog-Server als Teil Ihres normalen DR-Szenarios sichern. Es ist eine ziemlich einfache Aufgabe/Anforderung.