Die Syslog-Funktionalität ist eines der wichtigsten Werkzeuge für einen Systemadministrator. Während das Schreiben von Protokolldateien mit interessanten Ereignissen ein gemeinsames Merkmal jeder Anwendung ist, bedeutet eine systemweite Protokollierungsfunktion, dass alle Protokolle auf dem System als eines behandelt werden können. Aber Syslog hört hier nicht auf. Mit diesen Tools kann ein Systemadministrator die Protokollverarbeitung im Rechenzentrum zentralisieren, indem er die eingehenden Ereignisse von Anwendungen an zentrale Protokollserver weiterleitet, wo sie in großem Umfang verarbeitet werden können.
Die zentralisierte Protokollierung ist auf einem Heimsystem mit wenigen Computern ein Overkill, hat aber bereits auf einem Dutzend Computern seine Vorteile. Wenn beispielsweise ein Dutzend Desktops alle ihre Protokolldateien an einen zentralen Protokollserver senden, müssen sie diese langfristig nicht speichern, die Protokolle belegen Speicherplatz auf dem Protokollserver. Der Administrator kann an nur einer Stelle nach Problemen suchen (möglicherweise durch automatisierte Berichte), die Protokolle können durch Backups sicher aufbewahrt, durch starke Komprimierung effektiver gespeichert werden und gehen nicht verloren Fehler des Clients oder Benutzerfehler.
In diesem Tutorial lernen Sie:
- So installieren Sie das rsyslog-Paket unter RHEL 8 / CentOS 8.
- So überprüfen Sie die erfolgreiche Installation.
- So starten, stoppen und starten Sie den rsyslog-Dienst automatisch.
- So testen Sie die Syslog-Funktionalität mit Logger.
Statusausgabe des rsyslog-Dienstes mit systemctl.
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | rsyslog 8 |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Schritt-für-Schritt-Anleitung zur Installation von Syslog auf RHEL 8 / CentOS 8
Unter RHEL 8 / CentOS 8 rsyslog
Paket sollte standardmäßig installiert sein und ausgeführt werden. Es kann Fälle geben, in denen Sie es trotzdem installieren müssen, zum Beispiel Paket beschädigt/gelöscht, Wiederherstellung von einem anderen Syslog-Dienst usw.
- Das
rsyslog
ist von den Basis-Repositories aus erreichbar. Sie müssen Repositorys für die Abonnementverwaltung eingerichtet und erreichbar haben, um Pakete installieren zu können. Damit ist die Installation nur noch eindnf
Befehl weg:# dnf install rsyslog -y
- Um die erfolgreiche Installation zu überprüfen, können Sie die
rpm
abfragen Datenbank für das Paket:# rpm -q rsyslog rsyslog-8.37.0-6.el8.x86_64
dnf
sollte auch den Status „Installationszeit“ in derinfo
anzeigen Ausgabe mit--verbose
Möglichkeit:# dnf info rsyslog --verbose [...] Installed Packages Name : rsyslog Version : 8.37.0 Release : 6.el8 Arch : x86_64 Size : 2.2 M Source : rsyslog-8.37.0-6.el8.src.rpm Repo : @System [...] Install time : Thu Dec 27 12:24:35 2018 Installed by : [...]
Und schließlich
systemd
sollte über den Dienst Bescheid wissen (läuft nicht), was bedeutet, dass die Dienstdateien vorhanden sind:# systemctl status rsyslog.service ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/
- Um den Dienst zu starten, zu stoppen und den Status abzurufen, verwenden wir
systemctl
. Im letzten Schritt haben wir den Status des gerade installierten Dienstes im inaktiven Zustand gesehen. Wir können es starten mit:# systemctl start rsyslog.service
Und hör auf mit:
# systemctl stop rsyslog.service
Der Status zeigte, dass der Dienst bei der Installation aktiviert ist, was bedeutet, dass er beim Start des Betriebssystems automatisch gestartet wird. Wir können diese Autostart-Funktion deaktivieren mit:
# systemctl disable rsyslog.service
Und aktivieren Sie es auf die gleiche Weise wieder:
# systemctl enable rsyslog.service
- Um zu testen, ob der Dienst funktioniert (d. h. Syslog-Ereignisse vom System akzeptiert), können wir
logger
verwenden :# echo "test message from user root" | logger
Und sehen Sie sich die Nachricht an, die ordnungsgemäß in die Haupt-Syslog-Datei gesendet wurde, indem Sie die letzten Zeilen von
/var/log/messages
überprüfen :# tail /var/log/messages [...] Dec 27 12:39:46 rhel8 rsyslogd[2636]: [origin software="rsyslogd" swVersion="8.37.0-6.el8" x-pid="2636" x-info="http://www.rsyslog.com"] start Dec 27 12:39:46 rhel8 systemd[1]: Started System Logging Service. Dec 27 12:41:56 rhel8 testuser[2668]: test message from user root
Wobei
rhel8
ist der Hostname des Laborcomputers,testuser
ist der ursprüngliche Benutzer, der zuroot
gewechselt ist , die PID unserer Sitzung und schließlich unsere Nachricht vonecho
umgeleitet zulogger
ist STDIN.