Systemloggar är din bästa vän när du vill felsöka fel. Här är allt du behöver veta om övervakningsloggar på Ubuntu.
Det är extremt frustrerande när din dator inte fungerar som den ska och du inte vet varför. Även om det inte finns enkla lösningar på alla problem du kan stöta på i Ubuntu, kan du använda resurser som Ubuntu-felloggarna för att felsöka och diagnostisera dina PC-problem.
Vad är Ubuntu-loggar?
Ubuntu loggar är omfattande filer som lagrar en förteckning över alla händelser som inträffar på din dator. Den innehåller loggad information om din hårdvara, operativsystem och till och med en del av din programvara.
Dessa loggar är ovärderliga för felsöknings- och diagnostiseringsprocessen. De tillhandahåller information som tidsstämplar, sammanhang och djupgående detaljer om händelser som inträffar i ditt system. För att kunna använda dessa loggar måste du först känna till de viktigaste typerna.
Typer av Ubuntu-loggar
Istället för att skriva varje bit av information i en logg, registrerar Ubuntu information i separata loggar utformade för olika ändamål. Även om det finns för många loggar att lista, finns det några viktiga loggar (och loggtyper) du bör vara medveten om innan du försöker använda dem för felsökning.
Den kanske mest framträdande av alla loggarna är systemd-journalen. systemd är en integrerad tjänstehanterare i Linux. Som ett resultat av detta registreras problem med många olika operativsystemtjänster i systemd-journalen. Du kan navigera i den här loggen med kommandot journalctl.
Systemloggarna är också mycket viktiga. Dessa loggar hänför sig direkt till olika delar av Ubuntu och kan innehålla saker som systemmeddelanden. Några av systemloggarna inkluderar:
- Auktoriseringsloggen: Alla processer som kräver auktorisering, såsom ett sudo-kommando eller användarinloggningar, kommer att registreras i den här loggen.
- Demonloggen: Denna logg avser alla bakgrundstjänster (eller demoner), som Bluetooth och SSH.
- Felsökningsloggen: Den här loggen tillhandahåller felsökningsinformation som tillhandahålls av systemet såväl som applikationer som loggar till syslogd.
- Kärnloggen: Denna logg innehåller uppgifter om aktivitet som involverar Linux-kärnan.
- Systemloggen: Den här loggen lagrar poster som inkluderar de flesta typer av global aktivitet på ditt system.
- Felloggen: Denna stock lagras register över misslyckade inloggningar, vilket gör det särskilt användbart för att kontrollera om någon har försökt bryta sig in i ditt system.
Din dator kan också ha programloggar (som Apache-loggfiler eller MySQL-loggfiler) lagrade i /var/log katalog. Du kan använd kommandot ls för att se alla loggfiler som för närvarande är lagrade på din dator:
ls /var/log
Hur man läser loggar på Ubuntu
Nu när du är bekant med de olika typerna av loggar på ditt system är du redo att fördjupa dig i informationen de lagrar. Innan du börjar är det viktigt att notera att inte alla systemloggar är skrivna på samma sätt.
Vissa loggar lagras som klartextfiler medan andra loggar lagras som binära filer. Du måste bekanta dig med båda typerna av filer – och kommandoradsverktygen de är ihopparade med – om du effektivt vill analysera posterna på ditt system.
Filloggar i klartext använder en mall som kallas RSYSLOG_TraditionalFileFormat och inkluderar fyra grundläggande fält: tidsstämpel, värdnamn, applikation och meddelande. Till exempel använder kärnloggen denna mall:
Till skillnad från klartextloggar kan binära filloggar inte läsas lika lätt. Du måste använda kommandoradsverktyg som WHO, sista, och lastb för att läsa loggar som utmp, wtmp respektive btmp. Kommandon som utmpdump för utmp-varianter och systemctl för journald är också utformade för att skriva ut binär logginformation i ett läsbart format.
I de flesta situationer är det viktigt att veta hur man tolkar dessa loggar effektivt i terminalen. Du kan använda kommandon som grep och tail för att hämta specifik information utan att behöva noggrant läsa igenom hela dina systemloggar.
Några av de bästa kommandona du kan använda inkluderar:
- grep: Söker efter en teckensträng i en fil
- svans: Skriver ut 10 rader från slutet av en fil
- huvud: Skriver ut 10 rader från början av en fil
- sortera: Skriver ut en fil omorganiserad enligt dina specifikationer
Kommandoradsverktyg som utmpdump och systemctl har också användbara flaggor som du bör tänka på när du arbetar i terminalen. Dessa flaggor låter dig ändra kommandot och har ökad kontroll över vad som skrivs ut i terminalen.
Några särskilt användbara flaggor för kommandot journalctl är:
- -b: Gör att journalctl endast returnerar poster som samlats in efter den senaste omstarten
- --sedan "ÅÅÅÅ-MM-DD HH: MM: SS" --tills "ÅÅÅÅ-MM-DD HH: MM: SS": Instruerar journalctl att endast returnera poster före och/eller efter de angivna datumen
- -p NUM: Filtrerar poster efter deras syslog-prioritetsnivåer (från 0/emerg till 7/debug)
Felsökning av fel med Ubuntu-loggar
Nu när du är bekant med de olika typerna av systemloggar och vet hur du läser igenom dem i praktiken är det enda som återstår att använda informationen du har samlat in på felsökningen bearbeta. Denna process kräver vanligtvis lite kreativitet.
Det är en bra idé att närma sig felsökning genom att tänka på de framträdande egenskaperna hos problemet du hanterar först. Uppstår problemet när du öppnar ett visst program? Kraschar ditt system och startar om varje gång problemet uppstår?
När du tänker på problemets egenskaper kommer det naturligtvis att leda dig till några av de bästa loggarna för att samla information om det. Till exempel, om ditt system har problem under uppstartsprocessen kan du kanske få lite användbar information genom att referera till startposterna i journald.
Ange följande kommando för att skriva ut alla loggade stövlar i journald:
journalctl --list-boots
Terminalen kommer att skriva ut en lista över inspelade stövlar; de senaste stövlarna finns längst ner i listan. Titta på de registrerade datumen och tiderna för varje start tills du kan hitta en loggad start där felet uppstod.
Ta numret från kolumnen längst till vänster som NUM och skriv in följande kommando för att få mer information om uppstarten:
journalctl -b -NUM -n
En omfattande förteckning över information om start kommer att visas. Om några ovanliga fel inträffade under uppstartsprocessen kan du sedan använda informationen från denna post för att komma ett steg längre i felsökningen.
Samma princip gäller för många andra frågor. Om du inte vet mycket om problemet som din dator upplever, kan det dock vara svårt att veta var du ska börja. Det finns några loggar som sticker ut som särskilt användbara för ett brett spektrum av problem med Ubuntu-system.
syslog är den bästa loggen att börja med under felsökningsprocessen. Eftersom det faktiskt är en global logg, är det mycket troligt att den har lite information om problemet du hanterar. Om du har problem med autentisering (som sudo-lösenordet fungerar inte fel, till exempel) eller startar, kontrollera sedan auth.log eller boot.log.
Sök igenom de mest relevanta loggarna med nyckelord relaterade till ditt problem. Om du till exempel har problem med autentisering kan du hämta poster från auth.log med följande kommando:
cat /var/log/auth.log | grep 'Autentiseringsfel'
Så småningom kommer du säkert att hitta information som ger utmärkt insikt. När du kopplar ihop information från felloggarna med forskning på webben är det mycket troligt att du hittar resurser som hjälper dig att lösa problem med ditt system på nolltid.
Se onlineresurser för att felsöka Linux-fel
Du behöver inte gå igenom felsökningsprocessen ensam. När du samlar in information om problemet med din dator bör du använda onlineresurser som Fråga Ubuntu och de detaljerade guiderna på MakeUseOf för att komma närmare att äntligen diagnostisera och reparera din PC.