När du stöter på några problem med din servers prestanda är det första du vill göra att kontrollera dina Linux-loggar. I systemloggen kan du hitta några användbara diagnostikmeddelanden från olika komponenter i operativsystemet som kärnan eller olika tjänster, så du hittar troligen felorsaken där.
Varje meddelande i loggen genereras som ett resultat av vissa händelser i operativsystemet: från användaren, auktorisering till serviceavstängning eller applikationsfel. Dessa händelser har olika prioriteringar beroende på hur kritiska de är. Det finns följande typer av händelser i Linux:
emerg- misslyckande, högsta prioritet;alert- brådskande varning;crit- kritisk händelse;err- vanligt fel;warn- vanlig varning;notice- anmälan;info- informationsmeddelande;debug- felsökningsinformation;
För tillfället är de huvudsakliga loggar-tjänsterna i Linux rsyslog och systemd-journalad. De går med de flesta moderna distributionspaket och arbetar självständigt.
rsyslog
Loggar för denna tjänst finns i "/ var / log /" i form av vanliga textfiler. Loggmeddelanden läggs i olika filer beroende på typ av händelse. Till exempel "/var/log/auth.log” innehåller information om användarnas behörighet i systemet, och ”/var/log/kern.log” innehåller kärnmeddelanden. Filnamn kan skilja sig åt mellan distributionspaket, så låt oss ta en titt på konfigurationsfilen för att få en uppfattning om vad som är var ”/etc/rsyslog.d/50-default.conf".
Dessa regler visar vilken fil som innehåller varje typ av loggmeddelanden. Den vänstra delen visar typen av meddelande i följande formulär "[Källa].[Prioritet]" och den högra delen visar namnet på loggfilen. När du skriver meddelandetypen "*"-tecken kan läggas till. Det betyder tomt värde eller "ingen” som tar bort det från listan. Låt oss titta närmare på de två första reglerna.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Den första regeln innebär att alla meddelanden som tas emot från auktoriseringsmekanismen kommer att registreras i "/var/log/auth.log"-fil. Alla auktoriseringsförsök (både framgångsrika och inte) kommer att registreras i denna fil. Den andra regeln anger att alla meddelanden utom de som är kopplade till auktorisering kommer att spelas in i "/ Var / log / syslog" fil. Dessa två filer är vanligtvis de mest populära. Följande regler definierar sökvägen för att lagra kärnloggar "kern.*" och posttjänstloggar "post.*"
Loggfiler kan öppnas med hjälp av vilken textredigerare som helst, som mindre, hur, svans. Låt oss öppna "/var/log/auth.log”-Fil
less /var/log/auth.log
Varje rad i filen är ett separat meddelande som tas emot från applikationen eller tjänsten. Alla meddelanden oavsett källa har ett format och består av 5 delar. Låt oss ta det markerade meddelandet i skärmdumpen som ett exempel.
- Meddelande tidsstämpel - "12 feb 06:18:33"
- Namnet på datorn som skickade meddelandet - "vds"
- Namn på applikationen eller tjänsten som skickade meddelandet - "sshd"
- Process-ID - [653]
- Meddelandetext - "Accepterat lösenord för mihail från 188.19.42.165 port 2849 ssh2"
Detta var ett exempel på en framgångsrik anslutning till SSH.
Och så här ser ett misslyckat inloggningsförsök ut:
Den här filen registrerar också kommandon med avancerade behörigheter
Låt oss öppna / Var / log / syslog fil
Ett markerat meddelande på skärmdumpen är meddelandet om avstängning av nätverksgränssnittet.
För att söka information genom långa textfiler använd grep nytta. Du kan hitta alla meddelanden som tas emot från pptpd service i "/ Var / log / syslog" fil.
grep 'pptpd' /var/log/syslog
Under diagnostiken kan du använda svans verktyg som kan visa flera sista rader med filer. Kommando "svans -f / var / log / syslog” låter dig titta på loggar som spelas in i realtid.
Tjänsten rsyslog är mycket flexibel och kraftfull. Den kan användas för att skörda stockar i lokala system såväl som på företagsnivå. Du kan hitta fullständig dokumentation på den officiella webbplatsen https://www.rsyslog.com/
Loggar rotation i Linux
Logginspelning sker kontinuerligt, så storleken på filerna växer hela tiden. Rotationsmekanism säkerställer automatisk arkivering av gamla loggar och skapandet av nya filer. Beroende på reglerna kan det ske dagligen, veckovis, månadsvis eller efter storleksgräns. När nya loggar skapas kan gamla bara raderas eller skickas via e-post. Loggrotation utförs av logrotate nytta. Du hittar huvudkonfigurationen i "/etc/logrotate.conf" fil. Filinnehåll bearbetas också i "/etc/logrotate.d/" mapp
Nya regler kan loggas in i huvudkonfigurationsfilen. Det är dock bäst att skapa en separat fil i "/etc/logrotate.d/Som standard finns det några filer i den här katalogen
Låt oss ta en titt på filen "/etc/logrotate.d/rsyslog" som innehåller rotationsregler för loggar av rsyslog tjänsten.
Först bör regeln innehålla sökvägen till loggfilen och sedan gå alla riktlinjer inom böjda parenteser.
- rotera 7 - antal filer att behålla - 7
- dagligen - skapa en ny fil varje dag
- komprimera - komprimera och arkivera gamla filer
Du kan se på skärmdumpen att i "/ var / log /" mapp där finns huvudloggen "syslog” och 7 arkiv, vilket motsvarar reglerna i inställningsfilen.
Du kan hitta en mer detaljerad beskrivning av logrotate i manualen, genom att utföra "man logrotera”Kommando
Samla Linux-loggar - journalförd
Service för timmerskörd systemd-journalad är en del av initieringssystemet SYSTEMD. Linux-loggfiler lagras i "/var/log/journal/” i ett speciellt format och kan öppnas med hjälp av journalctl nytta. Records format är exakt samma som i rsyslog.
Kommando journalctl utan attribut visar alla poster men det är inte lämpligt för större loggar. Låt oss ta en titt på några alternativ för detta verktyg.
journalctl -b- visa alla poster sedan senaste startjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- visa rekord inom en viss tidsperiodjournalctl -u pptpd- visa register över en viss tjänstjournalctl -k- visa kärnmeddelandenjournalctl -p err- visa meddelanden med en viss prioritet, meddelanden med högre prioritet i detta fall (crit, alert, emerg)journalctl -f- visa meddelanden i realtid
För bättre flexibilitet kan du kombinera dessa alternativ. Låt oss visa alla fel i pptpd service
journalctl -u pptpd -p err
Om du anger sökvägen till den körbara filen som ett attribut kommer verktyget att visa alla meddelanden som skickas av den här filen. Låt oss visa alla meddelanden som skickas av filen "/usr/bin/sudo” sedan 04:15 den 18 februari 2020. Faktum är att den visar alla kommandon som körs med högre behörigheter.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
För att ta reda på hur mycket diskutrymme loggfiler tar upp för att utföra följande kommando
journalctl --disk-usage
Utför följande kommando för att begränsa loggfilen till 1 Gb
journalctl --vacuum-size=1G
Öppna binära filer
Låt oss nu ta en titt på några speciella filer i "/ var / log /” mapp där alla inloggningsförsök lagras. Dessa filer är binära och kan endast öppnas med specialprogram.
/var/log/wtmp innehåller information om lyckade inloggningsförsök. Använd det senaste verktyget för att öppna det.
/var/log/btmp - innehåller alla misslyckade inloggningsförsök. Den kan öppnas med lastb med avancerade behörigheter. Attribut -n definierar antalet rader som visas från slutet av filen.
/var/log/lastlog - innehåller tidpunkten för den senaste inloggningsåtgärden för varje kontopost. Den kan öppnas med sista loggen