Weboldal keresés

Állítson be egy központi naplókiszolgálót az Rsyslog segítségével a CentOS/RHEL 8 rendszerben


Ahhoz, hogy a rendszergazdák felismerjék vagy elemezzék a problémákat egy CentOS 8 vagy RHEL 8 szerveren, fontos, hogy ismerje és megtekintse a szerveren történt eseményeket adott időtartam a rendszer könyvtárában található /var/log naplófájlokból.

A szerveren lévő Syslog (System Logging Protocol) rendszer központi naplófigyelő pontként működhet a hálózaton, ahol minden szerver, hálózati eszköz, kapcsoló, útválasztó és belső szolgáltatás naplókat hozzon létre, akár az adott belső problémához kapcsolódik, akár csak tájékoztató üzenetek küldhetik el naplóikat.

A CentOS/RHEL 8 szervereken az Rsyslog démon a legfontosabb naplószerver, amely alapértelmezés szerint előre telepítve van, ezt követi a Systemd Journal Daemon (folyóirat).

Az Rsyslog egy nyílt forráskódú segédprogram, amelyet kliens/szerver architektúra szolgáltatásként fejlesztettek ki, és mindkét szerepkört egymástól függetlenül is betöltheti. Szerverként futhat, és összegyűjtheti a más eszközök által a hálózaton keresztül továbbított összes naplót, vagy futhat kliensként az összes naplózott belső rendszeresemény elküldésével egy távoli Syslog szerverre.

Követelmények

  1. A „CentOS 8.0” telepítése képernyőképekkel
  2. RHEL 8 telepítése képernyőképekkel

Egy központi naplószerver beállításához CentOS/RHEL 8 kiszolgálón ellenőriznie kell, hogy a /var partíciónak van-e elegendő hely (minimum néhány GB ) az összes rögzített naplófájl tárolására a rendszeren, amelyet a hálózat más eszközei küldenek. Azt javaslom, hogy legyen külön meghajtó (LVM vagy RAID) a /var/log/ könyvtár csatlakoztatásához.

Az Rsyslog Server konfigurálása a CentOS/RHEL 8 rendszerben

1. Ahogy mondtam, az Rsyslog szolgáltatás telepítve van és automatikusan fut a CentOS/RHEL 8 szerveren. Annak ellenőrzéséhez, hogy a démon fut-e a rendszerben, futtassa a következő parancsot.

systemctl status rsyslog.service

Ha a szolgáltatás alapértelmezés szerint nem fut, futtassa a következő parancsot az rsyslog démon elindításához.

systemctl start rsyslog.service

2. Ha az Rsyslog segédprogram alapértelmezés szerint nincs telepítve azon a rendszeren, amelyet központi naplózószerverként kíván használni, futtassa a következő dnf parancsot az rsyslog csomag telepítéséhez, és indítsa el a démont.


dnf install rsyslog
systemctl start rsyslog.service

3. Az Rsyslog segédprogram telepítése után a fő konfigurációs fájl /etc/rsyslog.conf megnyitásával beállíthatja az rsyslog-ot központi naplózószerverként. , hogy naplóüzeneteket kaphasson külső ügyfelek számára.

vi /etc/rsyslog.conf

Az /etc/rsyslog.conf konfigurációs fájlban keresse meg és törölje a megjegyzéseket a következő sorokból, hogy UDP-átviteli vételt biztosítson az Rsyslog szervernek az 514 porton keresztül . Az Rsyslog a szabványos UDP protokollt használja a naplózáshoz.

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

4. Az UDP protokoll nem rendelkezik TCP többletterheléssel, és gyorsabbá teszi az adatátvitelt, mint a TCP protokoll. Másrészt az UDP protokoll nem garantálja a továbbított adatok megbízhatóságát.

Ha azonban a TCP protokollt szeretné használni a naplófogadáshoz, meg kell találnia és törölnie kell a következő sorokat a konfigurációs fájl /etc/rsyslog.conf fájljában az Rsyslog konfigurálásához. démon az 514-es porton lévő TCP socket kötéséhez és meghallgatásához.

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

5. Most hozzon létre egy új sablont a távoli üzenetek fogadásához, mivel ez a sablon fogja irányítani a helyi Rsyslog-kiszolgálót, hová mentheti a Syslog hálózati ügyfelek által küldött üzeneteket.


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

A $template RemoteLogs direktíva arra irányítja az Rsyslog démont, hogy összegyűjtse és külön fájlba írja az összes továbbított naplóüzenetet az ügyfél neve és a távoli kliens alkalmazás alapján, amely létrehozta az üzeneteket a programban hozzáadott vázolt tulajdonságok alapján. sablon konfigurációja: %HOSTNAME% és %PROGRAMNAME%.

Az összes fogadott naplófájl a helyi fájlrendszerbe kerül egy hozzárendelt fájlba, amelyet az ügyfélgép hosztnevéről neveznek el, és a /var/log/ könyvtárban tárolják.

A & ~ átirányítási szabály arra utasítja a helyi Rsyslog-kiszolgálót, hogy állítsa le a kapott naplóüzenet további feldolgozását, és távolítsa el az üzeneteket (ne írja azokat belső naplófájlokba).

A RemoteLogs egy tetszőleges név, amelyet ennek a sablon direktívának adnak. Bármilyen nevet használhat, amely a legjobban illik a sablonhoz.

Összetettebb Rsyslog-sablonok beállításához olvassa el az Rsyslog konfigurációs fájl kézikönyvét a man rsyslog.conf parancs futtatásával, vagy tekintse meg az Rsyslog online dokumentációját.

man rsyslog.conf

6. A fenti konfigurációs módosítások elvégzése után a következő parancs futtatásával újraindíthatja az Rsyslog démont a legutóbbi módosítások alkalmazásához.

service rsyslog restart

7. Miután újraindította az Rsyslog kiszolgálót, annak központi naplószerverként kell működnie, és rögzítenie kell a Syslog kliensektől érkező üzeneteket. Az Rsyslog hálózati socketek megerősítéséhez futtassa a netstat parancsot, és a grep segédprogrammal szűrje ki az rsyslog karakterláncot.

netstat -tulpn | grep rsyslog 

Ha a netstat parancs nincs telepítve a CentOS 8 rendszeren, akkor a következő paranccsal telepítheti.


dnf whatprovides netstat
dnf install net-tools

8. Ha a SELinux aktív a CentOS/RHEL 8 rendszerben, futtassa a következő parancsot az rsyslog-forgalom engedélyezéséhez a hálózati socket típusától függően.

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

Ha a semanage parancs nincs telepítve a CentOS 8 rendszerre, akkor a következő paranccsal telepítheti.


dnf whatprovides semanage
dnf install policycoreutils-python-utils

9. Ha a rendszeren aktív tűzfal van, futtassa a következő parancsot, hogy hozzáadja a szükséges szabályokat az rsyslog-forgalom engedélyezéséhez a Firewald portjain.


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

Az ábrán látható módon korlátozhatja a bejövő kapcsolatokat is az 514-es porton az engedélyezési listán szereplő IP-tartományokból.


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

Ez minden! Az Rsyslog most központosított naplókiszolgálóként van konfigurálva, és képes naplókat gyűjteni a távoli ügyfelektől. A következő cikkben látni fogjuk, hogyan kell konfigurálni az Rsyslog klienst a CentOS/RHEL 8 szerveren.