Naplózás - journalctl használata Linuxon

A mai cikkben megismerheted az alapvető journal, azaz naplózási feladatokat Linux alatt, és kiderítjük, hogy nem is olyan nehéz ezeket alapszinten beállítani, lekérdezni. Így gyorsan, hatékonyan háríthatjuk majd el a hibákat.

A naplófájlok olvasása, kezelése alapvető feladat lenne minden rendszergazdának. Az otthoni gépeden Te vagy a rendszergazda. Bár senkinek nem a kedvenc feladata, hogy ezeket olvassa, de legalább alapszinten ismerni kell a naplók elérését, és kezelését. Két fontos feladatunk van Linuxon ezzel kapcsolatban. Az első a naplózás beállítása. A második a naplóban elérhető adatok megjelenítése.

Egyik sem ró rád nagy feladatot, mert a legtöbb Linux rendszer jól beállított naplózással érkezik, így egy gyors ellenőrzésen kívül semmi dolgunk ezzel. Kivéve, ha mégsem tökéletes a naplózás beállítása, akkor pár alapvető lépéssel megtehetjük. A második feladat sem gyakori, hiszen akkor kell naplókat olvasni, ha gond van a rendszerrel. De akkor mindenképp, és gyorsan, így nem árt, ha megtanuljuk, hogyan is férhetünk hozzá egy naplóbejegyzéshez.

A naplózás Linux alatt

A naplózási adatokat a journald service rendszers gyűjti, tárolja és dolgozza fel a systemd-t használó Linuxon. A legtöbb Linux disztribúció systemd-t használ, ha ilyent üzemeltetsz, akkor a journalctl már jelen lesz a rendszereden. Ez egy parancssori eszköz, tehát nem fogod megtalálni az asztali környezetben a menüben. Ami három fontos tényt jelent nekünk:

  • Amit leírok, az olyan rendszereken igaz, ami a systemd-t használja. Ilyen a legtöbb (de nem minden!) Debian alapú rendszer, az arch alapú rendszerek, így az Arcolinux is. Nem árt ha tudod, hogy milyen „init rendszert” használ a Te kedves Linuxod!
  • Nem kell semmit telepítened, készen kapsz mindent, bekonfigurálva. Ami nagyon kellemes, és jó megoldás, mert egy ilyen ritkán használt, de akkor nagyon fontos dologra nem kell időt pazarolnod alapesetben. Amit kapsz az az esetek 99%-ban teljesen megfelelő lesz neked.
  • Ez bizony parancssorból elérhető. Bár léteznek olyan grafikus programok, amik a naplókat megjelenítik, a journalcrt parancsot helyettesítik. De akkor nézegetünk naplókat, ha gond van, és ilyenkor előfordulhat, hogy nem lesz grafikus felületed, csak terminálba tudsz belépni.

A naplók beállítása Linux alatt

Alapesetben semmi teendőd nincs. Ennek ellenére futtasd le a

journalctl --disk-usage

parancsot. Ezzel lekérdezed a rendszereden lévő naplófájlok méretét. Nálam ez

Archived and active journals take up 16.0M in the file system.

Ami egy normális méret, így nekem ezzel semmi teendőm. Ha nagy méretet kapsz, ami számodra nem megfelelő, annak oka van. Ilyen esettel találkoztam egy fórumon:

Archived and active journals take up 1.5G in the file system.

„Kicsivel” nagyobb! Ez felvet két problémát. Az egyik a helyfoglalás, amit nagyon egyszerűen tudunk szabályozni: a naplókat egy maximális méretig engedjük méretben terjeszkedni, és/vagy egy idő után már nem tartunk rájuk igényt. A méretet gyorsan le tudjuk csökkenteni, hiszen ha nagyobb, mint pár száz mega, és nincs semmi olyan hibajelenség, amit ezekben akarsz visszakeresni, akkor:

journalctl --vacuum-size=200M

Ez lecsökkenti a méretet, azaz a régi bejegyzéseket törli. Ezután elvileg a journalctl --disk-usage már ennyit kell, hogy mutasson. Ha ez nem csökkenti le a méretet, akkor már komolyabb a gond, mert olyan log fájlokat is találni, amit nem a rendszer kezel. De ha nincs semmi probléma, akkor ez jó ötlet lehet. Majd fel kell írni a méretet, és naponta megnézni, hogy mekkora a valódi méret. Ha minden rendben, akkor már érdemes korlátozni a terjeszkedését a naplófájloknak. Ebben a fájlban lehet megtenni:

/etc/systemd/journald.conf

Én

MaxRetentionSec=15day

beállítással 15 napra korlátoztam a maximális határidőt, ami után már töröl. Általában hiba után rögvest kellenek a naplók, de soha nem kellett egy hét után. És a fájl átírása után:

systemctl restart systemd-journald

Nyilván rendszergazdai jog kell hozzá. Ne feledd: # a sor előtt a komment jele, ha ezt így be akarod állítani, azt ki kell törölni. A config fájl átlátható, ha mást is be akarsz állítani, akkor azt itt megteheted. Én nem állítottam mást, mert ha két hétig nem kell a napló, akkor nagy a valószínűsége, hogy nekem nem is fog kelleni soha. Azért nem a mértet és egyebet korlátoztam, mert ha valami nagy naplózási forgalmat generál, akkor ott gond van. Ha korlátozom a méretet, akkor elveszhet olyan adat is, ami kell nekem. A beállítási lehetőségek jól dokumentáltak, ahogy Linux alatt a legtöbb esetben, így csak pár lehetőséget röviden: SystemMaxUse=: Megadja azt a maximális lemezterületet, amelyet a napló állandó tárolásban felhasználhat. SystemKeepFree=: Megadja azt a helyet, amelyet a naplónak szabadon kell hagynia, ha naplóbejegyzéseket ad hozzá az állandó tároláshoz. SystemMaxFileSize=: Annak ellenőrzése, hogy az egyes naplófájlok mennyire növekedhetnek tartós tárolásban, mielőtt tisztitja őket. RuntimeMaxUse=: Megadja a maximális lemezterületet, amely a változó tárolásban felhasználható (a /run fájlrendszeren belül). RuntimeMaxFileSize=: Megadja azt a helyet, amelyet az egyes naplófájlok eltarthatnak a változó tárolásokban (a /run fájlrendszeren belül), mielőtt kitisztítaná. Ezzel a beállítások felszínét érintettem, de az esetek 99,9%-ban hozzá sem kell nyúlnod ehhez, így ha valóban szükséged van komolyabb beállításra, akkor úgyis elolvasod a teljes leírást.

Naplófájlok olvasása Linux alatt

Most, és akkor ha gond van, meg kell nézni a naplófájlokat. Ezeket a más ismert journalctl programmal tudod megnézni. Indítsd el a

journalctl

programot terminálban. Egy elég hosszú listát kapsz, a PageUp/PageDown segíti a le-, és felgörgetést. Ez így nagyon profi, de gyakorlatilag használhatatlan. Sok is, átláthatatlan is. Így érdemes ezt valami szinten szűrni. Ha a mostani indítás naplóit szeretnéd látni:

journalctl -b 0

Ha az előzőt, akkor -1 lesz és így tovább. Ez nagyban segítheti a bootoláskor jelentkező hibák kiszűrését. Ha egy bizonyos időtávot szeretnél visszakeresni, akkor a

journalctl --since "1 hour ago"

megadja az elmúlt egy óra bejegyzéseit. Praktikus ha hibát észlelsz, és sejted, hogy most jelent meg az elmúlt órában. Ha egy konkrét időponttól akarod a listákat a „YYY-MMM-DD HH:MM:SS” megszokott formátumban add meg. Két időpont közt így nézheted meg:

journalctl --since "2019-11-30 14:10:10" --until "2018-12-02 12:05:50"

Ha egy adott service, unit naplójára vagy kíváncsi, akkor azt is kiszűrheted:

journalctl -u cron.service

Az időzítő naplózását adja meg. A teljes, lekérdezhető service listát így kapod meg:

systemctl list-dependencies

Ok, ez szép, de legtöbbször csak a hibákra, komolyabb figyelmeztetésekre vagyunk kíváncsiak, és nem a teljes (akár részben, egy témára szűrt) listára. Nagyon intelligensen egy plusz kapcsolóval lekérdezhetjük a listából az adott hibatípusokat: A bootoláskor kapott komoly hibákat:

journalctl -b 0 -p err

Bár a teljes listában egyértelműen, színekkel kódolják a veszélyességet, de azért így más sokkal átláthatóbb!

Journalctr kimenete szűrve

Journalctr kimenete szűrve[/caption] A pontos, és használható hiba szinteket a man oldalon találod! Ha már megtaláltad a komolyabb hibajeleket, nincs más, mint megkeresni rá a megoldást. A módszer egyszerű, legalábbis én ez követem: kimásolom a hibát és a google varázslatos ereje segít a megoldásban. Ha pedig az utolsó bejegyzéseket akarod látni:

journalctr -f

Ezenkívül még van pár szűrési lehetőség, így a man, vagy a help olvasása segít ebben. Ne feledjük, hogy a naplók olvasása rendszergazdai feladat, így több disztribúcióban ezeket korlátozzák. Jellemzően a “adm” vagy “systemd-journal” csoporthoz tartozó felhasználók olvashatják a naplókat. Ha nem vagy valami miatt ezekben benne, akkor nem olvashatod! Ha saját gépedet adminisztrálod, akkor lépj be root-ként, vagy rakd be a felhasználódat olyan csoportba, amiben jogosult leszel olvasni ezeket. Sok disztribúcióban ez alapbeállítás, látod a naplókat, de ha nem, akkor ez lesz a megoldás. Egyes rendszerek a naplókat a memóriában tárolják, nem írják ki lemezre. Ezt gyorsan meg tudod nézni:

journalctl - -list-boots

Ha itt egy bejegyzés van, akkor érdemes a naplózást folyamatosabbá tenni, ezt a már ismert /etc/systemd/journald.conf-ben tudod megtenni. Vagy futtasd le ezt:

sudo sed -i '/Storage/ c\Storage=persistent' /etc/systemd/journald.conf

Én jobban szeretem a fájlt „kézzel” szerkeszteni, mert így meg ismerem a többi beállítási lehetőséget is. Összefoglalva: a naplózással nincs túl sok teendőnk, az esetek nagy részében jól be lett állítva. Ennek ellenére ismerni kell a beállítását, illetve érdemes időnként a méretet ellenőrizni. Érdemes az alap szűrési parancsokat ismerni, hiszen ha gond van ezek adhatnak infót a hibákról. Ahogy látni nem egy ördöngösség Linux alatt a naplózás beállítása, konfigurálása és lekérdezése.

A leírtakat 2019. decemberében Arcolinux alatt teszteltem.

Az eredeti cikk a blogomban jelent meg. 

Hozzászólások

kimarite képe

Köszi az írást.

Mint-nek van saját megjelenítője...

Mivel ez alapból a Linux Mint magyar oldala, gondolom nem baj, ha megemlítem, hogy a Mint-nek van saját naplónézegető alkalmazása. Elérhetősége a panel menüből: Adminisztráció -> Naplók.

Megnyitásakor alapból a fontos bejegyzéseket jeleníti meg, de választhatunk nézetet: Fontos, Összes, Alkalmazások, Rendszer, Biztonság, Hardver. Van keresési lehetőség is, beállítási lehetőségekkel: hol, ill. mikorra vonatkozóan.

Lehet jelenlegi rendszerindítást, előző rendszerindítást, ma, tegnap, elöző 3 nap, teljes, vagy egyéni időszakot beállítást megadni.

Már csak az hiányzik, hogy adott bejegyzésre kattintva legyen lehetőség a megoldás keresésre, de ez a Ctrl+C/Ctrl+V-vel áthidalható wink

 

Értékelés: 

5
Átlag: 5 (1 szavazat)