När det går fel med Linux kan det vara en mardröm att felsöka. De inneboende utmaningarna i samband med detta fördubblas när problemet du står inför är intermittent och du inte vet vad som orsakar det.
Jag antar att du skulle kunna spendera timme efter timme med att läsa Stack Overflow och be Reddit om hjälp. Eller så kan du ta saker i egna händer och dyka in i ditt systems loggfiler, i syfte att ta reda på vad problemet är.
Vad är loggfiler?
Många program – oavsett om de är för Windows, Mac eller Linux – genererar loggfiler allt eftersom. Till och med Android genererar dem. Dessa är oformaterade filer som innehåller information om hur ett program körs. Varje evenemang kommer att vara på sin egen rad, tidsstämplad till den andra.
Även om detta inte är allmänt sant för alla applikationer, tenderar loggfiler vanligtvis att hittas i katalogen /var/log.
Överväldigande kommer data i dessa filer att vara vardagliga. Det kommer inte nödvändigtvis att tyda på ett problem. Det kommer bara att vara uppdateringar om vad programmet gjorde vid en given tidpunkt.
Men när det finns ett problem kan du garantera att information om det finns i loggfilerna. Denna information kan användas för att åtgärda det, eller för att ställa en beskrivande fråga till någon som kanske vet.
Så när du har att göra med loggfiler, hur isolerar du informationen du bryr dig om från saker du inte gör?
Använder standard Linux-verktyg
Som vi nämnde tidigare är loggfiler inte exklusiva för någon plattform. Trots det kommer fokus för den här artikeln att vara Linux och OS X, eftersom dessa två operativsystem levereras med de väsentliga UNIX-kommandoradsverktygen som krävs för att analysera dem.
Eftersom loggfiler är vanliga textfiler kan du använda alla verktyg som du vill använda för att visa sådana filer. Av dessa är grep förmodligen den svåraste att lära sig, men också den mest användbara. Det låter dig söka efter specifika fraser och termer i en viss fil. Syntaxen för detta är grep [term] [filename].
När de är mest avancerade kan du använda reguljära uttryck (RegEx) för att söka efter termer och objekt med laserfokus. Även om RegEx ofta ser ut som trolldom, är det faktiskt ganska enkelt att få kläm på.
Sedan finns det kommandona “huvud” och “svans”. Inga poäng för att gissa vad dessa gör. De visar de översta och nedersta tio raderna i en fil, respektive. Så, om du vill se de senaste objekten i en loggfil, skulle du köra “tail filename”.
Du kan ändra antalet rader som visas genom att använda “-n”-utlösaren. Så om du ville se de första 20 raderna i en fil, skulle du köra
huvud -n 20 [filename]
Om du vill titta på hela innehållet i en fil kan du använda “cat”-verktyget. Detta kan dock vara lite krångligt, eftersom loggfiler ofta kan mäta i hundratusentals rader. En bättre idé skulle vara att skicka den till det mindre verktyget, vilket låter dig se det en sida i taget. För att göra det, spring
katt [filename] | mindre
Alternativt kan du använda sed och awk. Dessa två verktyg låter dig skriva enkla skript som bearbetar textfiler. Vi skrev om dem förra året.
Slutligen, om du är säker på det, kanske du också vill prova vim-textredigeraren. Detta har ett gäng inbyggda kommandon som gör det trivialt att analysera loggfiler. 32-bitarsversionen av vim har också en maximal filstorlek på 2 GB, även om jag inte skulle rekommendera att du använder den på så stora filer av prestandaskäl.
Använder programvara för logghantering
Om det låter som för mycket hårt arbete, eller om du vill använda något mer visuellt, kanske du vill överväga att använda en logghanteringsapplikation (ofta förväxlas med SIEM eller Security Information and Event Management).
Det som är bra med dessa är att de gör mycket av det hårda arbetet åt dig. Många av dem kan titta på loggar och identifiera problem automatiskt. De kan också visualisera loggar i alla möjliga tilltalande grafer och diagram, så att du kan få en bättre förståelse för hur tillförlitligt en applikation fungerar.
Ett av de mest kända logghanteringsprogrammen heter Splunk. Detta logghanteringsverktyg låter dig gå igenom filer med hjälp av ett webbgränssnitt. Den har till och med sitt eget kraftfulla och mångsidiga sökbearbetningsspråk, som låter dig gå igenom resultaten på ett programmatiskt sätt.
Splunk används av otaliga stora företag. Den är tillgänglig för Mac, Windows och Linux. Men den har också en free version, som kan användas av hem- och småföretagsanvändare för att hantera sina loggar.
Denna version – kallad Splunk Light – har mycket gemensamt med företagsversionerna. Den kan bläddra i loggar, övervaka filer efter problem och utfärda varningar när något är fel.
Med det sagt har Splunk Light vissa begränsningar, som är ganska rimliga. För det första är mängden data som den kan konsumera begränsad till 500 MB per dag. Om det inte räcker kan du uppgradera till betalversionen av Splunk Light, som kan förbruka 20 GB loggar per dag. Realistiskt sett kommer de flesta användare inte att få det var som helst nära det.
Det stöder också bara fem användare, vilket inte borde vara ett problem för de flesta, särskilt om det bara körs på hushållswebb- och filservrar.
Splunk erbjuder en molnversion, som är idealisk för de som inte vill installera hela klienten på sina maskiner, eller de som har ett antal fjärrservrar. Nackdelen med detta är den enorma kostnaden. Den billigaste Splunk-planen kostar $125,00 per månad. #
Det är mycket pengar.
Hur hanterar du dina loggfiler?
Så vi har tittat på hur du kan förhöra dina loggfiler och hitta den information du behöver för att felsöka, antingen personligen eller med fjärrhjälp. Men känner du till några bättre metoder? Använder du ett logghanteringsprogram eller standardverktygen för Linux?
Jag vill höra om det. Låt mig veta i kommentarerna nedan.
Om författaren
Matthew Hughes (383 artiklar publicerade)
Matthew Hughes är en mjukvaruutvecklare och författare från Liverpool, England. Han hittas sällan utan en kopp starkt svart kaffe i handen och fullkomligt avgudar sin Macbook Pro och sin kamera. Du kan läsa hans blogg på http://www.matthewhughes.co.uk och följa honom på twitter på @matthewhughes.
Mer från Matthew Hughes
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera