Protokolle sind sehr nützlich für die Analyse und Fehlerbehebung von Problemen im Zusammenhang mit Systemen und Anwendungen in Linux. Standardmäßig befinden sich alle Protokolldateien in Linux-basierten Betriebssystemen im Verzeichnis /var/log. Es gibt verschiedene Arten von Protokolldateien, darunter Cron, Kernel, Benutzer, Sicherheit, und die meisten dieser Dateien werden vom Rsyslog-Dienst gesteuert.
Rsyslog ist ein leistungsstarkes und sicheres System zur Protokollverarbeitung. Der Rsyslog-Server empfängt über das Netzwerk Protokolle von mehreren physischen oder virtualisierten Servern und überwacht den Zustand verschiedener Dienste. Mit dem Rsyslog-Server können Sie Protokolle für andere Server, Netzwerkgeräte und Remoteanwendungen von einem zentralen Standort aus überwachen.
In diesem Tutorial erklären wir, wie man den Rsyslog-Server auf dem Ubuntu 18.04-Server konfiguriert.
Voraussetzungen
- Zwei Server mit Ubuntu 18.04.
- Eine statische IP-Adresse 192.168.0.101 ist auf dem Rsyslog-Servercomputer konfiguriert und 192.168.0.102 ist auf dem Rsyslog-Clientcomputer konfiguriert.
- Ein Root-Passwort ist auf beiden Servern konfiguriert.
Rsyslog installieren
Standardmäßig ist Rsyslog auf dem Ubuntu 18.04-Server installiert. Wenn es nicht installiert ist, können Sie es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install rsyslog -y
Nach der Installation von Rsyslog können Sie die Version von Rsyslog mit dem folgenden Befehl überprüfen:
rsyslogd -v
Sie sollten die folgende Ausgabe erhalten:
rsyslogd 8.32.0, kompiliert mit:PLATFORM:x86_64-pc-linux-gnu PLATFORM (lsb_release -d):FEATURE_REGEXP:Ja GSSAPI Kerberos 5-Unterstützung:Ja FEATURE_DEBUG (Debug-Build, langsamer Code):Nein 32-Bit-Atomic-Operationen werden unterstützt :Ja Unterstützte 64-Bit-Atomoperationen:Ja Speicherzuweisung:Systemstandard Laufzeitinstrumentierung (langsamer Code):Nein uuid-Unterstützung:Ja systemd-Unterstützung:Ja Anzahl der Bits in RainerScript-Ganzzahlen:64 Weitere Informationen finden Sie unter http://www.rsyslog.com.
Sie können den Status von Rsyslog auch mit dem folgenden Befehl überprüfen:
systemctl status rsyslog
Sie sollten die folgende Ausgabe sehen:
Rsyslog-Server konfigurieren
Rsyslog ist jetzt installiert und läuft. Als nächstes müssen Sie es so konfigurieren, dass es in einem Servermodus ausgeführt wird. Sie können dies tun, indem Sie die Datei /etc/rsyslog.conf.
bearbeitennano /etc/rsyslog.conf
Zuerst müssen Sie das Protokoll entweder UDP oder TCP oder beides definieren.
Um sowohl UDP- als auch TCP-Verbindungen gleichzeitig zu verwenden, suchen Sie die folgenden Zeilen und kommentieren Sie sie aus:
$ModLoad imudp$UDPServerRun 514$ModLoad imtcp$InputTCPServerRun 514
Definieren Sie als Nächstes das spezifische Subnetz, die IP oder die Domäne, um den Zugriff wie unten gezeigt zu beschränken:
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24, *.example.com$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24, *.example.com
Als nächstes müssen Sie eine Vorlage erstellen, um dem Rsyslog-Server mitzuteilen, wie er eingehende Syslog-Nachrichten speichern soll. Fügen Sie die folgenden Zeilen direkt vor dem Abschnitt GLOBAL DIRECTIVES hinzu:
$template remote-incoming-logs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann die Rsyslog-Konfiguration mit dem folgenden Befehl auf Syntaxfehler:
rsyslogd -f /etc/rsyslog.conf -N1
Sie sollten die folgende Ausgabe sehen:
rsyslogd:Version 8.32.0, Konfigurationsvalidierungslauf (Stufe 1), Masterkonfiguration /etc/rsyslog.confrsyslogd:Ende des Konfigurationsvalidierungslaufs. Tschüss.
Starten Sie schließlich den Rsyslog-Dienst mit dem folgenden Befehl neu:
systemctl startet rsyslog neu
Überprüfen Sie nun mit dem folgenden Befehl, ob Rsyslog auf TCP/UDP lauscht:
netstat -4altunp | grep 514
Sie sollten die folgende Ausgabe erhalten:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1332/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 1332/rsyslogd
Rsyslog-Client konfigurieren
Der Rsyslog-Server ist installiert und konfiguriert, um Protokolle von Remote-Hosts zu empfangen.
Jetzt müssen Sie den Rsyslog-Client konfigurieren, um Syslog-Meldungen an den entfernten Rsyslog-Server zu senden.
Melden Sie sich am Client-Rechner an und öffnen Sie die Rsyslog-Konfigurationsdatei wie unten gezeigt:
nano /etc/rsyslog.conf
Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:
##Senden von Protokollen über UDP aktivieren, folgende Zeile hinzufügen:*.* @192.168.0.101:514##Senden von Protokollen über TCP aktivieren, folgende Zeile hinzufügen:*.* @@192.168.0.101:514## Festlegen der Festplattenwarteschlange, wenn der rsyslog-Server heruntergefahren wird:$ActionQueueFileName queue$ActionQueueMaxDiskSpace 1g$ActionQueueSaveOnShutdown on$ActionQueueType LinkedList$ActionResumeRetryCount -1
Speichern und schließen Sie die Datei. Starten Sie dann den Rsyslog-Server neu, um die Konfigurationsänderungen zu übernehmen:
systemtcl startet rsyslog neu
Kundenprotokoll anzeigen
An diesem Punkt ist der Rsyslog-Client so konfiguriert, dass er sein Protokoll an den Rsyslog-Server sendet.
Melden Sie sich jetzt beim Rsyslog-Server an und überprüfen Sie das Verzeichnis /var/log. Sie sollten den Eintrag mit dem Hostnamen Ihrer Client-Rechner einschließlich mehrerer Protokolldateien sehen:
ls /var/log/rsyslog-client/
Ausgabe:
CRON.log kernel.log rsyslogd-2039.log rsyslogd.log sudo.log wpa_supplicant.log
Schlussfolgerung
Im obigen Artikel haben wir gelernt, wie man den Rsyslog-Server auf dem Ubuntu 18.04-Server installiert und konfiguriert. Wir haben auch gelernt, wie man den Rsyslog-Client konfiguriert, um Protokolle an den Rsyslog-Server zu senden. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.