GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie den zentralen Protokollierungsserver mit Rsyslog unter Ubuntu 20.04 ein

Rsyslog ist ein Open-Source-Dienstprogramm für die Protokollverarbeitung. Es ermöglicht die Protokollierung von Daten unterschiedlicher Systemtypen in einem zentralen Repository. Rsyslog ist ein Syslog-Protokoll mit mehr Erweiterungen, Funktionen und Vorteilen.

Was macht rsyslog so leistungsfähig? Rsyslog kann über eine Million Nachrichten pro Sekunde an lokale Ziele liefern, wenn eine begrenzte Verarbeitung angewendet wird.

In diesem Tutorial lernen wir, wie man rsyslog installiert und konfiguriert auf Ubuntu 20.04 .

Rsyslog-Funktionen

Rsyslog kam 2004 auf den Markt und erweitert das Syslog-Protokoll um neue Funktionen:

  • Unterstützung des RELP-Protokolls
  • Unterstützung für gepufferten Betrieb
  • Abhören von TCP/UDP-Verbindungen (mit Beschränkungen für Ports, IPs)
  • Unterstützung für das Laden vieler Module (z. B. Modul zur Unterstützung des RELP-Protokolls)
  • Unterstützung für Verwerfungsnachrichten, die speziell konfigurierte Regeln enthalten

In Rsyslog bleiben die Konfigurationsdateien dieselben wie in Syslog. Das bedeutet einfach, dass Sie eine syslog.conf-Datei direkt in rsyslog.conf kopieren können und es funktioniert.

Was sind Protokolle und Syslog?

Bevor wir zum Konfigurationsprozess selbst gehen, sehen wir uns zuerst an, wofür Protokolle verwendet werden. Die Protokollinformationen können Ihnen wirklich helfen zu sehen, was genau auf Ihrem System passiert ist oder was genau unter der Haube vor sich geht.

Lassen Sie mich Ihnen ein Beispiel geben:wenn Ihr PC plötzlich eingefroren ist oder vielleicht abgestürzt ist oder sogar Ausfallzeiten Ihres Systems und viele weitere nützliche Informationen, die Sie nicht auf die übliche Weise sehen können, wenn Fehlermeldungen angezeigt werden.

Wenn Sie wissen, wie Protokolle richtig verwendet werden, können sie Ihnen viele Funktionen und Vorteile für Diagnoseinformationen über das System selbst bieten.

Standardmäßig verwendet Linux den Syslog-Daemon, um Protokolle darüber aufzuzeichnen, wie das System läuft, und diese Protokolle dann in einem zentralen Repository unter /var/log abzulegen wo wir sie untersuchen und untersuchen können.
Einfach ausgedrückt wird alles, von Kernel-Ereignissen bis hin zu Benutzeraktionen, von Linux protokolliert, sodass Sie fast jede Aktion sehen können, die auf Ihrem PC oder Ihren Servern ausgeführt wird.

Im Linux-Dateisystem gibt es ein spezielles Verzeichnis zum Speichern von Protokollen namens /var/log . Dieses Verzeichnis enthält alle Protokolle des Betriebssystems selbst wie:Dienste oder verschiedene Anwendungen, die auf dem System ausgeführt werden.

Mal sehen, wie Verzeichnisse und Protokollstrukturen auf frischem Linux Ubuntu 20.04 aussehen.

Verzeichnis, in dem verschiedene Arten von Protokollen gespeichert sind:

/var/log/syslog - Speichert alle Startmeldungen, Anwendungsstartmeldungen usw. Speichert praktisch alle globalen Systemprotokolle.
/var/log/cron - Die Cron-Jobs sind im Grunde eine Art geplante und automatisierte Aufgabe, die im System erstellt wird und regelmäßig und wiederholt ausgeführt wird. Sie können sehen, was dieses Protokollverzeichnis speichern würde.
/var/log/kern.log - speichert Kernel-Protokolle. Egal um welche Protokolle es sich handelt. Ereignisprotokolle, Fehler oder Warnprotokolle.
/var/log/auth.log - Authentifizierungsprotokolle
/var/log.boot.log - Systemstartprotokolle
/var/log/mysql.d - MySQL-Protokolle
/var/log/httpd - Apache-Protokollverzeichnis
/var/log/maillog - Mailserverprotokolle

Rsyslog Centralized Log Server auf Ubuntu 20.04 einrichten

Nach einem kurzen Überblick, was Protokolle, Syslog sind und wo rsyslog seinen Platz hat, gehen wir zum Konfigurationsprozess selbst über.

Voraussetzungen

  • Zwei Server mit Ubuntu 20.04
  • Eine statische IP-Adresse:Beispiel:192.168.0.101 muss auf dem Rsyslog-Servercomputer konfiguriert werden und 192.168.0.102 wird auf dem Rsyslog-Clientcomputer konfiguriert

Auf dem Ubuntu 20.04-System ist rsyslog standardmäßig installiert die mit Standardsystempaketen geliefert wurden.

Sie können überprüfen, ob es ausgeführt wird:

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 21:16:34 UTC; 12h ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 566 (rsyslogd)
      Tasks: 4 (limit: 2281)
     Memory: 2.7M
     CGroup: /system.slice/rsyslog.service
             └─566 /usr/sbin/rsyslogd -n -iNONE

Führen Sie den folgenden Befehl aus, um die derzeit installierte Rsyslog-Version zu überprüfen:

$ rsyslogd -v

Ausgabe:

rsyslogd  8.2001.0 (aka 2020.01) compiled with:
         PLATFORM:                               x86_64-pc-linux-gnu
         PLATFORM (lsb_release -d):
         FEATURE_REGEXP:                         Yes
         GSSAPI Kerberos 5 support:              Yes
         FEATURE_DEBUG (debug build, slow code): No
         32bit Atomic operations supported:      Yes
         64bit Atomic operations supported:      Yes
         memory allocator:                       system default
         Runtime Instrumentation (slow code):    No
         uuid support:                           Yes
         systemd support:                        Yes
         Config file:                            /etc/rsyslog.conf
         PID file:                               /run/rsyslogd.pid
         Number of Bits in RainerScript integers: 64

Falls nicht installiert oder ausgeführt, installieren Sie rsyslog mit den folgenden Befehlen:

$ sudo apt-get update
$ sudo apt-get install rsyslog

Jetzt ist es an der Zeit, zu rsyslog.conf zu gehen Datei, um einige Zeilen zu entkommentieren und zu ändern, um den rsyslog-Dienst im Servermodus auszuführen:

$ sudo nano /etc/rsyslog.conf

Entkommentieren Sie diese vier Zeilen, die die udp- und tcp-Portbindung aktivieren:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

Der nächste Schritt, den wir hinzufügen müssen, ist das Erstellen einer neuen Vorlage. Wir müssen eine neue Vorlage zum Empfangen von Remote-Nachrichten erstellen. Eine Vorlage gibt dem rsyslog-Server Anweisungen zum Speichern eingehender syslog-Nachrichten.

HINWEIS: Vorlage direkt vor GLOBAL DIRECTIVES hinzufügen Abschnitt:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

Die obige Zeile zeigt an, dass empfangene Protokolle verarbeitet und im Verzeichnis /var/log/ gespeichert werden. Sie können in der Datei /etc/rsyslog.conf definieren, wo rsyslog-Protokolle abgelegt werden sollen.

Der Dateiname enthält die Variablen %HOSTNAME% und %PROGRAMNAME%, die für den Namen des Clientcomputers und des Clientprogramms stehen, das die Protokollnachricht erzeugt hat.

Speichern Sie dies und starten Sie den rsyslog-Dienst neu:

$ sudo systemctl restart rsyslog

Bestätigen Sie, dass der rsyslog-Dienst die konfigurierten Ports abhört:

$ ss -tunelp | grep 514
udp    UNCONN  0       0                    0.0.0.0:514           0.0.0.0:*      ino:33591 sk:1 <->                                                             
udp    UNCONN  0       0                       [::]:514              [::]:*      ino:33592 sk:4 v6only:1 <->                                                    
tcp    LISTEN  0       25                   0.0.0.0:514           0.0.0.0:*      ino:33595 sk:7 <->                                                             
tcp    LISTEN  0       25                      [::]:514              [::]:*      ino:33596 sk:9 v6only:1 <->      

Wenn Sie vielleicht einen ufw-Firewall-Dienst haben, müssen Sie rsyslog-Firewall-Portregeln zulassen:

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

Zum Verifizieren der Konfiguration , führen Sie den folgenden Befehl aus:

sudo rsyslogd -N1 -f /etc/rsyslog.conf

Rsyslog auf dem Client konfigurieren

Sobald diese Konfiguration des rsyslog-Servers abgeschlossen ist, besteht der nächste Schritt darin, Ihren rsyslog-Client-Rechner so zu konfigurieren, dass er Protokolle an die Remote sendet rsyslog-Server.

Während wir mit der Datei rsyslog.conf auf einem Remote-Server arbeiten, wird dieser diese Datei auf der Client-Seite mit Ihrem bevorzugten Editor öffnen und einige Änderungen bearbeiten:

sudo nano /etc/rsyslog.conf

Und Beibehaltung des FQDN zulassen:Um rsyslog alternativ mit dem vollständig qualifizierten Domänennamen (FQDN, wie z. B. system1.example.com) statt einfach dem Hostnamen (system1) senden zu lassen, verwenden Sie die Anweisung:

$PreserveFQDN on

Fügen Sie am Ende den konfigurierten Remote-rsyslog-Server hinzu.

 @192.168.0.101:514

Oder Sie können das Senden von Protokollen über UDP aktivieren. Verwenden Sie für TCP @@ anstelle von einem

*.* @@192.168.0.101:514

Fügen Sie am Ende die folgenden Variablen hinzu, falls der rsyslog-Server ausfällt:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Starten Sie dann den rsyslog-Dienst neu:

sudo systemctl restart rsyslog

Überprüfen Sie die Protokolle

Nachdem die Konfiguration auf dem Client-Rechner abgeschlossen ist, möchten wir überprüfen, ob alles gut gelaufen ist.

Gehen Sie zu Ihrem Rsyslog-Server, um die Protokolle von Ihrem Client-Rechner zu überprüfen:

$ ls /var/log/

Sie werden so etwas finden:

In meinem Fall ist das Verzeichnis namens obrad der Name meines Client-Rechners, den ich derzeit verwende. Wir betreten dieses Verzeichnis und sehen etwa Folgendes:

Sie sollten alle von Rsyslog generierten Protokolldateien sehen.

Sie können jedes dieser Protokolle mit dem folgenden Befehl überprüfen:Lassen Sie uns zum Beispiel systemd.log inspizieren .

$ tail -f /var/log/obrad/systemd.log

Und Sie werden so etwas sehen:

2021-03-25T11:31:59+00:00 obrad systemd[1206]: Started VTE child process 42166 launched by gnome-terminal-server process 3186.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Created slice dbus\x2d:1.2\x2dorg.gnome.gedit.slice.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Started dbus-:[email protected].
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:[email protected]: Succeeded.

Wie Sie sehen können, habe ich Terminal und Gedit-Textbearbeitung auf meinem Client-Rechner gestartet und Rsyslog generiert und dies in der Ausgabe angezeigt.

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie die grundlegenden Parameter für rsyslog mithilfe des Client-Server-Modells unter Ubuntu 20.04 konfiguriert werden. Die anderen Alternativen für Rsyslog sind syslog-ng, FluentD, Logstash, GreyLog2 und Logagent, Filebeat.




Ubuntu
  1. So richten Sie den Rsyslog-Server unter Ubuntu 18.04 LTS ein

  2. So richten Sie den Rsyslog-Server unter Debian 11 ein

  3. So richten Sie einen zentralen Protokollierungsserver mit Rsyslog ein

  4. So richten Sie einen NTP-Server unter Ubuntu und LinuxMint ein

  5. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

So richten Sie OpenVPN auf Ubuntu Server ein

So richten Sie den Git-Server unter Ubuntu 20.04 ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So richten Sie ein VPN unter Ubuntu ein

So richten Sie einen DHCP-Server unter Ubuntu ein

So richten Sie Rsyslog unter Ubuntu 20.04 LTS ein