Wie man Ubuntu-Logs an einen Graylog-Server sendet
Graylog ist ein plattformzentriertes Log-Management-System. Es ist eines der beliebtesten Log-Management-Systeme in der DevOps-Welt mit Multi-Plattform-Unterstützung und kann in einer Container-Umgebung wie Docker und Kubernetes installiert werden.
Als Log-Management-System unterstützt Graylog mehrere Eingänge für verschiedene Arten von Anwendungen und Systemen. Du kannst Syslog-Input für Unix-ähnliche Betriebssysteme, Windows EventLog für Windows-Systeme und GELF (Graylog Extended Log Format) für deine eigenen Anwendungen verwenden.
In diesem Tutorial lernst du, wie du Protokolle von deinem Ubuntu-Rechner an den Graylog-Server sendest. In dieser Demo wird der neueste Ubuntu 22.04 Rechner als Client und der Graylog Server v4.3 verwendet. Wenn du wissen möchtest, wie du einen Graylog-Server unter Debian 11 einrichtest, dann schau hier nach.
Voraussetzungen
- Ein installierter Graylog-Server – Diese Demo verwendet den Graylog v4.3, der auf dem Debian-Server installiert ist.
- Ein Ubuntu-Client-Rechner – In dieser Demo wird der Ubuntu 22.04 Server verwendet.
- Ein Nicht-Root-Benutzer mit Sudo-Administrator-Rechten.
Einrichten der Graylog-Eingabe
Bevor du mit der Konfiguration des Ubuntu-Client-Rechners beginnst, musst du den Input auf deinem Graylog-Server einrichten.
Graylog unterstützt verschiedene Arten von Eingaben für das Logging-System, z. B. Syslog, Journald, Windows Eventlog, Raw/Plaintext, Dateien, usw.
Bei Linux-Systemen kannst du Logs ganz einfach über den Syslog-Eingang an den Graylog-Server senden. Du musst nur einen Eingang mit dem Typ Syslog auf deinem Graylog-Server erstellen, der dann automatisch an einem bestimmten Port und einer bestimmten IP-Adresse läuft.
Öffne deinen Webbrowser und besuche deine Graylog-Server-Installation (z. B. http://graylog. hwdomain.io/). Melde dich bei deinem Graylog-Server mit dem Standardbenutzer admin und deinem sicheren Passwort an.
Klicke auf das Menü “ System“ und dann auf “ Eingaben“, um die neue Seite zu öffnen.
Auf der Eingabeseite wählst du den Eingabetyp„Syslog UDP“ aus und klickst auf die Schaltfläche„Neue Eingabe starten„.
Jetzt musst du den Syslog-Eingang auf dem Graylog-Server einrichten:
- Der Knoten wird hier automatisch ausgewählt, also lass ihn als Standard.
- Gib den Titel für deinen neuen Eingang ein, zum Beispiel„Syslog Linux UDP„.
- Die Bindungsadresse Hier kannst du die IP-Adresse für deinen Eingang angeben. Das kann die lokale IP-Adresse deines Servers sein oder du kannst einfach 0.0.0.0 verwenden, um die Eingabe auf allen IP-Adressen des Servers auszuführen.
- Der Port Hier kannst du einen anderen Port für deine Eingabe verwenden. Vergewissere dich nur, dass keine anderen Dienste auf diesem Port laufen und dass der Port nicht im Bereich von 1-1024 liegt. In dieser Demo verwenden wir den UDP-Port 5148.
Klicke jetzt auf die Schaltfläche Speichern, um die Eingabe zu bestätigen.
Auf der Eingabeseite siehst du nun alle verfügbaren Eingaben, die auf deinem Graylog-Server laufen. Im folgenden Screenshot siehst du, dass der Eingang „Syslog Linux UDP“ auf dem UDP-Port 5148 mit der Bindungsadresse 0.0.0.0 läuft, d.h. auf allen IP-Adressen des Servers läuft.
Ubuntu Client für das Senden von Logs konfigurieren
Nun ist es an der Zeit, den Ubuntu-Client so zu konfigurieren, dass er Logs an den Graylog-Server sendet. Dazu kannst du den Rsyslog-Dienst verwenden.
Verbinde dich zunächst mit deinem Ubuntu-Rechner mit dem unten stehenden ssh-Befehl.
ssh user@SERVER-IP
Überprüfe das Rsyslog-Paket auf deinem Ubuntu-Rechner und stelle sicher, dass es installiert ist.
sudo dpkg -l | grep rsyslog sudo apt info rsyslog
Auf dem Screenshot unten siehst du, dass das rsyslog-Paket standardmäßig installiert ist. Das„ii“ in dem Feld bedeutet installiert.
Überprüfe nun den Rsyslog-Dienst mit dem unten stehenden Befehl.
sudo systemctl is-enabled rsyslog sudo systemctl status rsyslog
Du wirst sehen, dass der rsyslog-Dienst aktiviert ist, d.h. er wird beim Systemstart automatisch ausgeführt. Und der aktuelle Status des rsyslog-Dienstes ist running.
Um Protokolle vom Ubuntu-Client-Rechner über rsyslog an den Graylog-Server zu senden, musst du eine neue zusätzliche rsyslog-Konfiguration erstellen. Die Standardkonfiguration von rsyslog ist die Datei„/etc/rsyslog.conf„, und zusätzliche rsyslog-Konfigurationen können im Verzeichnis „/etc/rsyslog.d“ gespeichert werden.
Erstelle eine neue zusätzliche rsyslog-Konfiguration„/etc/rsyslog.d/60-graylog.conf“ mit dem Editor nano.
sudo nano /etc/rsyslog.d/60-graylog.conf
Füge die folgende Konfiguration in die Datei ein.
*.*@192.168.5.10:5148;RSYSLOG_SyslogProtocol23Format
Speichere und schließe die Datei, wenn du fertig bist.
Die IP-Adresse lautet 192.168.5.10. Das ist die IP-Adresse des Graylog-Servers, der die Eingaben über den UDP-Port 5148 ausführt.
Starte nun den rsyslog-Dienst neu, um die neuen Änderungen und die neue Konfiguration mit dem unten stehenden Befehl zu übernehmen.
sudo systemctl restart rsyslog
Damit hast du die grundlegende rsyslog-Konfiguration für das Senden von Protokollen an den Graylog-Server abgeschlossen.
Überprüfen der Logs vom Graylog-Server
Gehe nun zurück zu deinem Webbrowser und dem Graylog Dashboard. Klicke oben auf das Menü Suchen und du erhältst alle Logs vom Ubuntu-Client-Rechner wie unten dargestellt.
Über das Graylog-Such-Dashboard kannst du die Logmeldungen deiner Server oder Anwendungen filtern, Logmeldungen in Echtzeit überprüfen, Logmeldungen aus bestimmten Zeiträumen überprüfen usw.
Fazit
Herzlichen Glückwunsch! Du hast nun erfolgreich den Ubuntu-Client-Rechner mit dem Rsyslog-Dienst konfiguriert, um Logs an den Graylog-Server zu senden. Außerdem hast du die Grundkonfiguration der Graylog-Eingänge gelernt, indem du einen neuen Eingangstyp Syslog UDP auf dem Graylog-Server angelegt hast. Eine weitere Möglichkeit, Logs zu senden, ist die Verwendung von Syslog TCP, Dateien, JSON und Beats von Elastic.