Amikor bármilyen problémába ütközik a szerver teljesítményével kapcsolatban, az első dolog, amit tennie kell, az a Linux naplók ellenőrzése . A rendszernaplóban hasznos diagnosztikai üzeneteket találhat az operációs rendszer különböző összetevőitől, például a kerneltől vagy a különböző szolgáltatásoktól, így valószínűleg ott találja meg a hiba okát.
A naplóban szereplő minden üzenet az operációs rendszer bizonyos eseményeinek eredményeként jön létre: a felhasználótól, a jogosultságtól a szolgáltatás leállításáig vagy az alkalmazás meghibásodásáig. Ezeknek az eseményeknek más-más prioritásuk van attól függően, hogy mennyire kritikusak. Linuxban a következő típusú események vannak:
emerg- hiba, legmagasabb prioritás;alert- sürgős figyelmeztetés;crit- kritikus esemény;err- közönséges hiba;warn- rendes figyelmeztetés;notice- értesítés;info- tájékoztató üzenet;debug- hibakeresési információk;
Jelenleg a Linux fő naplógyűjtő szolgáltatásai az rsyslog és a systemd-journald . Ezek a legtöbb modern disztribúciós csomaggal kompatibilisek, és függetlenül működnek.
rsyslog
A szolgáltatás naplói a „ /var/log/ ” mappában találhatók, egyszerű szöveges fájlok formájában. A naplóüzenetek az esemény típusától függően különböző fájlokba kerülnek. Például a „ /var/log/auth.log ” a felhasználók rendszeren belüli jogosultságaira vonatkozó információkat tartalmaz, a „ /var/log/kern.log ” pedig a kernel üzeneteket. A fájlnevek eltérőek lehetnek a különböző disztribúciós csomagokban, ezért nézzük meg a konfigurációs fájlt, hogy képet kapjunk arról, hol található az „ /etc/rsyslog.d/50-default.conf ”.
Ezek a szabályok megjelenítik, hogy melyik fájl tartalmazza az egyes naplóüzenet-típusokat. A bal oldali rész az üzenet típusát jeleníti meg a következő formában: „ [Forrás].[Prioritás] ”, a jobb oldali rész pedig a naplófájl nevét. Az üzenet típusának írásakor a „ * ” karakter hozzáadható. Ez üres értéket vagy „ nincs ”-t jelent, ami eltávolítja az üzenetet a listából. Nézzük meg közelebbről az első két szabályt.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Az első szabály azt jelenti, hogy az engedélyezési mechanizmustól érkező összes üzenet a „ /var/log/auth.log ” fájlba kerül rögzítésre. Minden engedélyezési kísérlet (legyen az sikeres vagy sikertelen) ebben a fájlban lesz regisztrálva. A második szabály azt jelzi, hogy az engedélyezéssel kapcsolatos üzenetek kivételével minden üzenet a „ /var/log/syslog ” fájlba kerül rögzítésre. Ez a két fájl általában a legnépszerűbb. A következő szabályok határozzák meg a kernelnaplók („ kern.* ”) és a levelezési szolgáltatás naplóinak („ mail.* ”) tárolási útvonalát.
A naplófájlok bármilyen szövegszerkesztővel megnyithatók, például a less , cat vagy tail paranccsal . Nyissuk meg a „ /var/log/auth.log ” fájlt .
less /var/log/auth.log
A fájl minden sora az alkalmazástól vagy szolgáltatástól kapott külön üzenet. Minden üzenet, függetlenül a forrástól, egy formátumú, és 5 részből áll. Vegyük példaként a képernyőképen kiemelt üzenetet.
- Üzenet időbélyegzője – „február 12. 06:18:33”
- Az üzenetet küldő számítógép neve – „vds”
- Az üzenetet küldő alkalmazás vagy szolgáltatás neve – „sshd”
- Folyamatazonosító - [653]
- Üzenet szövege – „Elfogadott jelszó a mihail számára a 188.19.42.165 2849-es ssh2 portról”
Ez volt egy példa az SSH-hoz való sikeres kapcsolódásra.
És így néz ki egy sikertelen bejelentkezési kísérlet:
Ez a fájl speciális jogosultságokkal rendelkező parancsokat is rögzít
Nyissuk meg a /var/log/syslog fájlt
A képernyőképen kiemelt üzenet a hálózati interfész leállásáról szóló üzenet.
Hosszú szöveges fájlokban való információkereséshez használd a grep segédprogramot. A pptpd szolgáltatástól kapott összes üzenetet a „ /var/log/syslog ” fájlban találod.
grep 'pptpd' /var/log/syslog
A diagnosztika során használhatod a tail segédprogramot, amely képes a fájlok több utolsó sorának megjelenítésére. A „ tail -f /var/log/syslog ” parancs segítségével valós időben nézheted meg a naplók rögzítését.
Az rsyslog szolgáltatás nagyon rugalmas és hatékony. Naplófájlok gyűjtésére használható helyi rendszerekben és vállalati szinten is. A teljes dokumentációt a hivatalos weboldalon találja: https://www.rsyslog.com/
A naplók forgatása Linux alatt
A naplórögzítés folyamatosan történik, így a fájlok mérete folyamatosan növekszik. A rotációs mechanizmus biztosítja a régi naplók automatikus archiválását és új fájlok létrehozását. A szabályoktól függően ez történhet naponta, hetente, havonta vagy méretkorlát szerint. Ahogy új naplók jönnek létre, a régiek egyszerűen törölhetők vagy e-mailben elküldhetők. A naplók rotációját a logrotate segédprogram végzi. A fő konfigurációt az „ /etc/logrotate.conf ” fájlban találja . A fájlok tartalma az „ /etc/logrotate.d/ ” mappában is feldolgozásra kerül.
Az új szabályok a fő konfigurációs fájlba naplózhatók. A legjobb azonban egy külön fájlt létrehozni az „ /etc/logrotate.d/ ” könyvtárban. Alapértelmezés szerint ebben a könyvtárban néhány fájl található.
Vessünk egy pillantást az „ /etc/logrotate.d/rsyslog ” fájlra, amely az rsyslog szolgáltatás naplóinak rotációs szabályait tartalmazza.
Először a szabálynak tartalmaznia kell a naplófájl elérési útját, majd az összes iránymutatást ívelt zárójelben kell tartalmaznia.
- forgassa el 7 - megőrizendő fájlok száma - 7
- napi - hozzon létre egy új fájlt minden nap
- borogatás - régi fájlok tömörítése és archiválása
A képernyőképen látható, hogy a „ /var/log/ ” mappában található a fő napló, a „ syslog ” és 7 archívum, amelyek megfelelnek a konfigurációs fájlban található szabályoknak.
A logrotate részletesebb leírását a kézikönyvben találod, a „ man logrotate ” parancs futtatásával.
Linux naplók gyűjtése - naplód
A systemd-journald naplógyűjtő szolgáltatás a systemd inicializáló rendszer része . A Linux naplófájlok a „ /var/log/journal/ ” könyvtárban tárolódnak egy speciális formátumban, és a journalctl segédprogrammal nyithatók meg . A rekordok formátuma pontosan megegyezik az rsyslog formátumával.
A journalctl parancs attribútumok nélkül megjeleníti az összes rekordot, de nem alkalmas nagyobb naplók feldolgozására. Vessünk egy pillantást a segédprogram néhány beállítására.
journalctl -b- Mutasd az összes rekordot az utolsó indítás ótajournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- rekordot mutatni egy bizonyos időtartamon belüljournalctl -u pptpd- megmutatni egy bizonyos szolgáltatás rekordjátjournalctl -k- kernel üzenetek megjelenítésejournalctl -p err- bizonyos prioritású, magasabb prioritású üzenetek megjelenítése ebben az esetben (crit, alert, emerg)journalctl -f- Jelenítse meg az üzeneteket valós időben
A nagyobb rugalmasság érdekében kombinálhatja ezeket a beállításokat. Mutassuk meg a pptpd szolgáltatás összes hibáját.
journalctl -u pptpd -p err
Ha attribútumként megadja a végrehajtható fájl elérési útját, a segédprogram megjeleníti a fájl által küldött összes üzenetet. Mutassuk meg az „ /usr/bin/sudo ” fájl által 2020. február 18. 04:15 óta küldött összes üzenetet. Valójában az összes magasabb jogosultsággal végrehajtott parancsot megjeleníti.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Megtudhatja, mennyi lemezterületet foglalnak el a naplófájlok a következő parancs végrehajtásához
journalctl --disk-usage
A naplófájl 1 GB-ra való korlátozásához hajtsa végre a következő parancsot
journalctl --vacuum-size=1G
Bináris fájlok megnyitása
Most nézzünk meg néhány speciális fájlt a „ /var/log/ ” mappában, ahol az összes bejelentkezési kísérlet tárolódik. Ezek a fájlok binárisak, és csak speciális programokkal nyithatók meg.
A /var/log/wtmp fájl a sikeres bejelentkezési kísérletekről tartalmaz információkat. A megnyitásához használd az utolsó segédprogramot.
/var/log/btmp - tartalmazza az összes sikertelen bejelentkezési kísérletet. A lastb paranccsal nyitható meg speciális jogosultságokkal. Az -n attribútum határozza meg a fájl végétől megjelenített sorok számát.
/var/log/lastlog - tartalmazza az utolsó bejelentkezés időpontját minden fiókrekordhoz. Megnyitható a lastlog paranccsal.