Weboldal keresés

A központi naplózási kiszolgáló beállítása az Rsyslog segítségével Linux alatt


A naplók minden szoftver vagy operációs rendszer kritikus összetevői. A naplók általában rögzítik a felhasználói műveleteket, a rendszereseményeket, a hálózati tevékenységet és még sok minden mást, attól függően, hogy mire szánják őket. A Linux rendszereken az egyik legszélesebb körben használt naplózási rendszer az rsyslog.

Az Rsyslog egy hatékony, biztonságos és nagy teljesítményű naplófeldolgozó rendszer, amely különböző típusú forrásokból (rendszerekből/alkalmazásokból) fogad adatokat, és többféle formátumba adja ki azokat.

Egy normál syslog démonból egy teljes értékű, vállalati szintű naplózórendszerré fejlődött. Kliens/szerver modellben készült, ezért konfigurálható kliensként és/vagy központi naplózószerverként más szerverekhez, hálózati eszközökhöz és távoli alkalmazásokhoz.

Tesztkörnyezet

Ebben az útmutatóban a következő gazdagépeket fogjuk használni:

  • Szerver: 192.168.241.140
  • Ügyfél: 172.31.21.58

Az Rsyslog Server telepítése és konfigurálása

A legtöbb Linux disztribúció előre telepítve van az rsyslog csomaggal. Ha nincs telepítve, telepítheti a Linux csomagkezelő eszközével az ábra szerint.

sudo yum update && yum install rsyslog 	#CentOS 7
sudo apt update && apt install rsyslog	#Ubuntu 16.04, 18.04

Az rsyslog telepítése után egyelőre el kell indítania a szolgáltatást, engedélyeznie kell az automatikus indítást rendszerindításkor, és ellenőriznie kell az állapotát a systemctl paranccsal.

sudo systemctl start rsyslog
sudo systemctl enable rsyslog
sudo systemctl status rsyslog

A fő rsyslog konfigurációs fájl az /etc/rsyslog.conf címen található, amely modulokat tölt be, meghatározza a globális direktívákat, szabályokat tartalmaz a naplóüzenetek feldolgozására, valamint tartalmazza az összes konfigurációs fájlt a /etc könyvtárban. /rsyslog.d/ különböző alkalmazásokhoz/szolgáltatásokhoz.

sudo vim /etc/rsyslog.conf

Alapértelmezés szerint az rsyslog az imjournal és az imusock modulokat használja a strukturált naplóüzenetek importálására a rendszernaplóból és a syslog elfogadására. a helyi rendszeren futó alkalmazások üzenetei Unix socketeken keresztül, ill.

Az rsyslog hálózati/központi naplózószerverként való konfigurálásához be kell állítania azt a protokollt (az UDP vagy a TCP, vagy mindkettő), amelyet a távoli rendszernaplók fogadásához fog használni, valamint a porton hallgat.

Ha UDP kapcsolatot szeretne használni, amely gyorsabb, de megbízhatatlan, keressen és törölje a megjegyzéseket az alábbi sorokban (cserélje ki az 514-et arra a portra, amelyen hallgatni szeretné, megegyezik azzal a port címmel, amelyre a kliensek üzeneteket küldenek, ezt az rsyslog kliens beállításakor jobban megvizsgáljuk).

$ModLoad imudp
$UDPServerRun 514

A TCP kapcsolat használatához (amely lassabb, de megbízhatóbb), keressen, és törölje a megjegyzéseket az alábbi sorokban.

$ModLoad imtcp
$InputTCPServerRun 514

Ebben az esetben egyszerre szeretnénk UDP és TCP kapcsolatot is használni.

Ezután meg kell határoznia a szabálykészletet a távoli naplók feldolgozásához a következő formátumban.

facility.severity_level	destination (where to store log)

Ahol :

  • létesítmény: a folyamat/alkalmazást generáló üzenet típusa, ezek közé tartozik auth, cron, démon, kernel, local0..local7. A * használata az összes szolgáltatást jelenti.
  • súlyossági_szint: a naplóüzenet típusa: emerg-0, alert-1, crit-2, err-3, warn-4, notice-5, info-6, debug-7. A * használata minden súlyossági szintet jelent, és egyik sem jelent súlyossági szintet.
  • célhely: helyi fájl vagy távoli rsyslog-kiszolgáló (IP:port formában).

A következő szabálykészletet fogjuk használni a távoli gazdagépek naplóinak összegyűjtésére a RemoteLogs sablon használatával. Ne feledje, hogy ezeknek a szabályoknak meg kell haladniuk a helyi üzenetek feldolgozására vonatkozó szabályokat, ahogy az a képernyőképen is látható.

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

A fenti szabálykészletet tekintve az első szabály: „$template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log” ”.

A $template utasítás azt mondja az rsyslog démonnak, hogy a hostname alapján gyűjtse össze és írja be az összes kapott távoli üzenetet a /var/log alatti külön naplókba. > (kliensgép neve) és távoli kliens létesítmény (program/alkalmazás), amely a RemoteLogs sablon beállításai szerint generálta az üzeneteket.

A második „*.* ?RemoteLogs ” sor azt jelenti, hogy a RemoteLogs sablonkonfigurációval rögzíti az összes létesítmény üzeneteit minden súlyossági szinten.

Az utolsó „& ~ ” sor arra utasítja az rsyslog-ot, hogy állítsa le az üzenetek feldolgozását, miután azokat fájlba írták. Ha nem adja meg az „& ~” kifejezést, az üzenetek a helyi fájlba íródnak.

Számos más sablon is használható, további információkért tekintse meg az rsyslog konfigurációs kézikönyvét (man rsyslog.conf), vagy tekintse meg az Rsyslog online dokumentációját.

Ez az rsyslog szerver konfigurálásával. Mentse és zárja be a konfigurációs fájlt. A legutóbbi módosítások alkalmazásához indítsa újra az rsyslog démont a következő paranccsal.

sudo systemctl restart rsyslog

Most ellenőrizze az rsyslog hálózati socketeket. Az rsyslogd kapcsolatok kiszűréséhez használja az ss parancsot (vagy a netstat parancsot ugyanazokkal a jelzőkkel), és a kimenetet a grepbe írja be.

sudo ss -tulnp | grep "rsyslog"

Ezután a CentOS 7 rendszeren, ha engedélyezve van a SELinux, futtassa a következő parancsokat, hogy engedélyezze az rsyslog-forgalmat a hálózati socket típusa alapján.

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

Ha a rendszerben engedélyezve van a tűzfal, akkor futással meg kell nyitnia az 514-es portot, hogy engedélyezze mindkét UDP/TCP kapcsolatot az rsyslog-kiszolgálóval.

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

------------- On Ubuntu -------------
sudo ufw allow 514/udp
sudo ufw allow 514/tcp
sudo ufw reload 

Az Rsyslog Client beállítása úgy, hogy naplókat küldjön az Rsyslog Servernek

Most az ügyfélrendszeren ellenőrizze, hogy az rsyslog szolgáltatás fut-e vagy sem, a következő paranccsal.

sudo systemctl status rsyslog

Ha nincs telepítve, telepítse, és indítsa el a szolgáltatást a korábban bemutatott módon.

sudo yum update && yum install rsyslog 	#CentOS 7
sudo apt update && apt install rsyslog	#Ubuntu 16.04, 18.04
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
sudo systemctl status rsyslog

Miután az rsyslog szolgáltatás elindult és fut, nyissa meg a fő konfigurációs fájlt, amelyben módosítani fogja az alapértelmezett konfigurációt.

sudo vim /etc/rsyslog.conf

Ha arra szeretné kényszeríteni az rsyslog démont, hogy naplókliensként működjön, és minden helyileg generált naplóüzenetet továbbítson a távoli rsyslog-kiszolgálónak, adja hozzá ezt a továbbítási szabályt a fájl végéhez, ahogy az a következő képernyőképen látható.

*. *  @@192.168.100.10:514

A fenti szabály minden létesítményből és minden súlyossági szinten küld üzeneteket. Ha egy adott létesítményről szeretne üzeneteket küldeni, például hitelesítés, használja a következő szabályt.

auth. *  @@192.168.100.10:514

Mentse el a változtatásokat, és zárja be a konfigurációs fájlt. A fenti beállítások alkalmazásához indítsa újra az rsyslog démont.

sudo systemctl restart rsyslog

A távoli naplózás figyelése az Rsyslog-kiszolgálón

Az utolsó lépés annak ellenőrzése, hogy az rsyslog valóban fogad-e és naplózza-e az üzeneteket az ügyféltől a /var/log alatt, gazdanév/programnév.log formában.

Futtasson egy ls parancsot a szülőnaplók könyvtárának hosszú listázásához, és ellenőrizze, hogy van-e ip-172.31.21.58 nevű könyvtár (vagy az ügyfélgép állomásneve).

 
ls -l /var/log/

Ha a könyvtár létezik, futással ellenőrizze a benne lévő naplófájlokat.

sudo ls -l /var/log/ip-172-31-21-58/

Összegzés

Az Rsyslog egy nagy teljesítményű naplófeldolgozási rendszer, amelyet kliens/szerver architektúrában terveztek. Reméljük, hogy képes lesz az Rsyslog központi/hálózati naplózószerverként és kliensként történő telepítésére és konfigurálására, amint azt ebben az útmutatóban bemutatjuk.

További segítségért tekintse meg a vonatkozó rsyslog kézikönyvoldalakat is. Nyugodtan adjon nekünk visszajelzést vagy tegyen fel kérdéseket.