Hur man Använder journalctl att Läsa Linux-System Loggar

0
347
Fatmawati Achmad Zaenuri/Shutterstock

Linux-system loggning förändrats i och med införandet av systemd. Lär dig hur man använder journalctl kommandot för att läsa och filter system loggar meddelanden.

Centraliserad Loggning

Inte främmande för kontroverser, den systemd system och service manager infört en betydande förändring i det sätt systemet loggar samlas in. Loggar används för att vara lokaliserade på olika ställen i filsystemet enligt tjänsten eller demon som var att skapa dem. Men de hade alla en sak gemensamt. De var filer med oformaterad text.

Med systemd alla system -, start-och kärna loggfiler samlas in och hanteras av en central, dedikerad lösning för loggning. Formatet är de lagras i en binär en. En sak detta underlättar är att kunna extrahera data i olika format, såsom JSON, som vi skall se.

det kan också göra det lättare att korsreferens relaterad information som tidigare redovisats i separat logg-filer. Eftersom de data som nu hålls i en enda tidning, data från flera källor av intresse kan väljas och visas i en enda sammanvävda lista med poster.

journalctl är det verktyg som används för att arbeta med tidningen.

journalctl Med Inga Krusiduller

Du kan åberopa journalctl utan parametrar på kommandoraden:

journalctl

journalctl visar hela tidning, med de äldsta posterna överst på listan. Listan visas i mindre, så att du till sidan och sök med den vanliga navigeringen har mindre. Du kan även använda Vänster-och högerpilarna för att bläddra sidledes för att läsa brett loggposter.

Att trycka på Avsluta-knappen kommer att hoppa direkt till slutet av listan, och de nyaste loggposterna.

Tryck på Ctrl+C för att avsluta.

RELATERAT: Hur man Använder mindre Kommando på Linux

Även om journalctl kan anropas utan att använda sudo, kommer du att se till att du ser alla detaljer inom logga in om du använder sudo.

sudo journalctl

Om du behöver, kan du göra journalctl skicka utdata till terminalen fönstret i stället för mindre, med hjälp –no-personsökare alternativ.

sudo journalctl –no-personsökare

Produktionen rullar snabbt genom terminal-fönstret och du kommer tillbaka till kommandotolken.

För att begränsa antalet linjer som journalctl returer, använd-n (linjer) alternativ. Låt oss be för tio rader i produktionen:

sudo journalctl -n 10

Följande Tidning Uppdateringar

För att göra journalctl visa de nyaste posterna när de kommer i journal kan du använda växeln-f (follow) alternativ.

sudo journalctl -f

Den nyaste posten har en tidsstämpel 07:09:07. Som en ny verksamhet som tar plats, den nya poster läggs till längst ned på displayen. Nära realtid uppdateringar—cool!

Vid 07:09:59 ett program som heter geek-app injiceras en stock i den tidning som sagt, “Nytt Meddelande från HTG.”

Ändra visningsformat

Eftersom tidskriften är en binär fil, data måste översättas eller tolkas till text innan den kan visas för dig. Med olika tolkare, olika format kan skapas från samma binära källdata. Det finns flera olika format för att journalctl kan använda.

Standard output är det korta formatet, som är mycket lik den klassiska system logga format. Att uttryckligen begär det korta formatet,- o (output) alternativ med kort modifierare.

sudo journalctl -n 10 -o-kort-full

Från vänster till höger, fälten är:

  • Den tid som meddelandet skapades i lokal tid.
  • Värdnamnet.
  • Processen namn. Detta är den process som genererat meddelande.
  • Loggmeddelandet.

För att få en komplett datum och tid använd kort-full modifierare:

sudo journalctl -n 10 -o-kort-full

Datum och tid format denna utgång är det format som du behöver för att ge datum och tider för när du väljer att logga meddelanden per period, som vi skall se strax.

För att se alla metadata som följer med varje loggmeddelande, använda utförligt modifierare.

sudo journalctl -n 10 -o verbose

Det finns många tänkbara områden, men det är sällsynt att alla fält för att vara närvarande i ett meddelande.

Ett område värt att diskutera är ett Prioriterat område. I detta exempel, den har ett värde av 6. Värdet motsvarar vikten av det budskap som:

  • 0: Akut. Systemet är oanvändbar.
  • 1: Alert. En förutsättning har flaggats som bör rättas till omedelbart.
  • 2: Kritisk. Detta omfattar kraschar, coredumps, och om betydande brister i primära applikationer.
  • 3: Fel. Ett fel har rapporterats, men det anses inte allvarliga.
  • 4: Varning. Ger en förutsättning för att din uppmärksamhet som, om de ignoreras, kan bli ett fel.
  • 5: föregående Meddelande. Används för att rapportera händelser som är ovanliga, men inte fel.
  • 6: Information. Vanliga operativa meddelanden. Dessa inte kräver åtgärder.
  • 7: Debug. Meddelanden lägga till applikationer för att göra det lättare för dem att felsöka dem.

Om du vill att produktionen ska presenteras som korrekt bildas JavaScript Object Notation (JSON) objekt, använder json modifierare:

sudo journalctl -n 10 -o json

Varje meddelande är korrekt förpackade som en välformad JSON-objekt, visas ett meddelande per utskrift.

Att ha JSON utgång ganska tryckt använder json-ganska modifierare.

sudo journalctl -n 10 -o json-ganska

Varje JSON objektet är uppdelat i flera rader, med varje namn-värde-par på en ny linje.

Att bara se loggen meddelanden, utan tid frimärken eller andra metadata, använder katten modifierare:

sudo journalctl -n 10 -o katt

Detta visningsformat kan göra det svårt att identifiera vilken process som höjde logga en händelse, även om vissa meddelanden innehåller en aning.

Välja Logga Meddelanden Av Tid

För att begränsa produktionen från journalctl till en tid du är intresserad av att använda växeln-S (sedan) och -U (fram) alternativ.

För att se loggposter sedan en viss tid och datum, använd detta kommando:

sudo journalctl -S “2020-91-12 07:00:00”

Displayen innehåller endast meddelanden som anlänt efter datum och tid i kommandot.

För att ange en tidsperiod som du vill rapportera om, använd både -S (sedan) och -U (fram) val tillsammans. Detta kommando ser på logga meddelanden från en 15 minuters period.:

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

Detta är en bra kombination använda om du vet att något underligt hände på ditt system, och ungefär när det hände.

Med Hjälp Av Relativa Tidsperioder

Du kan använda relativ adressering när du väljer din tid perioder. Det innebär att du kan säga saker som “visa mig alla händelser från en dag sedan fram till nu.” Detta är precis vad innebär detta kommando. “D” står för “day” och “-1” betyder en dag tidigare.

sudo journalctl -S -1d

Logg-meddelanden listas från 00:00:00 igår, fram till “nu”.

Om du vill undersöka något som hänt i det förflutna, kan du ange en relativ tid mätt i timmar. Här har vi recenserar logga meddelanden från den senaste timmen:

sudo journalctl -S -1h

Meddelanden från den senaste timmen visas för dig. Du kan också använda “m” för att ställa in relativ tid perioder mätt i minuter, och “w” för veckor.

journalctl förstår idag, igår och i morgon. Dessa modifieringar ger ett praktiskt sätt att ange gemensamma tidsperioder. För att se alla händelser som hände i går, använd detta kommando:

sudo journalctl -S igår

Alla tidning logga händelser som hände i går, fram till midnatt 00:00:00, hämtas och visas för dig.

För att se alla logga meddelanden som mottagits i dag så långt, att använda detta kommando:

sudo journalctl -S idag

Allt från 00:00:00 fram till den tidpunkt då kommandot ges ut, visas.

Du kan blanda de olika tid modifierare. För att se allt från två dagar sedan fram till början av idag, för att använda detta kommando:

sudo journalctl -S -2d -U idag

Allt eftersom dagen innan igår tills idag hämtas och visas.

Välja Logga Meddelanden Genom Att Datafälten

Du kan söka för att logga meddelanden som matchar ett brett utbud av tidning fält. Dessa sökningar försök att hitta matcher i metadata knutna till varje meddelande. Det rekommenderas att du hänvisar till listan över fält och välja de som kommer att vara mest användbara för dig.

Tänk, om en ansökan som avslutar varje område eller inte är helt upp till författarna av ansökan. Du kan inte garantera att alla fält vara ifyllda.

Alla tidning fältet modifierare används på samma sätt. Vi kommer att använda några i vårt exempel nedan. Att titta för att logga meddelanden från en viss applikation, använd _COMM (kommando) modifierare. Om du också använda växeln-f (follow) alternativ, journalctl kommer att spåra nya meddelanden från detta program som de anländer.

sudo journalctl -f _COMM=geek-app

Du kan söka för att logga in information genom att använda process-ID för den process som genererade ett logga meddelande. Använda ps-kommandot för att hitta process-id för den demonen eller det program som du tänker söka.

sudo journalctl _PID=751

Om maskinen används till forskning denna artikel, SSH daemon är processen 751.

Du kan även söka med hjälp av användar-Id. Detta är användar-ID för den person som lanserade program eller kommando, eller vem som äger processen.

sudo journalctl _UID=1000

Alla meddelanden som är associerade med någon annan användar-ID filtreras ut. Endast de meddelanden som är relaterade till 1000 användare visas:

Ett annat sätt att söka för att logga meddelanden som är relaterade till en specifik applikation är att ange sökvägen till den körbara programvaran.

sudo journalctl /usr/bin/anacron

Alla anacron schemaläggaren logga meddelanden som ska hämtas och visas.

För att göra sökningen enklare, vi kan be journalctl att lista alla de värden som det innehar för något av tidskriften fält.

För att se användar-ID som journalctl har registrerats logga in meddelanden för att använda växeln-F (fält) alternativ, och passera _UID fält.

journalctl -F _UID

Låt oss göra det igen och titta på grupp-Id (GID s):

journalctl -F _GID

Du kan göra detta med någon av tidskriften fältet kännetecken.

Notering På Kernel-Meddelanden

Det finns ett inbyggt sätt att isolera på kernel-meddelanden snabbt. Du behöver inte söka och isolera dem själv. -K (kärnan) alternativ tar bort alla andra meddelanden och ger dig en omedelbar överblick av kärnan loggposter.

sudo journalctl -k

Den belyser speglar vikten av meddelandet, enligt värdena i fältet Prioritet.

Granska Start-Meddelanden

Om du har en fråga som har samband med uppstart som du vill undersöka, journalctl har du omfattas. Kanske du har lagt till ny hårdvara, och det är att inte svara, eller en tidigare fungerande hårdvara komponent fungerar inte längre efter ditt förra systemuppgradering.

För att se loggen poster relaterade till din sista boot, använder-b (boot) alternativ:

journalctl -b

Loggposter för den sista boot visas för dig.

När vi säger “sista boot”, menar vi att starta processen som förde din dator till liv för din aktuella inloggade sessionen. För att se tidigare stövlar, kan du använda ett nummer för att berätta journalctl som boot du är intresserad av. För att se den tredje tidigare boot, använd detta kommando:

journalctl -b 3

I allmänhet, om du har haft problem och var tvungen att starta om din maskin, är det en tidigare startordningen du är intresserad av. Så detta är ett vanligt kommando form.

Det är lätt att få blandas ihop med den sekvens av stövlar. För att hjälpa till, vi kan be journalctl att lista stövlar att det har spelat in i sin tidning, använda –list-stövlar alternativ.

journalctl –list-stövlar

Du kan identifiera boot du vill se meddelanden från och med det datum och klockslag, och sedan använda de nummer i kolumnen till vänster för att få logga in meddelanden för att starta sekvensen. Du kan också välja 32-bitars boot identifierare, och skicka det till journalctl.

sudo journalctl -b 1f00248226ed4ab9a1abac86e0d540d7

Logga meddelanden från boot-sekvens som vi begärt hämtas och visas.

Hantera Tidning Hårddisk Utrymme

Naturligtvis, tidning och alla dess logga meddelanden som kan lagras på din hårddisk. Det betyder att de kommer att ta upp utrymme på hårddisken. För att se hur mycket utrymme som har tagits av den tidning, använda –disk-användning alternativ.

journalctl –disk-användning

Med dagens hårddiskar, 152 MB finns inte mycket utrymme alls, men för demonstration, vi kommer fortfarande att trimma det tillbaka. Det finns två sätt vi kan göra detta. Den första är att sätta en gräns som du vill ha den tidning nedsatt tillbaka till. Det kommer att växa igen, naturligtvis, men vi kan beskära den nu redo för ny tillväxt.

Vi kommer att använda underbart titeln –vakuum-size-alternativet, och passera i den storlek vi vill tidning reduceras till. Vi ska be för 100 MB. Det sättet att tänka på detta är att vi ber journalctl att “kasta bort vad du kan, men behöver inte gå lägre än 100 MB.”

journalctl –vakuum-storlek=100 M

Det andra sättet att trimma tillbaka tidning storlek är att använda –vakuum-time alternativet. Det här alternativet talar om journalctl att ignorera meddelanden som är äldre än den period som du lämnar på kommandoraden. Du kan använda dagar, veckor, månader och år i tid.

Låt oss rensa ut alla meddelanden som är äldre än en vecka:

journalctl –vakuum-tid=1weeks

Data vs. Information

Data är inte användbar om du inte kan få på den och använda den. Då blir det nyttig information. Den journalctl kommando är en flexibel och sofistikerade verktyg som gör att du kan få den information som är av intresse i en mängd olika sätt.

Du kan använda nästan vilken snutt av information som du har för att logga meddelanden som du behöver.

LÄS NÄSTA

  • “Hur man “Dölja” en App på Din iPhone eller iPad
  • “Hur Stream 2020-Valp Skål Utan Kabel
  • “Vad Gör “AMA” Betyder, och Hur Använder Man Det?
  • “Hur Stream Super Bowl 2020 Utan Kabel
  • “Vad Är en Mini-LED-TV, och Varför Skulle Du Ha En?