Ich werde versuchen, Ihnen den Elchstapel mit einem Beispiel zu erklären.
Anwendungen generieren Protokolle, die alle das gleiche Format (Timestamp | Loglevel | Nachricht) auf jedem Computer in unserem Cluster haben und diese Protokolle in eine Datei schreiben.
Filebeat (ein Logshipper aus Elk) verfolgt diese Datei, sammelt regelmäßig Aktualisierungen der Datei und leitet sie über das Netzwerk an Logstash weiter. Im Gegensatz zu logstash ist Filebeat eine leichtgewichtige Anwendung, die sehr wenig Ressourcen verbraucht, so dass es mir nichts ausmacht, sie auf jedem Rechner im Cluster auszuführen. Es merkt, wenn Logstash inaktiv ist und wartet mit Datentransfer bis Logstash wieder läuft (keine Logs sind verloren).
Logstash empfängt Nachrichten von allen Log-Shillern über das Netzwerk und wendet Filter auf die Nachrichten an. In unserem Fall teilt es jeden Eintrag in Timestamp, Loglevel und Message auf. Dies sind separate Felder und können später leicht gesucht werden. Alle Nachrichten, die diesem Format nicht entsprechen, erhalten ein Feld: ungültiges Protokollformat. Diese Nachrichten mit Feldern werden nun in einer Geschwindigkeit an die elastische Suche weitergeleitet, mit der die elastische Suche umgehen kann.
Elastische Suche speichert alle Nachrichten und Indizes (bereitet für schnelle Suche) alle Felder im Nachrichten. Es ist unsere Datenbank.
Wir verwenden dann Kibana (auch von Elk) als GUI für den Zugriff auf die Protokolle. In Kibana kann ich so etwas machen: Zeige mir alle Logs zwischen 3-5 Uhr heute mit Loglevel Fehler, dessen Nachricht MyClass enthält. Kibana wird elasticsearch nach den Ergebnissen fragen und diese anzeigen
Elasticsearch ist eine verherrlichte Datenbank mit einem effektiven Suchmechanismus. Logstash ist eines von vielen Daten-Frontends, das Daten in Elasticsearch-freundlicher Weise liefern kann - folglich indiziert Logstashs Indexer die Daten (Extrahieren von Feldern, Entscheiden, welcher Index zum Speichern der Daten usw. verwendet wird), und der Versender liefert die Daten an Elasticsearch. .. – zwer