GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Rsyslog:So senden Sie Protokolldateien an einen Remote-Server in CentOS/RHEL 6,7

Notwendigkeit eines zentralisierten Rsyslog-Servers

Jedes *NIX-System verfügt über eine Art Protokollierungsfunktion, die Textprotokolle erstellt, die an einen beliebigen Ort auf einem Speichergerät geschrieben werden können (normalerweise standardmäßig auf eine lokale Festplattenpartition). Das ist zwar wichtig, kann aber auch zu folgenden Problemen führen:

  • Sie benötigen ausreichend Speicherplatz auf dem lokalen Server, um die Protokolle zu speichern.
  • Sie müssen eine Rotation einrichten, damit sie nicht zu groß werden.
  • Wenn die Protokolle vertrauliche Informationen wie Kreditkartennummern enthalten, möchten Sie, dass sie an einem sicheren Ort gespeichert werden, vorzugsweise nicht auf dem lokalen Server.
  • Sie können die Protokolle verlieren, wenn es auf dem Server zu einem Notfall kommt und die Daten nicht wiederhergestellt werden können.

Um all diese Probleme zu vermeiden, können wir einen zentralisierten Syslog-Server verwenden. Der zentralisierte Syslog-Server bietet Sicherheit, angemessenen Speicherplatz, zentralisierte Backup-Möglichkeiten usw.

Der Beitrag beschreibt die Schritte zum Konfigurieren von Rsyslog, um Protokolldateien sowohl über TCP als auch über UDP an einen Remote-Server zu senden.

Zentralisierten Rsyslog-Server konfigurieren

1. Bearbeiten Sie /etc/rsyslog.conf und kommentieren Sie die folgenden Zeilen aus:

Für TCP;

# vi /etc/rsyslog.conf
$ModLoad imtcp
$InputTCPServerRun 514

Für UDP;

# vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
Hinweis :Sie können sowohl den TCP- als auch den UDP-Modus verwenden, um Protokolle an den Remote-rsyslog-Server zu übertragen. Ich würde jedoch die Verwendung von UDP empfehlen, da dies für den Client-Server in Bezug auf die Leistung sehr einfach ist. Der einzige Nachteil bei der Verwendung von UDP ist, dass einige Protokollmeldungen verloren gehen können, wenn der Server zu beschäftigt ist, um die UDP-Pakete zu empfangen. Verwenden Sie TCP, wenn Ihre Protokolle kritisch sind; Andernfalls bleiben Sie bei UDP.

2. Speichern Sie die Datei und starten Sie den rsyslog-Dienst neu.

# service rsyslog restart          ### CentOS/RHEL 6
# systemctl restart rsyslog        ### CentOS/RHEL 7

Rsyslog-Client konfigurieren

1. Bearbeiten Sie /etc/rsyslog.conf auf dem Client-Server und fügen Sie die folgenden Zeilen hinzu. Wenn Sie Ihrem Remote-Host ein einzelnes @ voranstellen Symbol, verwenden Sie UDP. Um TCP zu verwenden, verwenden Sie @@ stattdessen.

Für UDP

# vi /etc/rsyslog.conf
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @remote-host:514
*.* @x.x.x.x:514

Für TCP

# vi /etc/rsyslog.conf
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
*.* @@x.x.x.x:514

Ersetzen Sie hier x.x.x.x durch Ihren zentralisierten rsyslog-Server. Wenn Sie keine Protokolle mit allen enthaltenen Schweregraden (*.*) senden möchten, können Sie die letzte Zeile mit etwas wie:

bearbeiten
*.info      @x.x.x.x:514

2. Speichern Sie die Datei und starten Sie den rsyslog-Dienst neu.

# service rsyslog restart        ### CentOS/RHEL 6
# systemctl restart rsyslog        ### CentOS/RHEL 7

Überprüfen der Konfiguration

Sie können den „Logger verwenden ” Befehl, um manuell eine Protokollnachricht zu generieren und zu sehen, ob der Remote-Syslog-Server sie korrekt empfängt.

Auf dem Client-Server:

# logger "Test message from the system `hostname`"

Auf dem zentralisierten rsyslog-Server:

# tail /var/log/messages  
June 15 12:32:01 geeklab root: Test message from the system geeklab

Rsyslog auf einem Nicht-Standard-Port ausführen

Wenn Sie rsyslog auf einem anderen Port als dem Standardport 514 ausführen möchten, müssen Sie zusätzliche Selinux-Änderungen vornehmen. So zeigen Sie die aktuellen SELinux-Porteinstellungen für rsyslog an:

# semanage port -l| grep syslog
syslog_tls_port_t              tcp      6514, 10514
syslog_tls_port_t              udp      6514, 10514
syslogd_port_t                 tcp      601, 20514
syslogd_port_t                 udp      514, 601, 20514

Um einen UDP-Port 541 zu SELinux hinzuzufügen, verwenden Sie den Befehl:

# semanage port -a -t syslogd_port_t -p udp 541

Überprüfen Sie, ob der Port zu den SELinux-Einstellungen hinzugefügt wurde:

# semanage port -l| grep syslog
syslog_tls_port_t              tcp      6514, 10514
syslog_tls_port_t              udp      6514, 10514
syslogd_port_t                 tcp      601, 20514
syslogd_port_t                 udp      541, 514, 601, 20514


Cent OS
  1. So installieren Sie Puppet unter CentOS 8 / RHEL 8

  2. So richten Sie einen SysLog-Server unter CentOS 7 / RHEL 7 ein

  3. So richten Sie den NFS-Server unter CentOS 7 / RHEL 7 ein

  4. So installieren Sie Puppet 6.x auf CentOS 7 / RHEL 7

  5. CentOS / RHEL 7:So installieren Sie die GUI

So konfigurieren Sie den Rsyslog-Server in CentOS 8 / RHEL 8

So installieren Sie Redis Server auf CentOS 8 / RHEL 8

So richten Sie den NFS-Server unter CentOS 8 / RHEL 8 ein

So installieren Sie Zabbix Server 4.x unter CentOS 6 / RHEL 6

So installieren Sie Zabbix Server 5.0 / 4.0 unter CentOS 7 / RHEL 7

So konfigurieren Sie VNC Server unter CentOS/RHEL 6