Sådan administreres Linux File Logs med Achieve

Linux -distributioner er ideelle til enhver form for virksomhedsmiljø takket være deres evne til at tilpasse sig nye funktioner og nye roller og bedst af alt gratis takket være åben kode.

Vi har tusindvis af applikationer eller hjælpeprogrammer designet til centraliseret kontrol over alle aspekter af systemet og på denne måde, som administratorer eller it -personale, med sikkerhed ved, når der opstår en fejl, og ved, hvordan det skal løses.

Inden for denne brede vifte af muligheder finder vi Logrotate, som er en fordel for distributionen og dens funktion er rotation og komprimering af logfilerne.

Denne opgave er vigtig, da pladsen på harddisken kan påvirkes, hvis der ikke foretages nogen handling på disse filer, hvilket kan føre til andre typer generelle fejl.

I dette tilfælde vil vi bruge Ubuntu 17.10, og Logrotate er installeret som standard og er allerede konfigureret til at styre logrotationsopgaverne for alle installerede pakker, inklusive rsyslog, standard systemlogprocessoren.

Dernæst vil vi se, hvordan du installerer og bruger dette værdifulde værktøj.

1. Identificer versionen af ​​Logrotate installeret Linux


Det første skridt at tage er at vide detaljeret, hvilken version af Logrotate vi har i, i dette tilfælde, Ubuntu 17.10. For at gøre dette udfører vi følgende kommando:
 logrotate -version
Resultatet bliver følgende:

FORSTØRRE

Hvis Logrotate ikke er installeret, får vi en fejl. Vi kan installere værktøjet ved hjælp af pakkehåndteringen af ​​den anvendte Linux -distribution.

Hvis Logrotate er installeret, men versionsnummeret er væsentligt anderledes, kan vi have problemer med nogle af værktøjets indstillinger. Vi kan se dokumentationen til den specifikke version af Logrotate direkte på dens man -side:

 mand logrotate
Vi kan se standardkonfigurationsstrukturen for Logrotate i Linux -distroen:

FORSTØRRE

2. Logrotate Linux -konfiguration


Logrotate -konfigurationsoplysninger kan generelt findes to steder i tilfælde af Ubuntu:

etc / logrotate.confDenne fil indeholder nogle standardindstillinger og angiver rotation for nogle logfiler, der ikke ejes af nogen systempakke. Det gør også brug af en include -erklæring for at hente indstillinger fra enhver fil i biblioteket /etc/logrotate.d.

/etc/logrotate.d/Dette bibliotek er, hvor enhver pakke, vi installerer og har brug for hjælp til logrotation, placerer sin Logrotate -konfiguration. I en standardinstallation skulle der allerede findes filer her til grundlæggende systemværktøjer, såsom apt, dpkg, rsyslog osv.

Som standard vil logrotate.conf konfigurere ugentlige logrotationer (ugentligt), med logfiler, der ejes af rodbrugeren og syslog -gruppen (su root syslog), med fire logfiler, der bevares (roter 4), og nye filer oprettes tomme optegnelser. oprettet efter at strømmen er roteret (opret).

Vi kan få adgang til Logrotate -konfigurationsfilen for en pakke i /etc/logrotate.d ved hjælp af katteværktøjet:

 kat /etc/logrotate.d/apt

FORSTØRRE

Denne fil indeholder konfigurationsblokke til to forskellige logfiler i / var / log / apt / biblioteket: term.log og history.log. De har begge de samme muligheder.

Enhver mulighed, der ikke er angivet i disse konfigurationsblokke, arver standardværdierne eller dem, der er angivet i /etc/logrotate.conf. De muligheder, der er konfigureret til apt -logfiler, er:

dreje 12Bevarer tolv gamle logfiler.

MånedligeRoter en gang om måneden.

KomprimereDet sørger for at komprimere de roterede filer. Dette bruger gzip som standard og resulterer i filer, der ender i .gz -udvidelsen. Komprimeringskommandoen kan ændres ved hjælp af indstillingen compresscmd.

missingokDet skriver ikke en fejlmeddelelse, hvis logfilen mangler.

notifemptyDet roterer ikke logfilen, hvis den er tom.

Der er mange flere konfigurationsmuligheder tilgængelige.

3. Konfigurer en Linux Logrotate -service, og tilføj konfiguration til /etc/logrotate.d/


Dernæst konfigurerer vi en konfigurationsfil til at håndtere logfiler for en tjeneste, som vi vil oprette.

For at administrere logfilerne til applikationer uden for de færdigpakkede og forudkonfigurerede systemtjenester har vi to muligheder:

  • Opret en ny Logrotate -konfigurationsfil, og placer den i stien /etc/logrotate.d/. Dette kører dagligt som rodbruger sammen med alle andre standard Logrotate -job.
  • Opret en ny konfigurationsfil, og kør den uden for Ubuntu's standard Logrotate -konfiguration. Dette er kun nødvendigt, hvis vi skal køre Logrotate som en ikke-root-bruger, eller hvis du vil rotere logfiler oftere end dagligt (en timeindstilling i /etc/logrotate.d/ ville ikke være effektiv, fordi systemets Logrotate-indstilling kører kun en gang om dagen).

I dette tilfælde vil vi konfigurere logrotation for en webserver, der placerer en access.log og error.log i stien / var / log / solvetic-app /. Det vil køre som www-data bruger og gruppe.

For at tilføje en vis konfiguration til /etc/logrotate.d/ skal vi først åbne en ny fil som følger:

 sudo nano /etc/logrotate.d/solvetic-app
der tilføjer vi 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 gemme ændringerne ved hjælp af tastekombinationen Ctrl + O, og vi forlader editoren med Ctrl + X.

Nogle af de nye konfigurationsdirektiver i denne fil er:

opret 0640 www-data www-dataDenne parameter opretter en ny tom logfil efter rotation med de angivne tilladelser (0640), ejer (www-data) og gruppe (også www-data).

delte skrifterDette flag angiver, at scripts, der tilføjes til konfigurationen, kun kører én gang pr. Kørsel i stedet for for hver roterede fil.

postrotate til slutskriftDenne blok indeholder et script, der skal køres, efter at logfilen er roteret. I dette tilfælde kan vi genindlæse vores solvetic-app. Dette er undertiden nødvendigt for at programmet kan skifte til den nyoprettede logfil.

Vi skal tage højde for postrotate henrettelser, før logfiler kontrolleres. Komprimering kan tage lang tid, og softwaren bør straks skifte til den nye logfil. Til opgaver, der skal køres efter registreringerne er komprimeret, skal du bruge blokken sidste handling i stedet.

Efter at have tilpasset den konfiguration, der passer bedst til vores behov, og de er blevet gemt i /etc/logrotate.d, kan vi kontrollere det ved at udføre følgende linje.

 sudo logrotate /etc/logrotate.conf -debug
Dette kalder logrotate, peger på standardkonfigurationsfilen og aktiverer fejlretningstilstand:

FORSTØRRE

Oplysninger om, hvilke logfiler Logrotate håndterer, og hvad der udføres på dem, udskrives. Hvis alt ser godt ud, er vi færdige. Standard Logrotate -jobbet kører en gang om dagen og inkluderer dine nye indstillinger.

4. Sådan opretter du en selvstændig logningskonfiguration Lograte Linux


Først opretter vi en konfigurationsfil i vores hjemmemappe. Vi kan åbne det med en teksteditor:
 sudo nano /home/solvetic/logrotate.conf
I den nye fil vil vi indsætte følgende:
 /home/solvetic/logs/*.log {hourly missingok rotate 24 compress create}

FORSTØRRE

Vi kan gemme ændringerne og afslutte filen.

Denne indstilling roterer filer hver time, komprimerer og bevarer 24 gamle poster og opretter en ny logfil til erstatning af den roterede fil. For at teste, at det fungerer korrekt, kan vi oprette en logfil ved at udføre følgende linjer:

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

FORSTØRRE

Nu hvor vi har en tom logfil på det rigtige sted, kører vi logrotate -kommandoen.
Vi vil udføre følgende:

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

FORSTØRRE

Parameteren --verbose udskriver detaljerede oplysninger om, hvad vi kører med Logrotate. I dette tilfælde vil vi se, at intet roterede. Det er første gang Logrotate har set denne logfil, og som vi ved, er filen nul timer gammel og bør ikke roteres.

Hvis vi ser på statusfilen, vil vi se, at Logrotate registrerede visse oplysninger om den udførelse, vi udførte:

 kat / hjem / solvetisk / logrotat-tilstand
Vi vil se følgende:

FORSTØRRE

Logrotate noterede de poster, det analyserede, og hvornår det sidst betragtede dem til rotation. Hvis vi kører den samme kommando en time senere, roteres posten efter hensigten. Hvis du vil tvinge Logrotate til at rotere logfilen, når det ellers ikke burde, kan vi bruge --force -flag:

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

5. Oprettelse af en planlagt opgave på Achieve Linux


Endelig skal vi konfigurere et cron -job til at køre Logrotate hver time. For at gøre dette åbner vi vores brugers crontab ved at udføre følgende:
 crontab -e
I den åbne fil tilføjer vi følgende linje:
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state

FORSTØRRE

Denne opgave kører i det 14. minut i hver time, hver dag. Det fungerer grundlæggende med den samme logrotate -kommando, som vi kørte tidligere, selvom vi udvidede logrotate til hele stien til / usr / sbin / logrotate. Vi kan gemme filen ved hjælp af tastekombinationen Ctrl + O og afslutte den med Ctrl + X.

Således har vi set, hvordan Logrotate er et simpelt, men effektivt værktøj, når det kommer til at styre og kontrollere poster i enhver Linux -distribution.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave