A Journalctl használata Linux rendszernaplók olvasásához

A Linux rendszernaplózás megváltozott a systemd bevezetésével. Ismerje meg, hogyan használhatja a journalctl parancsot a rendszernapló-üzenetek olvasásához és szűréséhez.

Központi naplózás

Nem idegen a vitáktól, a systemd rendszer- és szolgáltatásmenedzser jelentős változást vezetett be a rendszernaplók gyűjtésének módjában. A naplók korábban a fájlrendszer különböző helyein helyezkedtek el, attól függően, hogy milyen szolgáltatás vagy démon hozta létre őket. De mindegyikben volt egy közös vonás. Egyszerű szöveges fájlok voltak.

A systemd segítségével az összes rendszer-, rendszerindítási és kernelnaplófájlt egy központi, dedikált naplózási megoldás gyűjti össze és kezeli. A tárolásuk bináris formátumú. Ez megkönnyíti az adatok kinyerésének lehetőségét különböző formátumokban, mint pl JSON, mint látni fogjuk.

megkönnyítheti az olyan kapcsolódó információk kereszthivatkozását is, amelyeket korábban külön naplófájlokban rögzítettek volna. Mivel az adatok most egyetlen naplóban vannak tárolva, több érdekes forrásból származó adatok kiválaszthatók és egyetlen összefonódó bejegyzéslistában jeleníthetők meg.

Journalctl az eszköz dolgozott a folyóirattal.

Journalctl Nem sallang

A journalctl parancssori paraméterek nélkül is meghívható:

journalctl

Journalctl megjeleníti a teljes naplót, a legrégebbi bejegyzésekkel a lista tetején. A lista kevesebbben jelenik meg, így a szokásos navigációs funkciók használatával lapozhat és kereshet. A balra és jobbra mutató nyílbillentyűkkel oldalra görgethet a széles naplóbejegyzések olvasásához.

Az End billentyű lenyomása közvetlenül a lista aljára ugrik, és a legújabb naplóbejegyzéseket.

A kilépéshez nyomja meg a Ctrl+C billentyűkombinációt.

Bár a journalctl a sudo használata nélkül is meghívható, biztos lesz benne, hogy minden részletet látni fog a naplóban, ha sudo-t használ.

sudo journalctl

Ha szükséges, a –no-pager kapcsolóval beállíthatja, hogy a journalctl a kimenetét a terminálablakba küldje a less helyett.

sudo journalctl --no-pager

A kimenet gyorsan végiggördül a terminálablakon, és visszatér a parancssorba.

A journalctl által visszaadott sorok számának korlátozásához használja az -n (sorok) kapcsolót. Kérjünk tíz sort a kimenetre:

sudo journalctl -n 10

A folyóirat-frissítések nyomán

Ha azt szeretné, hogy a Journalctl megjelenítse a legújabb bejegyzéseket, amint azok megérkeznek a naplóba, használja a -f (follow) kapcsolót.

sudo journalctl -f

A legújabb bejegyzés 07:09:07 időbélyeggel rendelkezik. Ahogy új tevékenység történik, az új bejegyzések a kijelző aljához fűződnek. Közel valós idejű frissítések – klassz!

07:09:59-kor egy geek-app nevű alkalmazás egy naplóbejegyzést szúrt be a naplóba, amelyen ez állt: „Új üzenet a HTG-től”.

A megjelenítési formátum megváltoztatása

Mivel a napló egy bináris fájl, a benne lévő adatokat le kell fordítani vagy szöveggé kell értelmezni, mielőtt megjeleníthető lenne. Különböző elemzőkkel különböző kimeneti formátumok hozhatók létre ugyanabból a bináris forrásadatokból. A Journalctl számos különböző formátumot használhat.

Az alapértelmezett kimenet a rövid formátum, amely nagyon hasonlít a klasszikus rendszernapló-formátumhoz. A rövid formátum kifejezett kéréséhez használja a -o (output) opciót a rövid módosítóval.

sudo journalctl -n 10 -o short-full

Balról jobbra a mezők a következők:

  Az Nvidia béta illesztőprogram telepítése Linux rendszeren

Az üzenet létrehozásának ideje, helyi idő szerint.
A gazdagépnév.
A folyamat neve. Ez az a folyamat, amely létrehozta az üzenetet.
A naplóüzenet.

A teljes dátum- és időbélyegző megtekintéséhez használja a rövid teljes módosítót:

sudo journalctl -n 10 -o short-full

Ebben a kimenetben a dátum és az idő formátuma az a formátum, amelyben meg kell adnia a dátumokat és időpontokat, amikor időszakonként választja ki a naplóüzeneteket, amint azt hamarosan látni fogjuk.

Az egyes naplóüzeneteket kísérő összes metaadat megtekintéséhez használja a bőbeszédű módosítót.

sudo journalctl -n 10 -o verbose

Ott sok lehetséges mező van, de ritka, hogy minden mező jelen legyen az üzenetben.

Az egyik terület, amelyet érdemes megvitatni, a Prioritás mező. Ebben a példában az értéke 6. Az érték az üzenet fontosságát jelzi:

0: Vészhelyzet. A rendszer használhatatlan.
1: Figyelmeztetés. Egy állapotot jeleztek, amelyet azonnal ki kell javítani.
2: Kritikus. Ez magában foglalja az összeomlásokat, a hibaleállásokat és az elsődleges alkalmazások jelentős hibáit.
3: Hiba. Hibát jelentettek, de ez nem tekinthető súlyosnak.
4: Figyelmeztetés. Felhívja a figyelmet egy feltételre, amely figyelmen kívül hagyása hibává válhat.
5: Figyelem. A szokatlan események jelentésére szolgál, de nem a hibákra.
6: Információ. Rendszeres működési üzenetek. Ezek nem igényelnek intézkedést.
7: Hibakeresés. Az alkalmazásokba behelyezett üzenetek megkönnyítik számukra a hibakeresést.

Ha azt szeretné, hogy a kimenet megfelelően formált formában jelenjen meg JavaScript objektum jelölés (JSON) objektumok esetén használja a json módosítót:

sudo journalctl -n 10 -o json

Minden üzenet megfelelően van csomagolva jól formázott JSON-objektumként, és kimeneti soronként egy üzenet jelenik meg.

A JSON-kimenethez szép nyomtatott, használja a json-pretty módosítót.

sudo journalctl -n 10 -o json-pretty

Minden JSON-objektum több sorra van felosztva, és minden név-érték pár egy új sorban található.

Ha csak a naplóbejegyzési üzeneteket szeretné látni, időbélyegek és egyéb metaadatok nélkül, használja a cat módosítót:

sudo journalctl -n 10 -o cat

Ez a megjelenítési formátum megnehezítheti annak azonosítását, hogy melyik folyamat hozta létre a naplóeseményt, bár egyes üzenetek tartalmaznak nyomot.

Naplóüzenetek kiválasztása időintervallum szerint

Ha a Journalctl kimenetét egy Önt érdeklő időszakra szeretné korlátozni, használja a -S (a óta) és -U (amíg) opciókat.

A naplóbejegyzések egy adott időpont és dátum óta történő megtekintéséhez használja ezt a parancsot:

sudo journalctl -S "2020-91-12 07:00:00"

sudo journalctl -S

A kijelző csak azokat az üzeneteket tartalmazza, amelyek a parancsban szereplő dátum és idő után érkeztek.

A sudo journalctl -S kimenete

Ha meg akarja határozni azt az időszakot, amelyről jelentést szeretne készíteni, használja együtt a -S (a óta) és az -U (amíg) opciókat. Ez a parancs 15 perces időszak naplóüzeneteit tekinti meg.:

sudo journalctl -S "2020-91-12 07:00:00" -U "2020-91-12 07:15:00"

sudo journalctl -S

Ez egy nagyszerű kombinációs használat, ha tudja, hogy valami furcsa történt a rendszeren, és nagyjából mikor történt.

a sudo journalctl -S kimenete

Relatív időperiódusok használata

Az időszakok kiválasztásakor használhat relatív címzést. Ez azt jelenti, hogy olyan dolgokat mondhat, mint „mutassa meg az összes eseményt egy nappal ezelőttitől egészen mostanáig”. Ez a parancs csak ezt jelenti. A „d” a „napot” jelenti, a „-1” pedig egy múltbeli napot jelent.

sudo journalctl -S -1d

A naplóüzenetek tegnap 00:00:00-tól „most”-ig jelennek meg.

  A Telegram Linux asztali alkalmazás frissítése

Ha a közelmúltban történt dolgokat szeretne megvizsgálni, megadhat egy relatív időtartamot, órákban mérve. Itt tekintjük át az elmúlt óra naplóüzeneteit:

sudo journalctl -S -1h

Az elmúlt óra üzenetei megjelennek az Ön számára. Használhatja az „m”-t is a percekben mért relatív időtartamok beállítására, a „w”-t pedig hetekre.

Journalctl megérti ma, tegnap és holnap. Ezek a módosítók praktikus módot kínálnak a gyakori időszakok meghatározására. A tegnap történt összes esemény megtekintéséhez használja ezt a parancsot:

sudo journalctl -S yesterday

A tegnap éjfélig 00:00:00-ig történt összes naplónapló esemény lekérésre és megjelenítésre kerül.

A ma beérkezett összes naplóüzenet megtekintéséhez használja ezt a parancsot:

sudo journalctl -S today

00:00:00-tól a parancs kiadásáig minden megjelenik.

Keverheti a különböző időtartam-módosítókat. Ha mindent látni szeretne a két nappal ezelőtti időszaktól a mai nap kezdetéig, használja ezt a parancsot:

sudo journalctl -S -2d -U today

Tegnapelőtt a mai napig mindent lekérnek és megjelenítenek.

Naplóüzenetek kiválasztása adatmezők szerint

Kereshet naplóüzeneteket amelyek megfelelnek a folyóiratok széles skálájának. Ezek a keresések megpróbálnak egyezéseket találni az egyes üzenetekhez csatolt metaadatokban. Javasoljuk, hogy tekintse meg a mezők listáját és válassza ki azokat, amelyek a leghasznosabbak lesznek az Ön számára.

Ne feledje, hogy egy pályázat minden mezőt kitölt-e vagy sem, az kizárólag a pályázat szerzőjén múlik. Nem garantálhatja, hogy minden mező ki lesz töltve.

Az összes naplómező-módosítót ugyanúgy használjuk. Néhányat felhasználunk az alábbi példákban. Egy adott alkalmazás naplóüzeneteinek kereséséhez használja a _COMM (parancs) módosítót. Ha a -f (follow) opciót is használja, a journalctl nyomon követi az alkalmazástól érkező új üzeneteket, amint megérkeznek.

sudo journalctl -f _COMM=geek-app

A naplóbejegyzések között kereshet a folyamatazonosító a naplóüzenetet létrehozó folyamatról. A ps paranccsal keresse meg a keresni kívánt démon vagy alkalmazás folyamatazonosítóját.

sudo journalctl _PID=751

A cikk kutatásához használt gépen a SSH A démon a 751-es folyamat.

A következő alapján is kereshet Felhasználói azonosító. Ez annak a személynek a felhasználói azonosítója, aki elindította az alkalmazást vagy parancsot, vagy aki a folyamat tulajdonosa.

sudo journalctl _UID=1000

Minden más felhasználói azonosítóhoz társított üzenet kiszűrésre kerül. Csak az 1000-es felhasználóhoz kapcsolódó üzenetek jelennek meg:

Egy adott alkalmazáshoz kapcsolódó naplóüzenetek keresésének másik módja a végrehajtható fájl elérési útjának megadása.

sudo journalctl /usr/bin/anacron

Az összes anakron Az ütemező naplóüzenetei lekérhetők és megjelennek.

A keresés megkönnyítése érdekében megkérhetjük a journalctl-t, hogy listázza ki a benne lévő értékeket bármelyik naplómezőhöz.

Ha meg szeretné tekinteni azokat a felhasználói azonosítókat, amelyekhez a Journalctl naplóüzeneteket rögzített, használja a -F (fields) kapcsolót, és adja át a _UID mezőazonosítót.

journalctl -F _UID

Tegyük meg még egyszer, és nézzük meg a csoportazonosítók (GID-k):

journalctl -F _GID

Ezt bármelyikkel megteheti naplómező azonosítók.

  Corsair egér és billentyűzet problémák megoldása macOS és Linux rendszeren

Kernel üzenetek listázása

Van egy beépített módszer a kernel üzenetek gyors elkülönítésére. Nem kell magának keresnie és elkülönítenie őket. A -k (kernel) kapcsoló eltávolítja az összes többi üzenetet, és azonnali nézetet biztosít a kernelnapló bejegyzéseiről.

sudo journalctl -k

A kiemelés az üzenet fontosságát tükrözi, a Prioritás mező értékeinek megfelelően.

A rendszerindítási üzenetek áttekintése

Ha a rendszerindítással kapcsolatos problémája van, amelyet ki szeretne vizsgálni, a Journalctl foglalkozik vele. Lehet, hogy új hardvert adott hozzá, és az nem válaszol, vagy egy korábban működő hardverkomponens már nem működik a legutóbbi rendszerfrissítés után.

A legutóbbi rendszerindításhoz kapcsolódó naplóbejegyzések megtekintéséhez használja a -b (boot) kapcsolót:

journalctl -b

Megjelennek az utolsó rendszerindítás naplóbejegyzései.

Amikor azt mondjuk, hogy „utolsó rendszerindítás”, akkor azt a rendszerindítási folyamatot értjük, amely életre keltette a számítógépét az aktuális bejelentkezett munkamenetben. A korábbi rendszerindítások megtekintéséhez egy szám segítségével megmondhatja, hogy melyik rendszerindítás érdekli a Journalctl-t. A harmadik korábbi rendszerindítás megtekintéséhez használja ezt a parancsot:

journalctl -b 3

Általában, ha problémái vannak, és újra kellett indítania a gépet, akkor az egy korábbi rendszerindítási szekvencia érdekli. Tehát ez egy általános parancsforma.

Könnyen összekeverhető a csizma sorrendjével. Segítségül megkérhetjük a journalctl-t, hogy listázza ki a naplójában rögzített rendszerindításokat a –list-boots opció használatával.

journalctl --list-boots

A dátum- és időbélyegző alapján azonosíthatja azt a rendszerindítást, amelynek üzeneteit szeretné látni, majd a bal oldali oszlopban található szám segítségével lekérheti az adott rendszerindítási sorrendhez tartozó naplóüzeneteket. Kiválaszthatja a 32 bites rendszerindítási azonosítót is, és átadhatja azt a journalctl-nek.

sudo journalctl -b 1f00248226ed4ab9a1abac86e0d540d7

A rendszer letölti és megjeleníti a kért rendszerindítási sorrendből származó naplóüzeneteket.

A Journal merevlemez-terület kezelése

Természetesen a napló és az összes naplóüzenete a merevlemezen tárolódik. Ez azt jelenti, hogy helyet foglalnak a merevlemezen. Ha látni szeretné, mennyi helyet foglalt el a napló, használja a –disk-usage opciót.

journalctl --disk-usage

A mai merevlemezekkel 152 MB egyáltalán nem sok hely, de demonstrációs célból még visszavágjuk. Ezt kétféleképpen tehetjük meg. Az első az, hogy állítson be egy méretkorlátot, amelyre vissza kívánja csökkenteni a naplót. Természetesen újra meg fog nőni, de most már metszhetjük, készen az új növekedésre.

Használjuk a csodálatosan elnevezett – vákuumméret opciót, és adjuk át azt a méretet, amelyre szeretnénk kicsinyíteni a naplót. 100 MB-ot kérünk. Ezt úgy gondoljuk, hogy arra kérjük a Journalctl-t, hogy „dobjon el mindent, amit csak tud, de ne menjen 100 MB-nál alacsonyabbra”.

journalctl --vacuum-size=100M

A napló méretének visszavágásának másik módja a –vacuum-time opció használata. Ez a beállítás arra utasítja a Journalctl-t, hogy elvesse azokat az üzeneteket, amelyek régebbiek, mint a parancssorban megadott időszak. Az időtartamban napokat, heteket, hónapokat és éveket használhat.

Kiszűrjük az összes egy hétnél régebbi üzenetet:

journalctl --vacuum-time=1weeks

Adat kontra információ

Az adatok csak akkor hasznosak, ha rájössz, és nem tudod használni. Aztán hasznos információvá válik. A journalctl parancs egy rugalmas és kifinomult eszköz, amely lehetővé teszi, hogy különféle módokon érje el az érdeklő információkat.

Szinte bármilyen információrészletet felhasználhat a szükséges naplóüzenetekhez.