Központosított Naplókiszolgáló létrehozása az Rsyslog segítségével a CentOS / RHEL alkalmazásban 7

annak érdekében, hogy a rendszergazda azonosítson vagy elhárítson egy problémát egy CentOS 7 vagy RHEL 7 kiszolgálórendszeren, ismernie kell és meg kell néznie a rendszeren egy adott időszakban bekövetkezett eseményeket a rendszerben a /var/log könyvtárban tárolt naplófájlokból.

a Linux gépen lévő syslog szerver központi felügyeleti pontként működhet egy hálózaton keresztül, ahol minden szerver, hálózati eszköz, útválasztó, kapcsoló és a legtöbb belső szolgáltatás, amely naplókat generál, függetlenül attól, hogy konkrét belső problémához kapcsolódik-e, vagy csak informatív üzeneteket küldhet.

egy CentOS/RHEL 7 rendszeren az rsyslog démon a fő naplókiszolgáló, amelyet a Systemd Journal Daemon (journald) követ.

az Rsyslog szerver kliens/szerver architektúra szolgáltatásként épül fel, és mindkét szerep egyszerre érhető el. Futhat szerverként, és összegyűjtheti a hálózat más eszközei által továbbított összes naplót,vagy kliensként is futtatható, ha az összes belső rendszereseményt egy távoli végpont syslog szerverre küldi.

amikor az rsyslog kliensként van konfigurálva, a naplók helyileg tárolhatók a helyi fájlrendszer fájljaiban, vagy távolról is küldhetők, ahelyett, hogy a gépen tárolt fájlokba írnák őket, vagy az események naplófájljait helyileg írnák, és egyidejűleg elküldenék egy távoli syslog szerverre.

a Syslog server minden naplóüzenetet a következő séma szerint működtet:

type (facility).priority (severity) destination(where to send the log)

A. A létesítmény – vagy típusadatokat az üzeneteket generáló belső rendszerfolyamatok képviselik. A Linuxban a naplókat generáló belső folyamatok (létesítmények) az alábbiak szerint vannak szabványosítva:

  • auth = hitelesítési folyamatok által generált üzenetek (bejelentkezés).
  • cron= ütemezett folyamatok által generált üzenetek (crontab).
  • daemon = démonok (belső szolgáltatások) által generált üzenetek.
  • kernel = maga a Linux Kernel által generált üzenetek.
  • mail = levelezőszerver által generált üzenetek.
  • syslog = maga az rsyslog démon által generált üzenetek.
  • lpr = helyi nyomtatók vagy nyomtatókiszolgálók által generált üzenetek.
  • local0 – local7 = rendszergazda által meghatározott egyéni üzenetek (a local7-et általában Cisco vagy Windows esetén rendelik hozzá).

B. a prioritási (súlyossági) szinteket is szabványosítják. Minden prioritás egy szabványos rövidítéssel és egy számmal van ellátva az alábbiakban leírtak szerint. A 7. prioritás az összes magasabb szintje.

  • emerg = vészhelyzet – 0
  • alert = riasztások – 1
  • err = hibák – 3
  • warn = figyelmeztetések – 4
  • notice = értesítés – 5
  • info = információ – 6
  • debug = hibakeresés– 7

speciális rsyslog kulcsszavak:

  • * = minden létesítmény vagy prioritás
  • none = a létesítményeknek nincs megadott prioritásuk, pl.none

C. a syslog séma harmadik részét a célirányelv képviseli. Az Rsyslog démon képes naplózási üzeneteket küldeni a helyi fájlrendszer fájljába (főleg a /var/log/ könyvtár fájljába), vagy egy másik helyi folyamatba vezetni, vagy egy helyi felhasználói konzolra küldeni (stdout), vagy elküldeni az üzenetet egy távoli syslog szerverre TCP/UDP protokollon keresztül, vagy akár eldobni az üzenetet a /dev/null-ba.

a CentOS/RHEL 7 központi Naplókiszolgálóként történő konfigurálásához először ellenőriznünk kell, hogy a /var partíció, ahol az összes naplófájl rögzítve van, elég nagy (legalább néhány GB) ahhoz, hogy el tudjuk tárolni az összes naplófájlt, amelyet más eszközök küldenek. Jó döntés külön meghajtót (LVM, RAID) használni a /var/log/ könyvtár csatlakoztatásához.

követelmények

  1. CentOS 7.3 telepítési eljárás
  2. RHEL 7.3 telepítési eljárás

az Rsyslog beállítása a CentOS/RHEL 7 kiszolgálón

1. Alapértelmezés szerint az Rsyslog szolgáltatás automatikusan települ, és a CentOS/RHEL 7-ben kell futnia. Annak ellenőrzéséhez, hogy a démon elindult-e a rendszerben, adja ki a következő parancsot root jogosultságokkal.

# systemctl status rsyslog.service
ellenőrizze az Rsyslog szolgáltatást
ellenőrizze az Rsyslog szolgáltatást

ha a szolgáltatás alapértelmezés szerint nem fut, hajtsa végre az alábbi parancsot az rsyslog démon elindításához.

# systemctl start rsyslog.service

2. Ha az rsyslog csomag nincs telepítve arra a rendszerre, amelyet központosított naplózási kiszolgálóként kíván használni, adja ki a következő parancsot az rsyslog csomag telepítéséhez.

# yum install rsyslog

3. Az első lépés, amit meg kell tennünk a rendszeren annak érdekében, hogy az rsyslog démont központosított naplókiszolgálóként konfiguráljuk, így képes naplózási üzeneteket fogadni a külső ügyfelek számára, az, hogy a kedvenc szövegszerkesztővel megnyitjuk és szerkesztjük a fő konfigurációs fájlt az /etc/rsyslog fájlból.conf, amint azt az alábbi részlet.

# vi /etc/rsyslog.conf

az rsyslog fő konfigurációs fájljában keresse meg és szüntesse meg a következő sorokat (távolítsa el a # hashtag jelet a sor elején) annak érdekében, hogy UDP átviteli vételt biztosítson az Rsyslog szerverre az 514 porton keresztül. Az UDP az rsyslog által a naplóátvitelhez használt szabványos protokoll.

$ModLoad imudp $UDPServerRun 514
Rsyslog Szerver Konfigurálása
Rsyslog Szerver Konfigurálása

4. Az UDP protokoll nem rendelkezik a TCP fölött, ami gyorsabbá teszi az adatok továbbítását, mint a TCP protokoll. Másrészt az UDP protokoll nem biztosítja a továbbított adatok megbízhatóságát.

Ha azonban TCP protokollt kell használnunk a naplófogadáshoz, akkor az /etc/rsyslog állományban meg kell keresnünk a következő sorokat.conf fájlt annak érdekében, hogy konfigurálja Rsyslog démon kötni, és hallgatni a TCP socket 514 porton. A vételhez szükséges TCP és UDP hallgatóaljzatok egyidejűleg konfigurálhatók egy Rsyslog szerveren.

$ModLoad imtcp $InputTCPServerRun 514 

5. A következő lépésben még ne zárja be a fájlt, hozzon létre egy új sablont, amelyet távoli üzenetek fogadására használnak. Ez a sablon utasítja a helyi Rsyslog szervert, hogy hova mentse a syslog hálózati ügyfelek által küldött üzeneteket. A sablont a globális Irányelvek blokk kezdete előtt kell hozzáadni, amint azt az alábbi részlet szemlélteti.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" . ?RemoteLogs & ~
hozzon létre rsyslog sablont
hozzon létre Rsyslog sablont

a fenti $template RemoteLogs direktíva utasítja az Rsyslog démont, hogy gyűjtse össze és írja be az összes fogadott naplóüzenetet különböző fájlokba, az ügyfélgép neve és a távoli ügyfél létesítmény (alkalmazás) alapján, amely az üzeneteket a sablonkonfigurációban megadott tulajdonságok alapján generálta: %HOSTNAME% és %PROGRAMNAME%.

ezeket a naplófájlokat a helyi fájlrendszerbe írjuk egy dedikált fájlba, amelyet az ügyfélgép hosztnevéről neveztek el, és a /var/log/ könyvtárban tárolnak.

a & ~ átirányítási szabály arra utasítja a helyi Rsyslog szervert, hogy hagyja abba a fogadott naplóüzenet további feldolgozását, és dobja el az üzeneteket (ne írja azokat belső naplófájlokba).

a RemoteLogs név a sablonirányelv tetszőleges neve. Bármilyen nevet használhat, amelyet a sablonjához legjobban talál.

ha az ügyfelektől kapott összes üzenetet egyetlen naplófájlba szeretné írni, amelyet a távoli ügyfél IP-címéről neveztek el, az üzenetet létrehozó szolgáltatás szűrése nélkül, használja az alábbi kivonatot.

$template FromIp,"/var/log/%FROMHOST-IP%.log" . ?FromIp & ~ 

egy másik példa egy sablonra, ahol az auth facility jelzővel ellátott összes üzenet naplózásra kerül egy “TmplAuth”nevű sablonba.

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

az alábbiakban egy kivonat formájában sablon meghatározása Rsyslog 7 server:

template(name="TmplMsg" type="string" string="/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" )

a fenti sablonrészlet a következőképpen is írható:

template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") }

összetett rsyslog sablonok írásához olvassa el az rsyslog konfigurációs fájl kézikönyvét az man rsyslog kiadásával.conf parancs vagy forduljon Rsyslog online dokumentáció.

6. Miután szerkesztette az Rsyslog konfigurációs fájlt a saját beállításaival a fentiek szerint, indítsa újra az Rsyslog démont a módosítások alkalmazásához a következő parancs kiadásával:

# service rsyslog restart

7. Mostanra az Rsyslog szervert úgy kell konfigurálni, hogy központi naplókiszolgálóként működjön, és rögzítse a syslog kliensektől érkező üzeneteket. Az Rsyslog hálózati aljzatok ellenőrzéséhez futtassa a netstat parancsot root jogosultságokkal, és használja a grep-et az rsyslog karakterlánc szűréséhez.

# netstat -tulpn | grep rsyslog 
Ellenőrizze Az Rsyslog Hálózati Aljzatot
Ellenőrizze Az Rsyslog Hálózati Aljzatot

8. Ha a SELinux engedélyezve van a CentOS/RHEL 7-ben, adja ki a következő parancsot a SELinux konfigurálásához az rsyslog forgalom engedélyezéséhez a hálózati aljzat típusától függően.

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

9. Ha a tűzfal engedélyezve van és aktív, futtassa az alábbi parancsot, hogy hozzáadja az rsyslog portok megnyitásához szükséges szabályokat a Firewalld-ban.

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

ez minden! Az Rsyslog most szerver módban van konfigurálva, és központosíthatja a távoli kliensek naplóit. A következő cikkben látni fogjuk, hogyan kell konfigurálni az Rsyslog klienst a CentOS / RHEL 7 szerveren.

az Rsyslog server használata a távoli naplóüzenetek központi megfigyelési pontjaként ellenőrizheti a naplófájlokat, megfigyelheti az ügyfelek állapotát, vagy könnyebben hibakeresheti az ügyfél problémáit, amikor a rendszerek összeomlanak vagy valamilyen támadás alatt állnak.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.