Hvordan administrere Linux -fillogger med Achieve

Linux -distribusjoner er ideelle for alle typer bedriftsmiljø takket være deres evne til å tilpasse seg nye funksjoner og nye roller og, best av alt, gratis takket være åpen kode.

Vi har tusenvis av applikasjoner eller verktøy designet for sentralisert kontroll over alle aspekter av systemet, og på denne måten, som administratorer eller IT -personell, vet med sikkerhet når det oppstår en feil og vet hvordan de skal løse det.

Innenfor dette brede spekteret av muligheter finner vi Logrotate, som er et verktøy for fordelingen og dens funksjon er rotasjon og komprimering av loggfilene.

Denne oppgaven er viktig siden plassen på harddisken kan påvirkes ved å ikke gjøre noe med disse filene, noe som kan føre til andre typer generelle feil.

I dette tilfellet vil vi bruke Ubuntu 17.10 og Logrotate er installert som standard og er allerede konfigurert for å administrere loggerotasjonsoppgavene for alle installerte pakker, inkludert rsyslog, standard systemloggprosessor.

Deretter vil vi se hvordan du installerer og bruker dette verdifulle verktøyet.

1. Identifiser versjonen av Logrotate installert Linux


Det første trinnet å ta er å vite i detalj hvilken versjon av Logrotate vi har i, i dette tilfellet, Ubuntu 17.10. For å gjøre dette utfører vi følgende kommando:
 logrotate -versjon
Resultatet blir følgende:

FORSTØRRE

Hvis Logrotate ikke er installert, får vi en feilmelding. Vi kan installere verktøyet ved å bruke pakkelederen for Linux -distribusjonen som brukes.

Hvis Logrotate er installert, men versjonsnummeret er vesentlig forskjellig, kan vi ha problemer med noen av verktøyets innstillinger. Vi kan konsultere dokumentasjonen for den spesifikke versjonen av Logrotate direkte på man -siden:

 mann logrotate
Vi kan se standardkonfigurasjonsstrukturen til Logrotate i Linux -distroen:

FORSTØRRE

2. Logrotate Linux -konfigurasjon


Logrotate -konfigurasjonsinformasjon kan vanligvis finnes på to steder for Ubuntu:

etc / logrotate.confDenne filen inneholder noen standardinnstillinger og angir rotasjonen for noen logger som ikke eies av noen systempakke. Den bruker også en include -setning for å hente innstillinger fra en fil i katalogen /etc/logrotate.d.

/etc/logrotate.d/Denne katalogen er der enhver pakke vi installerer og trenger hjelp med loggrotasjon, plasserer sin Logrotate -konfigurasjon. I en standardinstallasjon bør det allerede eksistere filer her for grunnleggende systemverktøy, for eksempel apt, dpkg, rsyslog, etc.

Som standard vil logrotate.conf konfigurere ukentlige loggrotasjoner (ukentlig), med loggfiler som eies av rotbrukeren og syslog -gruppen (su root syslog), med fire loggfiler som beholdes (roter 4) og nye filer opprettes tomme poster. opprettet etter at strømmen er rotert (opprett).

Vi kan få tilgang til Logrotate -konfigurasjonsfilen til en pakke i /etc/logrotate.d ved hjelp av katteverktøyet:

 cat /etc/logrotate.d/apt

FORSTØRRE

Denne filen inneholder konfigurasjonsblokker for to forskjellige loggfiler i / var / log / apt / katalogen: term.log og history.log. De har begge de samme alternativene.

Alle alternativer som ikke er angitt i disse konfigurasjonsblokkene, arver standardverdiene eller de som er angitt i /etc/logrotate.conf. Alternativene som er konfigurert for apt -logger er:

rotere 12Bevarer tolv gamle loggfiler.

MånedligRoter en gang i måneden.

KomprimereDet tar seg av å komprimere de roterte filene. Dette bruker gzip som standard og resulterer i filer som ender i .gz -utvidelsen. Komprimeringskommandoen kan endres med alternativet compresscmd.

missingokDen skriver ikke en feilmelding hvis loggfilen mangler.

notifemptyDen roterer ikke loggfilen hvis den er tom.

Det er mange flere konfigurasjonsalternativer tilgjengelig.

3. Konfigurer en Linux Logrotate -tjeneste og legg til konfigurasjon i /etc/logrotate.d/


Deretter vil vi konfigurere en konfigurasjonsfil for å håndtere loggene til en tjeneste som vi vil opprette.

For å administrere loggfilene for applikasjoner utenfor de ferdigpakkede og forhåndskonfigurerte systemtjenestene, har vi to alternativer:

  • Opprett en ny Logrotate -konfigurasjonsfil og plasser den i banen /etc/logrotate.d/. Dette vil kjøres daglig som rotbruker sammen med alle andre standard Logrotate -jobber.
  • Lag en ny konfigurasjonsfil og kjør den utenfor Ubuntu standard Logrotate -konfigurasjon. Dette er bare nødvendig hvis vi trenger å kjøre Logrotate som en ikke-rotbruker, eller hvis du vil rotere logger oftere enn daglig (en timeinnstilling i /etc/logrotate.d/ ville ikke være effektiv, fordi systemets Logrotate-innstilling kjøres bare en gang om dagen).

I dette tilfellet vil vi konfigurere loggerotasjon for en webserver som setter en access.log og error.log i banen / var / log / solvetic-app /. Den vil kjøre som brukeren og gruppen www-data.

For å legge til en konfigurasjon i /etc/logrotate.d/, må vi først åpne en ny fil som følger:

 sudo nano /etc/logrotate.d/solvetic-app
der vil vi legge til følgende linjer:
 /var/log/solvetic-app/*.log {daglig missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate systemctl reload solvetic-app endscript}

FORSTØRRE

Vi kan lagre endringene ved hjelp av tastekombinasjonen Ctrl + O, og vi avslutter editoren med Ctrl + X.

Noen av de nye konfigurasjonsdirektivene i denne filen er:

opprett 0640 www-data www-dataDenne parameteren oppretter en ny tom loggfil etter rotasjon, med de angitte tillatelsene (0640), eier (www-data) og gruppe (også www-data).

delte skrifterDette flagget indikerer at skript som er lagt til i konfigurasjonen bare kjøres én gang per kjøring, i stedet for for hver roterte fil.

postrotate til sluttskriftDenne blokken inneholder et skript som skal kjøres etter at loggfilen er rotert. I dette tilfellet kan vi laste inn vår solvetic-app på nytt. Dette er noen ganger nødvendig for at programmet skal bytte til den nyopprettede loggfilen.

Vi må redegjøre for henrettelser etter rotasjonen før logger kontrolleres. Komprimering kan ta lang tid, og programvaren bør bytte til den nye loggfilen umiddelbart. For oppgaver som må kjøres etter at postene er komprimert, bruker du siste handling -blokken i stedet.

Etter å ha tilpasset konfigurasjonen som passer best for våre behov, og de er lagret i /etc/logrotate.d, kan vi kontrollere den ved å utføre følgende linje.

 sudo logrotate /etc/logrotate.conf -debug
Dette kaller logrotate, peker til standard konfigurasjonsfil og aktiverer feilsøkingsmodus:

FORSTØRRE

Informasjon om hvilke loggfiler Logrotate håndterer og hva som kjøres på dem vil bli skrevet ut. Hvis alt ser bra ut, er vi ferdige. Standard Logrotate -jobb kjøres en gang om dagen og inkluderer de nye innstillingene.

4. Hvordan lage en frittstående loggkonfigurasjon Lograte Linux


Først oppretter vi en konfigurasjonsfil i hjemmekatalogen vår. Vi kan åpne den med et tekstredigeringsprogram:
 sudo nano /home/solvetic/logrotate.conf
I den nye filen vil vi lime inn følgende:
 /home/solvetic/logs/*.log {hourly missingok rotate 24 compress create}

FORSTØRRE

Vi kan lagre endringene og avslutte filen.

Denne innstillingen vil rotere filer hver time, komprimere og bevare tjuefire gamle poster og opprette en ny loggfil som skal erstatte den roterte filen. For å teste at den fungerer riktig, kan vi lage en loggfil ved å kjøre følgende linjer:

 cd ~ sudo mkdir logger sudo touch logger / access.log

FORSTØRRE

Nå som vi har en tom loggfil på riktig sted, kjører vi logrotate -kommandoen.
Vi vil utføre følgende:

 logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate -state -verbose

FORSTØRRE

Parameteren --verbose vil skrive ut detaljert informasjon om hva vi kjører med Logrotate. I dette tilfellet vil vi se at ingenting roterte. Dette er første gang Logrotate har sett denne loggfilen, og som vi vet er filen null timer gammel og bør ikke roteres.

Hvis vi ser på statusfilen, vil vi se at Logrotate registrerte viss informasjon om utførelsen vi utførte:

 cat / home / solvetic / logrotate-state
Vi vil se følgende:

FORSTØRRE

Logrotate noterte postene den analyserte og når den sist vurderte dem for rotasjon. Hvis vi kjører den samme kommandoen en time senere, vil posten roteres etter hensikten. Hvis du vil tvinge Logrotate til å rotere loggfilen når den ikke burde det ellers, kan vi bruke --force -flagget:

 sudo logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate -state --verbose -force

5. Opprette en planlagt oppgave på Achieve Linux


Til slutt må vi konfigurere en cron -jobb for å kjøre Logrotate hver time. For å gjøre dette åpner vi brukerens crontab ved å utføre følgende:
 crontab -e
I den åpne filen vil vi legge til følgende linje:
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state

FORSTØRRE

Denne oppgaven vil kjøres i det 14. minutt i hver time, hver dag. Det fungerer i utgangspunktet med den samme logrotate -kommandoen som vi kjørte tidligere, selv om vi utvidet logrotate til hele banen til / usr / sbin / logrotate. Vi kan lagre filen ved hjelp av tastekombinasjonen Ctrl + O og avslutte den med Ctrl + X.

Dermed har vi sett hvordan Logrotate er et enkelt, men effektivt verktøy når det gjelder å administrere og kontrollere poster i enhver Linux -distribusjon.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave