Når du støter på problemer med serverens ytelse, er det første du bør gjøre å sjekke Linux-loggene dine . I systemloggen finner du nyttige diagnostikkmeldinger fra forskjellige komponenter i operativsystemet, som kjernen eller diverse tjenester, så du finner mest sannsynlig årsaken til feilen der.
Hver melding i loggen genereres som et resultat av visse hendelser i operativsystemet: fra brukeren, autorisasjon til tjenesteavslutning eller applikasjonsfeil. Disse hendelsene har ulike prioriteter avhengig av hvor kritiske de er. Det er følgende typer hendelser i Linux:
emerg- fiasko, høyeste prioritet;alert- presserende advarsel;crit- kritisk hendelse;err- vanlig feil;warn- vanlig advarsel;notice- varsel;info- informasjonsmelding;debug- feilsøkingsinformasjon;
For øyeblikket er de viktigste logginnsamlingstjenestene i Linux rsyslog og systemd-journald . De følger med de fleste moderne distribusjonspakker og fungerer uavhengig.
rsyslog
Logger for denne tjenesten ligger i mappen « /var/log/ » i form av vanlige tekstfiler. Loggmeldinger legges i forskjellige filer avhengig av hendelsestypen. For eksempel inneholder « /var/log/auth.log » informasjon om brukernes autorisasjon i systemet, og « /var/log/kern.log » inneholder kjernemeldinger. Filnavn kan variere på tvers av distribusjonspakker, så la oss ta en titt på konfigurasjonsfilen for å få en idé om hvor « /etc/rsyslog.d/50-default.conf » er.
Disse reglene viser hvilken fil som inneholder hver type loggmeldinger. Den venstre delen viser meldingstypen i følgende format: « [Kilde].[Prioritet] », og den høyre delen viser navnet på loggfilen. Mens du skriver meldingstypen, kan tegnet « * » legges til. Det betyr en tom verdi eller « ingen » som fjerner den fra listen. La oss se nærmere på de to første reglene.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Den første regelen betyr at alle meldinger mottatt fra autorisasjonsmekanismen vil bli registrert i filen « /var/log/auth.log ». Alle autorisasjonsforsøk (både vellykkede og mislykkede) vil bli registrert i denne filen. Den andre regelen indikerer at alle meldinger unntatt de som er knyttet til autorisasjon, vil bli registrert i filen « /var/log/syslog ». Disse to filene er vanligvis de mest populære. Følgende regler definerer banen for å lagre kjernelogger « kern.* » og e-posttjenestelogger « mail.* » .
Loggfiler kan åpnes ved hjelp av et hvilket som helst tekstredigeringsprogram, som less , cat eller tail . La oss åpne filen « /var/log/auth.log » .
less /var/log/auth.log
Hver linje i filen er en egen melding mottatt fra applikasjonen eller tjenesten. Alle meldinger uavhengig av kilde har ett format og består av 5 deler. La oss ta den uthevede meldingen i skjermbildet som et eksempel.
- Meldingstidsstempel - "12. feb 06:18:33"
- Navnet på datamaskinen som sendte meldingen - "vds"
- Navn på applikasjonen eller tjenesten som sendte meldingen - "sshd"
- Prosess-ID - [653]
- Meldingstekst - "Godtatt passord for mihail fra 188.19.42.165 port 2849 ssh2"
Dette var et eksempel på en vellykket tilkobling til SSH.
Og slik ser et mislykket påloggingsforsøk ut:
Denne filen registrerer også kommandoer med avanserte tillatelser
La oss åpne /var/log/syslog -filen
En uthevet melding på skjermbildet er meldingen om nedleggelse av nettverksgrensesnittet.
For å søke etter informasjon gjennom lange tekstfiler, bruk grep- verktøyet. Du finner alle meldinger mottatt fra pptpd- tjenesten i filen « /var/log/syslog ».
grep 'pptpd' /var/log/syslog
Under diagnostikken kan du bruke verktøyet tail , som kan vise flere av de siste linjene med filer. Kommandoen « tail -f /var/log/syslog » lar deg se loggene som registreres i sanntid.
Tjenesten rsyslog er svært fleksibel og kraftig. Den kan brukes til å samle logger i lokale systemer så vel som på bedriftsnivå. Du finner fullstendig dokumentasjon på det offisielle nettstedet https://www.rsyslog.com/
Loggrotasjon i Linux
Loggregistrering skjer kontinuerlig, så størrelsen på filene øker stadig. Rotasjonsmekanismen sikrer automatisk arkivering av gamle logger og oppretting av nye filer. Avhengig av reglene kan dette skje daglig, ukentlig, månedlig eller med en størrelsesbegrensning. Etter hvert som nye logger opprettes, kan gamle slettes eller sendes via e-post. Loggrotasjon utføres av logrotate- verktøyet. Du finner hovedkonfigurasjonen i filen « /etc/logrotate.conf ». Filinnholdet behandles også i mappen « /etc/logrotate.d/ ».
Nye regler kan logges inn i hovedkonfigurasjonsfilen. Det er imidlertid best å opprette en egen fil i « /etc/logrotate.d/ ». Som standard er det noen få filer i denne katalogen.
La oss ta en titt på filen « /etc/logrotate.d/rsyslog » som inneholder rotasjonsregler for logger for rsyslog- tjenesten.
Først bør regelen inneholde banen til loggfilen og deretter gå alle retningslinjer i buede parenteser.
- roter 7 - antall filer å beholde - 7
- daglig - Lag en ny fil hver dag
- komprimere - komprimere og arkivere gamle filer
Du kan se på skjermbildet at i mappen « /var/log/ » ligger hovedloggen « syslog » og 7 arkiver, som samsvarer med reglene i konfigurasjonsfilen.
Du finner en mer detaljert beskrivelse av logrotate i manualen, ved å kjøre kommandoen « man logrotate ».
Samle Linux-logger - journalført
Logghøstingstjenesten systemd-journald er en del av initialiseringssystemet systemd . Linux-loggfiler lagres i « /var/log/journal/ » i et spesielt format og kan åpnes ved hjelp av journalctl- verktøyet. Postformatet er nøyaktig det samme som i rsyslog.
Kommandoen journalctl uten attributter viser alle poster, men den er ikke egnet for større logger. La oss ta en titt på noen alternativer i dette verktøyet.
journalctl -b- vis alle poster siden siste startjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- Vis rekord innen en viss tidsperiodejournalctl -u pptpd- vise registreringer av en bestemt tjenestejournalctl -k- Vis kjernemeldingerjournalctl -p err- vis meldinger med en viss prioritet, meldinger med høyere prioritet i dette tilfellet (crit, alert, emerg)journalctl -f- Vis meldinger i sanntid
For bedre fleksibilitet kan du kombinere disse alternativene. La oss vise alle feilene i pptpd- tjenesten.
journalctl -u pptpd -p err
Hvis du angir banen til den kjørbare filen som et attributt, vil verktøyet vise alle meldinger sendt av denne filen. La oss vise alle meldinger sendt av filen « /usr/bin/sudo » siden 04:15 den 18. februar 2020. Faktisk vil det vise alle kommandoer utført med høyere tillatelser.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
For å finne ut hvor mye diskplass loggfiler tar opp for å utføre følgende kommando
journalctl --disk-usage
For å begrense loggfilen til 1 Gb, utfør følgende kommando
journalctl --vacuum-size=1G
Åpne binære filer
La oss nå se på noen spesialfiler i mappen « /var/log/ » der alle innloggingsforsøk lagres. Disse filene er binære og kan bare åpnes med spesialprogrammer.
/var/log/wtmp inneholder informasjon om vellykkede innloggingsforsøk. Bruk siste verktøy for å åpne den.
/var/log/btmp - inneholder alle mislykkede innloggingsforsøk. Den kan åpnes med lastb med avanserte tillatelser. Attributtet -n definerer antall linjer som vises fra slutten av filen.
/var/log/lastlog - inneholder tidspunktet for siste innloggingshandling for hver kontooppføring. Den kan åpnes med lastlog