Når du står over for problemer med din servers ydeevne, er det første du vil gøre at tjek dine Linux-logfiler. I systemloggen kan du finde nogle nyttige diagnosemeddelelser fra forskellige komponenter i operativsystemet som kernen eller forskellige tjenester, så du vil højst sandsynligt finde fejlårsagen der.
Hver meddelelse i loggen genereres som et resultat af visse hændelser i operativsystemet: fra brugeren, autorisation til servicenedlukning eller applikationsfejl. Disse begivenheder har forskellige prioriteter afhængigt af, hvor kritiske de er. Der er følgende typer begivenheder i Linux:
emerg- fiasko, højeste prioritet;alert- presserende advarsel;crit- kritisk begivenhed;err- almindelig fejl;warn- almindelig advarsel;notice- meddelelse;info- informationsmeddelelse;debug- debugging information;
I øjeblikket er de vigtigste logindsamlingstjenester i Linux rsyslog og systemd-journaliseret. De passer til de fleste af de moderne distributionspakker og arbejder selvstændigt.
rsyslog
Logfiler for denne tjeneste er placeret i "/ var / log /" mappe i form af almindelige tekstfiler. Logbeskeder lægges i forskellige filer afhængigt af typen af begivenhed. For eksempel "/var/log/auth.log" indeholder oplysninger om brugernes autorisation i systemet, og "/var/log/kern.log" indeholder kernemeddelelser. Filnavne kan variere på tværs af distributionspakker, så lad os tage et kig på konfigurationsfilen for at få en idé om, hvad der er hvor "/etc/rsyslog.d/50-default.conf".
Disse regler viser, hvilken fil der indeholder hver type logmeddelelser. Den venstre del viser meddelelsestypen i følgende form "[Kilde].[Prioritet]" og den højre del viser navnet på logfilen. Mens du skriver meddelelsestypen "*"-tegn kan tilføjes. Det betyder tom værdi eller "ingen”, der fjerner det fra listen. Lad os se nærmere på de to første regler.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Den første regel betyder, at alle meddelelser modtaget fra autorisationsmekanismen vil blive optaget i "/var/log/auth.log" fil. Alle autorisationsforsøg (både vellykkede og ikke) vil blive registreret i denne fil. Den anden regel angiver, at alle meddelelser undtagen dem, der er forbundet med autorisation, vil blive optaget i "/ Var / log / syslog" fil. Disse to filer er normalt de mest populære. Følgende regler definerer stien til lagring af kernelogfiler "kern.*" og mail service logs "post.*"
Logfiler kan åbnes ved hjælp af enhver teksteditor, f.eks mindre, hvordan, hale. Lad os åbne "/var/log/auth.log" fil
less /var/log/auth.log
Hver linje i filen er en separat besked modtaget fra applikationen eller tjenesten. Alle beskeder uanset deres kilde har ét format og består af 5 dele. Lad os tage den fremhævede besked på skærmbilledet som et eksempel.
- Besked tidsstempel - "12. feb 06:18:33"
- Navnet på den computer, der sendte beskeden - "vds"
- Navn på applikationen eller tjenesten, der sendte beskeden - "sshd"
- Proces-id - [653]
- Meddelelsestekst - "Accepteret adgangskode til mihail fra 188.19.42.165 port 2849 ssh2"
Dette var et eksempel på en vellykket forbindelse til SSH.
Og sådan ser et mislykket loginforsøg ud:
Denne fil optager også kommandoer med avancerede tilladelser
Lad os åbne / Var / log / syslog fil
En fremhævet besked på skærmbilledet er beskeden om nedlukning af netværksgrænsefladen.
Brug til at søge efter information gennem lange tekstfiler grep nytte. Du kan finde alle beskeder modtaget fra pptpd service i "/ Var / log / syslog" fil.
grep 'pptpd' /var/log/syslog
Under diagnosticeringen kan du bruge hale værktøj, der kan vise flere sidste linjer med filer. Kommando "hale -f / var / log / syslog” vil lade dig se logs optagelse i realtid.
Tjenesten rsyslog er meget fleksibel og kraftfuld. Det kan bruges til at høste logs i lokale systemer såvel som på virksomhedsniveau. Du kan finde fuld dokumentation på den officielle hjemmeside https://www.rsyslog.com/
Log rotation i Linux
Logregistrering sker kontinuerligt, så størrelsen på filerne vokser konstant. Rotationsmekanisme sikrer automatisk arkivering af gamle logfiler og oprettelse af nye filer. Afhængigt af reglerne kan det ske dagligt, ugentligt, månedligt eller efter størrelsesgrænse. Efterhånden som nye logfiler oprettes, kan gamle blot slettes eller sendes via e-mail. Logs rotation udføres af logrotate nytte. Du kan finde hovedkonfigurationen i "/etc/logrotate.conf" fil. Filernes indhold behandles også i "/etc/logrotate.d/”-Mappe
Nye regler kan logges ind i hovedkonfigurationsfilen. Det er dog bedst at oprette en separat fil i "/etc/logrotate.d/Som standard er der nogle få filer i denne mappe
Lad os tage et kig på filen "/etc/logrotate.d/rsyslog", der indeholder rotationsregler for logfiler af rsyslog service.
Først skal reglen indeholde stien til logfilen og derefter gå alle retningslinjer i buede parenteser.
- drej 7 - antal filer at beholde - 7
- dagligt - Opret en ny fil hver dag
- komprimere - komprimere og arkivere gamle filer
Du kan se på skærmbilledet, at i "/ var / log /" mappe er der hovedloggen "syslog” og 7 arkiver, hvilket svarer til reglerne i konfigurationsfilen.
Du kan finde en mere detaljeret beskrivelse af logrotate i manualen ved at udføre "mand logrotere” kommando
Indsamling af Linux-logfiler - journalført
Tjenester til høst af træstammer systemd-journaliseret er en del af initialiseringssystemet systemd. Linux-logfiler gemmes i "/var/log/journal/” i et særligt format og kan åbnes ved hjælp af journalctl nytte. Records format er nøjagtigt det samme som i rsyslog.
Kommando journalctl uden attributter viser alle poster, men det er ikke egnet til større logfiler. Lad os tage et kig på nogle af mulighederne for dette værktøj.
journalctl -b- vis alle poster siden sidste startjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- vis rekord inden for et bestemt tidsrumjournalctl -u pptpd- vise registreringer af en bestemt tjenestejournalctl -k- Vis kernebeskederjournalctl -p err- vis meddelelser med en bestemt prioritet, meddelelser med højere prioritet i dette tilfælde (crit, alert, emerg)journalctl -f- Vis beskeder i realtid
For bedre fleksibilitet kan du kombinere disse muligheder. Lad os vise alle fejl i pptpd service
journalctl -u pptpd -p err
Hvis du angiver stien til den eksekverbare fil som en attribut, vil hjælpeprogrammet vise alle meddelelser sendt af denne fil. Lad os vise alle beskeder sendt af filen "/usr/bin/sudo” siden 04:15 den 18. februar 2020. Faktisk vil den vise alle kommandoer udført med højere tilladelser.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
For at finde ud af, hvor meget diskplads logfiler optager for at udføre følgende kommando
journalctl --disk-usage
For at begrænse logfilen til 1 Gb skal du udføre følgende kommando
journalctl --vacuum-size=1G
Åbning af binære filer
Lad os nu tage et kig på nogle specielle filer i "/ var / log /” mappe, hvor alle login-forsøg er gemt Disse filer er binære og kan kun åbnes med specielle programmer.
/var/log/wtmp indeholder oplysninger om vellykkede loginforsøg. Brug det sidste værktøj til at åbne det.
/var/log/btmp - indeholder alle mislykkede loginforsøg. Den kan åbnes med lastb med avancerede tilladelser. Attribut -n definerer antallet af linjer, der vises fra slutningen af filen.
/var/log/lastlog - indeholder tidspunktet for den sidste login-handling for hver kontopost. Den kan åbnes med sidste log