Sicherheit

So senden Sie Linux-Protokolle an einen Remote-Server

So senden Sie Linux-Protokolle an einen Remote-Server
Der Hauptgrund für die Anwendung von Remote-Logging ist der gleiche Grund, aus dem eine dedizierte /var-Partition empfohlen wird: eine Frage des Speicherplatzes, aber nicht nur. Indem Sie Protokolle an ein dediziertes Speichergerät senden, können Sie verhindern, dass Ihre Protokolle den gesamten Speicherplatz einnehmen, während Sie eine riesige historische Datenbank führen, um Fehler zu vermeiden.

Das Hochladen von Protokollen auf einen Remote-Host ermöglicht es uns, Berichte für mehr als ein Gerät zu zentralisieren und ein Berichts-Backup zu erstellen, falls etwas fehlschlägt, das uns daran hindert, lokal auf Protokolle zuzugreifen.

Dieses Tutorial zeigt, wie Sie einen Remote-Server zum Hosten von Protokollen einrichten und diese Protokolle von Client-Geräten senden und wie Sie Protokolle in Verzeichnissen nach Client-Host klassifizieren oder aufteilen.

Um den Anweisungen zu folgen, mit denen Sie ein virtuelles Gerät verwenden können, habe ich einen kostenlosen VPS von Amazon genommen (wenn Sie Hilfe beim Einrichten eines Amazon-Geräts benötigen, haben sie großartige dedizierte Inhalte auf LinuxHint at https://linuxhint.com/kategorie/aws/). Beachten Sie, dass sich die öffentliche IP des Servers von seiner internen IP unterscheidet.

Vor dem Start:

Die zum Remote-Versenden von Protokollen verwendete Software ist rsyslog, es kommt standardmäßig auf Debian und abgeleiteten Linux-Distributionen, falls Sie es nicht ausführen lassen:

# sudo apt install rsyslog

Sie können den rsyslog-Status jederzeit überprüfen, indem Sie Folgendes ausführen:

# sudo service rsyslog-Status

Wie Sie auf dem Screenshot sehen können, ist der Status aktiv. Wenn Ihr rsyslog nicht aktiv ist, können Sie es jederzeit starten, indem Sie Folgendes ausführen:

# sudo service rsyslog start

Oder

# systemctl starte rsyslog

Hinweis: Weitere Informationen zu allen Optionen zur Verwaltung von Debian-Diensten finden Sie unter Dienste unter Debian stoppen, starten und neu starten.

Das Starten von rsyslog ist im Moment nicht relevant, da wir es nach einigen Änderungen neu starten müssen.

So senden Sie Linux-Protokolle an einen Remote-Server: Die Serverseite

Bearbeiten Sie zunächst die Datei auf dem Server /etc/resyslog.conf mit nano oder vi:

# nano /etc/rsyslog.conf

Entkommentieren Sie in der Datei die folgenden Zeilen oder fügen Sie sie hinzu:

module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")

Oben haben wir den Empfang von Protokollen über UDP und TCP unkommentiert oder hinzugefügt. Sie können nur einen oder beide zulassen. Nach dem Entkommentieren oder Hinzufügen müssen Sie Ihre Firewall-Regeln bearbeiten, um eingehende Protokolle zuzulassen, um den Empfang von Protokollen über die TCP-Ausführung zuzulassen:

# ufw erlauben 514/tcp

So lassen Sie eingehende Protokolle über das UDP-Protokoll ausführen:

# ufw erlauben 514/udp

Um sowohl TCP als auch UDP zuzulassen, führen Sie die beiden obigen Befehle aus.

Hinweis: Weitere Informationen zu UFW finden Sie unter Arbeiten mit Debian-Firewalls (UFW).

Starten Sie den rsyslog-Dienst neu, indem Sie Folgendes ausführen:

# sudo service rsyslog neu starten

Fahren Sie nun mit dem Konfigurieren der Sendeprotokolle auf dem Client fort, dann kehren wir zum Server zurück, um das Format zu verbessern.

So senden Sie Linux-Protokolle an einen Remoteserver: Die Clientseite

Fügen Sie auf dem Client-Sendeprotokoll die folgende Zeile hinzu und ersetzen Sie die IP 18.223.3.241 für Ihre Server-IP.

*.* @@18.223.3.241:514

Beenden und speichern Sie die Änderungen, indem Sie STRG +X . drücken.

Nach der Bearbeitung starten Sie den rsyslog-Dienst neu, indem Sie Folgendes ausführen:

# sudo service rsyslog neu starten

Auf der Serverseite:

Jetzt können Sie Protokolle in /var/log überprüfen. Beim Öffnen werden Sie gemischte Quellen für Ihr Protokoll feststellen. Das folgende Beispiel zeigt Protokolle von Amazons interner Schnittstelle und vom Rsyslog-Client (Montsegur):

Ein Zoom zeigt es deutlich:

Es ist nicht angenehm, gemischte Dateien zu haben. Im Folgenden werden wir die rsyslog-Konfiguration bearbeiten, um Protokolle nach der Quelle zu trennen separate.

Um Protokolle innerhalb eines Verzeichnisses mit dem Namen des Client-Hosts zu unterscheiden, fügen Sie die folgenden Zeilen zum Server hinzu /etc/rsyslog.conf, um rsyslog anzuweisen, wie Remote-Logs gespeichert werden, um dies im rsyslog zu tun.conf füge die Zeilen hinzu:

$template RemoteLogs,"/var/log/%HOSTNAME%/.Log"
*.* ?RemoteLogs
& ~

Beenden Sie das Speichern der Änderungen durch Drücken von STRG + X und starten Sie rsyslog auf dem Server erneut:

# sudo service rsyslog neu starten

Jetzt können Sie neue Verzeichnisse sehen, eines namens ip-172.31.47.212, die eine AWS-interne Schnittstelle ist, und andere namens „montsegur“ wie der rsyslog-Client.

In den Verzeichnissen finden Sie die Protokolle:

Fazit:

Die Remote-Protokollierung bietet eine großartige Lösung für ein Problem, das Dienste zum Ausfall bringen kann, wenn der Serverspeicher voll mit Protokollen ist, wie eingangs gesagt, es ist auch in einigen Fällen ein Muss, in denen das System ernsthaft beschädigt werden kann, ohne dass der Zugriff auf die Protokolle möglich ist , in solchen Fällen garantiert ein Remote-Log-Server dem Systemadministrator den Zugriff auf den Serververlauf.

Die Implementierung dieser Lösung ist technisch ziemlich einfach und sogar kostenlos, wenn man bedenkt, dass keine hohen Ressourcen erforderlich sind und kostenlose Server wie kostenlose AWS-Kontingente für diese Aufgabe gut sind. Wenn Sie die Protokollübertragungsgeschwindigkeit erhöhen, können Sie nur das UDP-Protokoll zulassen (trotz Zuverlässigkeitsverlust). Es gibt einige Alternativen zu Rsyslog wie: Flume oder Sentry, aber rsyslog bleibt das beliebteste Tool unter Linux-Benutzern und Systemadministratoren.

Ich hoffe, Sie fanden diesen Artikel zum Senden von Linux-Protokollen an einen Remote-Server hilfreich.

Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...
So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...
Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...