Så här hanterar du Linux -filloggar med Achieve

Linuxdistributioner är idealiska för alla typer av företagsmiljöer tack vare deras förmåga att anpassa sig till nya funktioner och nya roller och, bäst av allt, gratis tack vare öppen kod.

Vi har tusentals applikationer eller verktyg för centraliserad kontroll över alla aspekter av systemet och på detta sätt, som administratörer eller IT -personal, med säkerhet vet när ett fel inträffar och vet hur man löser det.

Inom detta stora utbud av möjligheter hittar vi Logrotate, som är ett verktyg för distributionen och dess funktion är rotation och komprimering av loggfilerna.

Denna uppgif.webpt är viktig eftersom utrymmet på hårddisken kan påverkas genom att inte vidta några åtgärder på dessa filer, vilket kan leda till andra typer av allmänna fel.

I det här fallet kommer vi att använda Ubuntu 17.10 och Logrotate är installerat som standard och är redan konfigurerat för att hantera logrotationsuppgif.webpterna för alla installerade paket, inklusive rsyslog, standardsystemloggprocessorn.

Därefter kommer vi att se hur du installerar och använder detta värdefulla verktyg.

1. Identifiera versionen av Logrotate installerat Linux


Det första steget att ta är att i detalj veta vilken version av Logrotate vi har i, i det här fallet, Ubuntu 17.10. För att göra detta kör vi följande kommando:
 logrotate -version
Resultatet blir följande:

FÖRSTORA

Om Logrotate inte är installerat får vi ett felmeddelande. Vi kan installera verktyget med pakethanteraren för Linux -distributionen som används.

Om Logrotate är installerat men versionsnumret är väsentligt annorlunda kan vi ha problem med några av verktygets inställningar. Vi kan konsultera dokumentationen för den specifika versionen av Logrotate direkt på dess man -sida:

 man logrotate
Vi kan se standardkonfigurationsstrukturen för Logrotate i Linux -distro:

FÖRSTORA

2. Logrotate Linux -konfiguration


Logrotate -konfigurationsinformation kan i allmänhet hittas på två ställen för Ubuntu:

etc / logrotate.confDen här filen innehåller några standardinställningar och ställer in rotationen för vissa loggar som inte ägs av något systempaket. Den använder också en include -sats för att hämta inställningar från alla filer i katalogen /etc/logrotate.d.

/etc/logrotate.d/Den här katalogen är där alla paket vi installerar och behöver hjälp med logrotation kommer att placera sin Logrotate -konfiguration. I en standardinstallation bör det redan finnas filer här för grundläggande systemverktyg, till exempel apt, dpkg, rsyslog, etc.

Som standard kommer logrotate.conf att konfigurera veckologgrotationer (varje vecka), med loggfiler som ägs av rotanvändaren och sysloggruppen (su root syslog), med fyra loggfiler som sparas (rotera 4) och nya filer skapas tomma uppgif.webpter. skapas efter att strömmen har roterats (skapa).

Vi kan komma åt logrotates konfigurationsfil för ett paket i /etc/logrotate.d med hjälp av kattverktyget:

 katt /etc/logrotate.d/apt

FÖRSTORA

Den här filen innehåller konfigurationsblock för två olika loggfiler i / var / log / apt / katalogen: term.log och history.log. De har båda samma alternativ.

Alla alternativ som inte anges i dessa konfigurationsblock kommer att ärva standardvärdena eller de som anges i /etc/logrotate.conf. Alternativen som är konfigurerade för apt -loggar är:

rotera 12Bevarar tolv gamla loggfiler.

En gång i månadenRotera en gång i månaden.

KomprimeraDet tar hand om att komprimera de roterade filerna. Detta använder gzip som standard och resulterar i filer som slutar med .gz -tillägget. Komprimeringskommandot kan ändras med alternativet compresscmd.

missingokDet skriver inte ett felmeddelande om loggfilen saknas.

notifemptyDet roterar inte loggfilen om den är tom.

Det finns många fler konfigurationsalternativ tillgängliga.

3. Konfigurera en Linux Logrotate -tjänst och lägg till konfiguration i /etc/logrotate.d/


Därefter kommer vi att konfigurera en konfigurationsfil för att hantera loggarna för en tjänst som vi kommer att skapa.

För att hantera loggfiler för applikationer utanför de förpackade och förkonfigurerade systemtjänsterna har vi två alternativ:

  • Skapa en ny konfigurationsfil för Logrotate och placera den i sökvägen /etc/logrotate.d/. Detta körs dagligen som rotanvändare tillsammans med alla andra vanliga Logrotate -jobb.
  • Skapa en ny konfigurationsfil och kör den utanför Ubuntu standard Logrotate -konfiguration. Detta är bara nödvändigt om vi behöver köra Logrotate som en icke-rotanvändare, eller om du vill rotera loggar oftare än dagligen (en timinställning i /etc/logrotate.d/ skulle inte vara effektiv, eftersom systemets Logrotate-inställning körs bara en gång om dagen).

I det här fallet vill vi konfigurera loggrotation för en webbserver som sätter en access.log och error.log i sökvägen / var / log / solvetic-app /. Den körs som www-data användare och grupp.

För att lägga till någon konfiguration till /etc/logrotate.d/ måste vi först öppna en ny fil enligt följande:

 sudo nano /etc/logrotate.d/solvetic-app
där kommer vi att lägga till följande rader:
 /var/log/solvetic-app/*.log {daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate systemctl reload solvetic-app endscript}

FÖRSTORA

Vi kan spara ändringarna med tangentkombinationen Ctrl + O och vi lämnar redigeraren med Ctrl + X.

Några av de nya konfigurationsdirektiven i den här filen är:

skapa 0640 www-data www-dataDenna parameter skapar en ny tom loggfil efter rotation med de angivna behörigheterna (0640), ägaren (www-data) och gruppen (även www-data).

delade skriptDenna flagga indikerar att skript som läggs till i konfigurationen bara körs en gång per körning, snarare än för varje roterad fil.

postrotera till slutskriftDetta block innehåller ett skript som ska köras efter att loggfilen har roterats. I det här fallet kan vi ladda om vår solvetic-app. Detta är ibland nödvändigt för att programmet ska byta till den nyskapade loggfilen.

Vi måste ta hänsyn till postrotate -utföranden innan loggar kontrolleras. Komprimering kan ta lång tid och programvaran bör byta till den nya loggfilen omedelbart. För uppgif.webpter som måste köras efter att posterna har komprimerats använder du blocket lastaction istället.

Efter att ha anpassat den konfiguration som bäst passar våra behov och de har sparats i /etc/logrotate.d kan vi kontrollera det genom att köra följande rad.

 sudo logrotate /etc/logrotate.conf -debug
Detta kallar logrotate, pekar på standardkonfigurationsfilen och aktiverar felsökningsläge:

FÖRSTORA

Information om vilka loggfiler Logrotate hanterar och vad som körs på dem kommer att skrivas ut. Om allt ser bra ut är vi klara. Det vanliga Logrotate -jobbet körs en gång om dagen och innehåller dina nya inställningar.

4. Hur man skapar en fristående loggningskonfigurationslograt Linux


Först skapar vi en konfigurationsfil i vår hemkatalog. Vi kan öppna den med en textredigerare:
 sudo nano /home/solvetic/logrotate.conf
I den nya filen klistrar vi in ​​följande:
 /home/solvetic/logs/*.log {timme missingok rotate 24 compress create}

FÖRSTORA

Vi kan spara ändringarna och avsluta filen.

Denna inställning roterar filer varje timme, komprimerar och bevarar tjugofyra gamla poster och skapar en ny loggfil för att ersätta den roterade filen. För att testa att det fungerar korrekt kan vi skapa en loggfil genom att köra följande rader:

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

FÖRSTORA

Nu när vi har en tom loggfil på rätt plats kör vi kommandot logrotate.
Vi kommer att utföra följande:

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

FÖRSTORA

Parametern --verbose kommer att skriva ut detaljerad information om vad vi kör med Logrotate. I det här fallet kommer vi att se att ingenting roterar. Detta är första gången Logrotate har sett denna loggfil, och som vi vet är filen noll timmar gammal och ska inte roteras.

Om vi ​​tittar på statusfilen kommer vi att se att Logrotate registrerade viss information om utförandet vi utförde:

 katt / hem / solvetic / logrotate-state
Vi kommer att se följande:

FÖRSTORA

Logrotate noterade de poster som den analyserade och när den senast övervägde dem för rotation. Om vi ​​kör samma kommando en timme senare kommer posten att roteras som avsett. Om du vill tvinga Logrotate att rotera loggfilen när det inte skulle annars, kan vi använda --force -flaggan:

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

5. Skapa en schemalagd uppgif.webpt på Achieve Linux


Slutligen måste vi konfigurera ett cron -jobb för att köra Logrotate varje timme. För att göra detta öppnar vi vår användares crontab genom att köra följande:
 crontab -e
I den öppna filen kommer vi att lägga till följande rad:
 14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state

FÖRSTORA

Denna uppgif.webpt kommer att köras i den 14: e minuten varje timme, varje dag. Det fungerar i princip med samma logrotate -kommando som vi körde tidigare, även om vi utökade logrotate till hela sökvägen för / usr / sbin / logrotate. Vi kan spara filen med tangentkombinationen Ctrl + O och avsluta den med Ctrl + X.

Således har vi sett hur Logrotate är ett enkelt men effektivt verktyg när det gäller att hantera och kontrollera poster i alla Linux -distributioner.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave