Setzt en zentraliséierte Log Server mat Rsyslog an CentOS/RHEL 8


Fir datt e Systemadministrator Problemer op engem CentOS 8 oder RHEL 8 Server erkennen oder analyséieren, ass et wichteg d'Evenementer ze kennen an ze gesinn, déi um Server an enger bestëmmter Zäit opgetruede sinn aus Logbicher fonnt an /var /log den Verzeechnes am System.

De Syslog (System Logging Protocol) System um Server kann als zentrale Log-Iwwerwaachungspunkt iwwer e Netzwierk handelen, wou all Serveren, Netzwierkgeräter, Schalter, Router an intern Servicer déi Logbicher erstellen, egal ob verbonne mat dem bestëmmten internen Thema oder just informativ Messagen kënnen hir Logbicher schécken.

Op engem CentOS/RHEL 8 Server ass Rsyslog Daemon dee wichtegste Logserver deen als Standard virinstalléiert ass, gefollegt vum Systemd Journal Daemon (journald).

Rsyslog ass en Open-Source Utility, entwéckelt als Client/Server Architektur Service a kann béid Rollen onofhängeg erreechen. Et kann als Server lafen an all Logbicher sammelen, déi vun aneren Apparater iwwer dem Netz iwwerdroe ginn oder et kann als Client lafen andeems Dir all intern Systemevenementer schéckt, déi op e Remote Syslog Server ageloggt sinn.

  1. Installatioun vum CentOS 8.0 mat Screenshots
  2. Installatioun vu RHEL 8 mat Screenshots

Fir en zentraliséierte Log-Server op engem CentOS/RHEL 8-Server opzestellen, musst Dir iwwerpréiwen a bestätegen datt d'Partition /var genuch Plaz huet (e puer GB Minimum) fir all opgeholl Logdateien ze späicheren. op de System déi vun aneren Apparater am Netz schécken. Ech recommandéieren Iech en separaten Drive (LVM oder RAID) ze hunn fir den /var/log/ Verzeechnes ze montéieren.

Wéi konfiguréieren de Rsyslog Server an CentOS/RHEL 8

1. Wéi ech gesot, Rsyslog Service installéiert a Lafen automatesch an CentOS/RHEL 8 Server. Fir z'iwwerpréiwen datt den Daemon am System leeft, fuert de folgende Kommando.

# systemctl status rsyslog.service

Wann de Service net als Standard leeft, fuert de folgende Kommando fir rsyslog Daemon unzefänken.

# systemctl start rsyslog.service

2. Wann de Rsyslog Utility net als Standard op de System installéiert ass, deen Dir plangt als zentraliséierte Logserver ze benotzen, fuert de folgenden dnf Kommando fir de rsyslog Package z'installéieren an den Daemon unzefänken.

# dnf install rsyslog
# systemctl start rsyslog.service

3. Wann d'Rsyslog Utility installéiert ass, kënnt Dir elo rsyslog als zentraliséierte Protokollserver konfiguréieren andeems Dir d'Haaptkonfiguratiounsdatei /etc/rsyslog.conf opmaacht, fir Logmeldungen fir externe Clienten ze kréien.

# vi /etc/rsyslog.conf

An der /etc/rsyslog.conf Konfiguratiounsdatei, fann an decommentéieren déi folgend Zeilen fir UDP Transportempfang op den Rsyslog Server iwwer 514 Hafen ze ginn. Rsyslog benotzt de Standard UDP Protokoll fir Logbicher Iwwerdroung.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

4. Den UDP Protokoll huet net den TCP Overhead, an et mécht Dateniwwerdroung méi séier wéi den TCP Protokoll. Op der anerer Säit garantéiert den UDP Protokoll net d'Zouverlässegkeet vun den iwwerdroenen Donnéeën.

Wéi och ëmmer, wann Dir den TCP-Protokoll fir de Logempfang benotze wëllt, musst Dir déi folgend Zeilen an der /etc/rsyslog.conf Konfiguratiounsdatei fannen an ofkommentéieren fir den Rsyslog-Daemon ze konfiguréieren fir en TCP-Socket um 514 Hafen ze binden an ze lauschteren.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Erstellt elo eng nei Schabloun fir Remote-Messagen ze kréien, well dës Schabloun de lokale Rsyslog-Server guidéiert, wou Dir déi empfaangen Noriichten, déi vu Syslog-Netzclienten geschéckt ginn, späicheren.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs

D'$template RemoteLogs-Direktiv guidéiert den Rsyslog-Daemon fir all iwwerdroe Log-Messagen op verschidde Dateien ze sammelen an ze schreiwen, baséiert op dem Clientnumm an der Remote-Client-Applikatioun déi d'Messagen erstallt huet op Basis vun de skizzéierte Properties, déi am Schablounkonfiguratioun: %HOSTNAME% an %PROGRAMNAME%.

All erhalen Logdateien ginn an de lokalen Dateiesystem op eng zougewisen Datei geschriwwe ginn nom Hostnumm vun der Clientmaschinn an am /var/log/ Verzeichnis gehal.

D'& ~ Viruleedungsregel leet de lokalen Rsyslog-Server fir d'Veraarbechtung vun der erhalener Logmeldung weider ze stoppen an d'Messagen ze läschen (net an intern Logdateien ze schreiwen).

De RemoteLogs ass en arbiträren Numm deen dës Schabloundirektiv kritt. Dir kënnt all Numm benotzen, deen Dir wëllt, deen am Beschten passt fir Är Schabloun.

Fir méi komplex Rsyslog Templates ze konfiguréieren, liest d'Rsyslog Konfiguratiounsdatei Handbuch andeems Dir de Man rsyslog.conf Kommando leeft oder d'Rsyslog Online Dokumentatioun konsultéiert.

# man rsyslog.conf

6. Nodeems Dir déi uewe genannte Konfiguratiounsännerungen gemaach hutt, kënnt Dir den Rsyslog-Daemon nei starten fir rezent Ännerungen z'applizéieren andeems Dir de folgende Kommando ausféiert.

# service rsyslog restart

7. Wann Dir de Rsyslog-Server nei gestart hutt, sollt et elo als zentraliséierte Log-Server handelen a Messagen vu Syslog Clienten ophuelen. Fir d'Rsyslog Netzwierk Sockets ze bestätegen, fuert grep Utility fir d'rsyslog String ze filteren.

# netstat -tulpn | grep rsyslog 

Wann netstat Kommando net op CentOS 8 installéiert ass, kënnt Dir se mat dem folgenden Kommando installéieren.

# dnf whatprovides netstat
# dnf install net-tools

8. Wann Dir SELinux aktiv an CentOS/RHEL 8 hutt, fuert de folgende Kommando fir rsyslog Traffic ofhängeg vum Netzwierk Socket Typ z'erméiglechen.

# semanage port -a -t syslogd_port_t -p udp 514
# semanage port -a -t syslogd_port_t -p tcp 514

Wann Semanage Kommando net op CentOS 8 installéiert, kënnt Dir se mat dem folgenden Kommando installéieren.

# dnf whatprovides semanage
# dnf install policycoreutils-python-utils

9. Wann Dir eng Firewall aktiv um System hutt, fuert de folgende Kommando fir déi néideg Regelen ze addéieren fir rsyslog Traffic op Ports an Firewalld z'erméiglechen.

# firewall-cmd --permanent --add-port=514/tcp
# firewall-cmd --permanent --add-port=514/udp
# firewall-cmd --reload

Dir kënnt och erakommen Verbindungen um Hafen 514 aus whitelisted IP Beräicher limitéieren wéi gewisen.

# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
# firewall-cmd --reload

Dat ass alles! Rsyslog ass elo als zentraliséiert Logbicher Server konfiguréiert a ka Logbicher vu Remote Clienten sammelen. Am nächsten Artikel wäerte mir kucken wéi Dir Rsyslog Client op CentOS/RHEL 8 Server konfiguréiert.