Annons
När saker 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 vet inte vad som orsakar det.
Jag antar att du skulle kunna spendera timme efter timme genom att granska Stack Overflow, och ber Reddit om hjälp The Awesome Guide to RedditUndrar hur dina vänner alltid hittar coola saker på Internet innan du? De använder förmodligen Reddit, den självutnämnda "internetets förstasida". Läs mer . Eller så kan du ta saker i dina egna händer och dyka i systemets loggfiler med syftet att ta reda på vad problemet är.
Vad är loggfiler?
Många program - vare sig de är för Windows, Mac eller Linux - genererar loggfiler när de går. Till och med Android genererar dem Hur man skaffar en Logcat för rapportering av fel på AndroidOm du någonsin har blivit ombedd för en logcat, så gör du det! Läs mer . Dessa är vanliga textfiler som innehåller information om hur ett program körs. Varje evenemang kommer att vara på sin egen linje, tidsstämplad till den andra.
Även om detta inte är universellt sant för alla applikationer, brukar loggfiler vanligtvis hittas i katalogen / var / logg.
Överväldigande kommer data i dessa filer att vara vardagliga. Det kommer inte nödvändigtvis att indikera ett problem. Det kommer bara att vara uppdateringar om vad programmet gjorde vid en viss tidpunkt.
Men när det finns ett problem kan du garantera att information om den kommer att finnas i loggfilerna. Denna information kan användas för att avhjälpa den eller ställa en beskrivande fråga om någon som kanske känner till.
Så när du hanterar loggfiler, hur isolerar du den information du bryr dig om från det du inte har?
Använda Standard Linux Utilities
Som vi nämnde tidigare är loggfiler inte exklusiva för någon plattform. Trots detta kommer fokus för denna artikel att vara Linux och OS X, eftersom dessa två operativsystem levereras med viktiga UNIX-kommandoradsverktyg En snabbguide för att komma igång med Linux-kommandoradenDu kan göra många fantastiska saker med kommandon i Linux och det är verkligen inte svårt att lära sig. Läs mer krävs för att para igenom dem.
Eftersom loggfiler är vanliga textfiler kan du använda alla verktyg som du skulle använda för att se 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] [filnamn].
På det 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 trollkarl, är det faktiskt ganska enkelt att få tag på.
Sedan finns kommandona 'huvud' och 'svans'. Inga poäng för att gissa vad dessa gör. De visar de översta och nedre tio linjerna i en fil. Så om du ville se de senaste artiklarna på en loggfil så körde du "tail filnamn".
Du kan ändra antalet rader som visas med hjälp av "-n" utlösaren. Så om du ville se de första 20 linjerna i en fil, skulle du köra
head -n 20 [filnamn]
Om du vill titta på hela innehållet i en fil kan du använda verktyget "katt". Detta kan dock vara lite svårt, eftersom loggfiler ofta kan mäta i hundratusentals rader. En bättre idé skulle vara att leda den till mindre verktyg, vilket gör att du kan se den en sida åt gången. För att göra det, kör
cat [filnamn] | 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 Varje Linux-geek behöver känna till Sed och Awk. Här är varför ...Två av de mest kriminellt underuppskattade Linux-verktygen är de riktigt bågfria Sed och Awk. Men vad är de? Hur används de? Och hur gör de det lättare att bearbeta text? Läs mer .
Slutligen, om du är säker på det, kanske du också vill prova vim-textredigeraren De 7 främsta orsakerna till att ge Vim Text Editor en chansI flera år har jag provat den ena textredigeraren efter den andra. Namnlösa, jag försökte det. Jag använde var och en av dessa redaktörer i över två månader som min primära dagliga redaktör. På något sätt ... Läs mer . Detta har ett gäng inbyggda kommandon som gör det trivialt att analysera genom 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å filer som är stora av prestandaskäl.
Använda logghanteringsprogram
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 logghantering applikation (ofta förvirrad med SIEM, eller säkerhetsinformation och evenemangshantering).
Det som är bra med dessa är att de gör mycket av det hårda arbetet för dig. Många av dem kan titta på loggar och identifiera problem automatiskt. De kan också visualisera loggar i alla möjliga behagliga grafer och diagram, så att du får en bättre förståelse för hur tillförlitligt en applikation fungerar.
Ett av de mest kända loggprogrammen kallas Splunk. Detta logghanteringsverktyg låter dig köra filer med ett webbgränssnitt. Det har till och med sitt eget kraftfulla och mångsidiga sökbearbetningsspråk, som gör att du kan gå igenom resultaten på ett programmatiskt sätt.
Splunk används av otaliga stora företag. Det är tillgängligt för Mac, Windows och Linux. Men den har också en gratisversion, som kan användas av användare och småföretag för att hantera sina loggar.
Denna version - kallas Splunkelljus - delar mycket gemensamt med företagsversionerna. Det kan bläddra loggar, övervaka filer för 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 den kan konsumera begränsad till 500 MB per dag. Om det inte räcker kan du uppgradera till den betalda versionen av Splunk Light, som kan konsumera 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ållens webb- och filserver.
Splunk erbjuder en molnversion, som är idealisk för dem som inte vill installera hela klienten på sina maskiner, eller de med ett antal fjärrservrar. Nackdelen med detta är de enorma kostnaderna. Den billigaste Splunk-planen kostar $ 125,00 per månad. #
Det är mycket kontanter.
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 standardverktyget för Linux?
Jag vill höra om det. Låt mig veta i kommentarerna nedan.
Matthew Hughes är en programutvecklare och författare från Liverpool, England. Han hittas sällan utan en kopp starkt svart kaffe i handen och älskar absolut sin Macbook Pro och sin kamera. Du kan läsa hans blogg på http://www.matthewhughes.co.uk och följ honom på twitter på @matthewhughes.