Logi pööramise seadistamine ja haldamine Linuxis Logrotate abil

instagram story viewer

Üks huvitavamaid (ja võib -olla ka üks olulisemaid) katalooge Linuxi süsteemis on /var/log. Vastavalt Failisüsteemi hierarhia standard, enamiku süsteemis töötavate teenuste tegevus on kirjutatud faili selles kataloogis või mõnes selle alamkataloogis.

Selliseid faile nimetatakse palke ja on võtmeks süsteemi toimimise uurimisel (ja kuidas see on varem käitunud). Logid on ka esimene teabeallikas, kuhu administraatorid ja insenerid veaotsingu ajal vaatavad.

Kui me vaatame selle sisu /var/log peal CentOS/RHEL/Fedora ja Debian/Ubuntu (mitmekesisuse huvides) näeme järgmisi logifaile ja alamkatalooge.

Pange tähele, et tulemus võib teie puhul mõnevõrra erineda sõltuvalt teie süsteemis töötavatest teenustest ja nende töötamise ajast.

RHEL/CentOS ja Fedora

# ls /var /log. 
Logige failid ja kataloogid alla CentOS 7
Logige failid ja kataloogid alla CentOS 7

Debianis ja Ubuntus

# ls /var /log. 
Logige failid ja kataloogid sisse Debianis 8
Logige failid ja kataloogid sisse Debianis 8

Mõlemal juhul võime täheldada, et mõned loginimed lõpevad ootuspäraselt aastal "Logi", samas kui teised nimetatakse kuupäeva abil ümber (nt maillog-20160822 peal CentOS) või kokkusurutud (kaaluge auth.log.2.gz ja mysql.log.1.gz peal Debian).

See ei ole vaikimisi käitumine valitud jaotuse põhjal kuid seda saab soovi korral muuta, kasutades konfiguratsioonifailides olevaid direktiive, nagu näeme selles artiklis.

Kui logisid säilitataks igavesti, täidaksid need lõpuks failisüsteemi, kuhu /var/log elab. Selle vältimiseks saab süsteemiadministraator kasutada toredat utiliiti nimega pöörlema palke korrapäraselt puhastama.

Mõne sõnaga, pöörlema nimetab või tihendab põhilogi, kui tingimus on täidetud (rohkem sellest minuti pärast), nii et järgmine sündmus salvestatakse tühjale failile.

Lisaks eemaldab see “Vana” logifailid ja säilitab viimased. Muidugi, me otsustame, mida “Vana” tähendab ja kui tihti me tahame, et logrotate meie eest palke koristaks.

Logrotate'i installimine Linuxisse

Paigaldama pöörlema, kasutage lihtsalt oma paketihaldurit:

Debianis ja Ubuntus # aptitude update && aptitude install logrotate CentOS, RHEL ja Fedora # yum update && yum install logrotate. 

Väärib märkimist, et konfiguratsioonifail (/etc/logrotate.conf) võib viidata sellele, et üksikisikule võidakse määrata muid, täpsemaid seadeid .conf failid sees /etc/logrotate.d.

Soovitatav lugemine: Süsteemilogide haldamine (seadistamine, pööramine ja andmebaasi importimine) Logrotate abil

See on nii siis ja ainult siis, kui järgmine rida on olemas ja seda ei kommenteerita:

lisada /etc/logrotate.d. 

Jääme selle lähenemisviisi juurde, sest see aitab meil asju korras hoida ja kasutada Debian kast järgmiste näidete jaoks.

Logrotate seadistamine Linuxis

Olles väga mitmekülgne tööriist, pakub logrotate palju direktiive, mis aitavad meil seadistada, millal ja kuidas palke pööratakse ning mis peaks juhtuma kohe pärast seda.

Lisame sinna järgmise sisu /etc/logrotate.d/apache2.conf (pange tähele, et tõenäoliselt peate selle faili looma) ja uurige iga rida, et näidata selle otstarvet:

apache2.conf

/var/log/apache2/* {iganädalane pööramine 3 suurusega 10M tihendus delaycompress. }

Esimene rida näitab, et plokisisesed direktiivid kehtivad kõigi sees olevate logide kohta /var/log/apache2:

  • nädalas tähendab, et tööriist üritab palke iga nädal pöörata. Muud võimalikud väärtused on igapäevane ja igakuine.
  • pöörlema ​​3 näitab, et hoida tuleks ainult 3 pööratud palki. Seega eemaldatakse vanim fail neljandal järgneval käivitamisel.
  • suurus = 10M määrab pöörlemise minimaalseks suuruseks 10M. Teisisõnu, iga logi ei pöörata enne, kui see jõuab 10 MB -ni.
  • suruma ja viivituskompress kasutatakse selleks, et öelda, et kõik pööratud logid, välja arvatud viimane, tuleks kokku suruda.

Teostame kuivkäigu, et näha, mida logrotate teeks, kui see praegu reaalselt täidetaks. Kasuta -d suvandile, millele järgneb konfiguratsioonifail (tegelikult saate logrotate käivitada, jättes selle valiku vahele):

# logrotate -d /etc/logrotate.d/apache2.conf. 

Tulemused on näidatud allpool:

Pöörake Apache'i palke Logrotate abil
Pöörake Apache'i palke Logrotate abil

Logide kokkusurumise asemel võiksime need ümber nimetada kuupäev kui neid pöörati. Selleks kasutame kuupäevatekst direktiiviga. Kui meie kuupäevavorming on vaikeseade yyyymmdd, saame seda täpsustada kasutades kuupäevavorming.

Soovitatav lugemine: Installige "ülaosa", et jälgida Linuxi süsteemiprotsesside logimistegevust

Pange tähele, et me saame isegi takistada pöörlemist, kui logi on tühi teatav. Lisaks käskime logrotate'il saata pööratud logi süsteemiadministraatorile ([e -post kaitstud] sel juhul) tema viitamiseks (selleks on vaja seadistatav meiliserver, mis jääb käesoleva artikli reguleerimisalast välja).

Kui soovite saada logrotate kohta e -kirju, saate seadistada Postfixi e -posti serveri, nagu siin näidatud: Installige Postfixi meiliserver

Seekord kasutame /etc/logrotate.d/squid.conf ainult pöörlema /var/log/squid/access.log:

kalmaar.conf

/var/log/squid/access. [e -post kaitstud]
}

Nagu näeme alloleval pildil, ei olnud seda logi vaja pöörata. Kui aga suuruse tingimus on täidetud (suurus = 1M), muutub pööratud logi ümber access.log-25082020 (kui palk on sisse pööratud 25. august 2020) ja põhilogi (access.log) luuakse uuesti, kui juurdepääsuõigused on seatud 0644 ja koos juur omaniku ja grupi omanikuna.

Lõpuks, kui palkide arv lõpuks jõuab 6, vanim logi saadetakse postiga [e -post kaitstud].

Pöörake kalmaari palke logrotate abil
Pöörake kalmaari palke logrotate abil

Oletame nüüd, et soovite käivitada kohandatud käsu, kui pöörlemine toimub. Selleks asetage rida sellise käsuga postrotate ja endcripti direktiivide vahele.

Oletame näiteks, et tahame saata rootile meili, kui mõni logidest sees on /var/log/myservice pööratakse ümber. Lisame jooned punasega /etc/logrotate.d/squid.conf:

kalmaar.conf

/var/log/myservice/* {kuus luua 0644 juurjuure pööramine 5 suurus = 1 miljon postrotate kaja "Lihtsalt toimus pöörlemine." | mail root lõppsõna
}

Viimaseks, kuid mitte vähem tähtsaks, on oluline märkida, et valikud on olemas /etc/logrotate.d/*.conf konfliktide korral alistada põhikonfiguratsioonifailis olevad.

Logrotate ja Cron

Vaikimisi loob logrotate'i installimine crontab -faili /etc/cron.daily nimega pöörlema. Nagu ka teiste selles kataloogis olevate crontab -failide puhul, käivitatakse see iga päev alates kell 6:25 hommikul kui anacron pole installitud.

Soovitatav lugemine: 11 Cron Scheduling Task Näited Linuxis

Vastasel juhul algab hukkamine umbes 7:35 hommikul. Kontrollimiseks jälgige rida, mis sisaldab cron.daily kummaski /etc/crontab või /etc/anacrontab.

Kokkuvõte

Süsteemis, mis genereerib mitu logi, saab selliste failide haldamist logrotate abil oluliselt lihtsustada. Nagu oleme selles artiklis selgitanud, pöörleb, tihendab, eemaldab ja saadab see logisid automaatselt perioodiliselt või kui fail saavutab määratud suuruse.

Lihtsalt veenduge, et see on seatud töötama cron -tööna ja logrotate muudab teie asjad palju lihtsamaks. Lisateavet leiate man -lehelt.

Kas teil on selle artikli kohta küsimusi või ettepanekuid? Andke meile sellest teada, kasutades allolevat kommentaarivormi.

Teachs.ru