Logi rotatsiooni seadistamine Linuxis. Apache veebiserveri logide (ja ka kõigi muude logide) pööramine. Logifaili suuruse ja olemasoluga seotud valikud

Mõni aeg tagasi seadistasin oma VPS-is skripti, mis kuvab perioodiliselt mingit infot logidest olemasolevale veebisaidile... Ma ei kirjelda, mis skriptiga on tegemist ja millistest logidest see infot loeb – see pole oluline. Kuid oluline on see, et mõne aja pärast hakkas server kõige tõsisemal viisil vahetusse minema ja selle tulemusel märkimisväärselt aeglustuma. Selgus, et logifail (see, kust infot loeti) kasvas mitme megabaidi suuruseks ja skript sõi märkimisväärseid ressursse, lugedes sealt pidevalt infot...

Nii et ma pidin seadistama logrotate Linuxis ...

Kõige sagedamini tagavad konkreetse Linuxi programmi arendajad ise, et nende programmiga loodud logifailid puhastatakse ja arhiveeritakse iga päev (kas kord nädalas/kuus või olenevalt nende logifailide suurusest). Ja tavaliselt teevad nad seda oma programmi jaoks logrotate seadistamisega.

Seda tehakse selleks, et palgid ei kasvaks gigabaidiseks ega ummistuks kettaruum. Kõige sagedamini tekib ju vajadus ajakirjades tuhnida mõne järgmise paari tunni või päeva või kõige rohkem nädala jooksul pärast mõnda riket või probleemi. Ja muide, nagu minu näitest näha, vahel suured suurused failid ei võta mitte ainult kettaruumi, vaid põhjustavad ka kogu süsteemi aeglustumist.

Seega leiutati nendel eesmärkidel utiliit logrotate. Nagu nimest ilmselt kohe selge, kasutatakse seda palkide pööramiseks. See toimib nii, et konfiguratsioonifailides määratletud tingimustel (näiteks aeg või faili suurus) logifailid, mille jaoks need tingimused on määratud, arhiveeritakse ja logi hakatakse kirjutama juba uus fail. Samuti saate määrata salvestatavate logiarhiivide arvu, mille järel vanad failid lihtsalt kustutatakse. Soovi korral saate logisid isegi meili teel saata...

Peaaegu kõigis valmisdistributsioonides on logrotate juba installitud ja lubatud, kuid kui mitte, siis on see kindlasti põhihoidlas saadaval.

Tihedamini, esmased seaded on juba salvestatud faili /etc/logrotate.conf. Võib ka kohal olla eriseaded konkreetsete programmide jaoks kataloogis /etc/logrotate.d/. Selleks, et utiliit logrotate saaksid selle kausta faile üles võtta, peab põhifail sisaldama rida:

sisaldab /etc/logrotate.d

sisaldab /etc/logrotate.d

See näitab, et selle kataloogi failid on justkui lisatud põhiseadete failile (nii-öelda "kaasatud"). Selline lähenemine võimaldab teil mitte iga kord hätta sattuda põhifail konfiguratsiooni ja ärge otsige sealt juhiseid soovitud programm paljude teiste seas, aga lihtsalt avatud nõutav fail tema jaoks ja redigeerida. Konkreetse programmi sätete loomiseks peate sellesse kataloogi looma faili ja konkreetse programmi logi pööramise tühistamiseks peate faili lihtsalt kustutama (või muutma selle loetamatuks).

Näidisfail /etc/logrotate.conf:

# Alustame rotatsiooni nädalas nädalas # Jätame kolm uusim fail zhirnalov rotate 3 # Loo uus fail arhiveeritud faili asemel loo # Kasuta pärandlogifaili tihendamiseks pakkimist # Kaasa failid määratud kataloogist include /etc/logrotate.d # pole pakette oma wtmp või btmp - me pöörame need siin /var/ log/wtmp ( Puuduvad igakuised loo 0664 root utmp rotate 1 ) /var/log/btmp ( Puuduvad igakuised loo 0660 root utmp rotate 1 )

Näidisfail /etc/logrotate.d/programma, kus programm on selle programmi nimi, mille logide jaoks soovite seadistusi teha:

/var/log/programma/*.log ( # jookse iga päev#igapäevane # käivitada ainult siis, kui faili suurus on suurem kui 1 MB#minsize=1M # tihendab pööratud faili suruma kokku # kompress eelmine fail järgmisel pöördel viivituskompress # salvestatud tihendatud fragmentide arv pöörake 5 # maksimaalne suurus tihendamata fail suurus = 999k # puuduv fail ei ole viga puudu # ära töötle tühjad failid teatamata # looge kohe pärast pööramist tühi fail määratud õiguste ja kasutajaga # loo 644 programmi_user programmi_grupp # Pärast koopia loomist kärpige originaalfail logifaili, selle asemel et vana logifaili teisaldada ja uus luua # Selle parameetri kasutamisel pole loomise käskkirjal mingit mõju, kuna vana fail ajakiri jääb oma kohale kopeerida # mida teha pärast pööramist? postrotate chown programmi_user:programma_group / var/ log/ programm/ endscript )

/var/log/programma/*.log ( # käivitada iga päev # iga päev # käivitada ainult siis, kui faili suurus on suurem kui 1 MB # minsize=1M # tihendab pööratud faili tihendamist # tihendab eelmise faili järgmise pööramise viivitusega tihenda # number of salvestatud tihendatud fragmendid pööravad 5 # tihendamata faili maksimaalne suurus suurus=999k # faili puudumine ei ole viga puudu programmi_user programmi_group # Pärast koopia loomist kärbige algne logifail selle asemel, et seda vana logifaili teisaldada ja uus luua. # Selle parameetri kasutamisel pole loomise käskkirjal mingit mõju, kuna vana logifail jääb oma kohale copytruncate # what mida teha pärast pööramist programmi_user:programma_group /var/log/programma/ endscript )

Logrotate utiliidi valikud:

-d- (silumine) aktiveerib silumisrežiimi, milles on lubatud ka suvand -v; aga silumisrežiimis failid süsteemi teated, nagu ka logrotate olekufaili, utiliit ei muuda.

-v- (sõnasõnaline) aktiveerib väljundrežiimi detailne info utiliidi iga toimingu kohta.

-f- (sunnib) sunnib logrotate teostama logi pööramist, isegi kui utiliit ise seda vajalikuks ei pea. See on mõnikord kasulik pärast uute kirjete lisamist logrotate'i või kui vana logifail on käsitsi kustutatud; nii luuakse uusi faile ja logimine jätkub korrektselt.

-m- (mail) ütleb utiliidile, millise käsu kaudu logisid saata e-mail. Sellel käsul võib olla kaks argumenti: subjekt ja saaja. Käsk peaks lugema sõnumit standardne sisend ja saatke see adressaadile meili teel. Vaikekäsk on /bin/mail -s.

-s- (olek) juhendab utiliiti kasutama alternatiivne fail tingimus. See on kasulik, kui logrotate käivitatakse kui erinevad kasutajad Sest erinevad komplektid süsteemi sõnumifailid. Vaikimisi olekufail on /var/lib/logrotate/status.

-? - kuvab lühikese viite.

--kasutus- kuvab teavet kasutamise kohta.

Järgnev on teave käskkirjade kohta, mida saab määrata logrotate konfiguratsioonifailis (siit):

suruma kokku
Logifailide vanad versioonid tihendatakse (vaikimisi gzip). Vaata ka nocompress.

tihenda cmd
Võimaldab määrata logifailide tihendamise käsu. Vaikimisi on gzip. Vaata ka kompressi.

lahti pakkidacmd
Direktiiv võimaldab teil määrata käsu logifailide lahtipakkimiseks. Vaikimisi on gunzip.

tihendada
Kui kasutatakse tihendamist, määrab laienduse tihendatud failid ajakirjad. Vaikimisi määratakse tihenduskäsu sätete põhjal.

kompressioonid
Tihendusprogrammi saab edasi anda käsurida, kui ta neid kasutab. Gzipi vaikeväärtus on "-9" (maksimaalne tihendus).

kopeerida
Looge logifailist koopia ilma originaali üldse muutmata. Seda valikut saab kasutada näiteks loomiseks hetktõmmis(lõigatud) praegune fail logi või kui mõni muu utiliit peab faili kärpima või puhastama. Selle suvandi kasutamisel pole loomise käskkirjal mingit mõju, kuna vana logifail jääb alles.

kopeerida
Pärast koopia tegemist kärbige vana logifaili teisaldamise ja uue loomise asemel algne logifail. Seda saab kasutada juhul, kui mõnele programmile ei saa käskida oma logi sulgeda ja seega saab pidevalt jätkata programmi kirjutamist (lisamist). olemasolevat faili ajakiri. Pange tähele, et kuigi faili kopeerimise ja kärpimise vahel on väga lühike aeg, võivad mõned logitud andmed kaduda. Selle suvandi kasutamisel pole loomise käskkirjal mingit mõju, kuna vana logifail jääb alles.

luua režiimi omanike rühm
Looge kohe pärast kõnet (enne postrotate skripti käivitamist) logifail (sama nimega, mis just teisaldatud logil). Argument mode määrab logifaili juurdepääsu režiimi kaheksandarvuga (sama mis chmod(2)), omanik määrab kasutaja nime, kellele kuulub loodud fail logi ja group määrab rühma, kuhu logifail kuulub. Kõik need atribuudid võib ära jätta; sel juhul kasutatakse uue faili puhul atribuute, millel on samad väärtused kui algsel logifailil. Selle valiku saab keelata, kasutades käskkirja nocreate.

iga päev
Logifailide igapäevane ringlus.

viivituskompress
Lükake eelmise logifaili tihendamine edasi kuni järgmise pööramisnihkeni. See direktiiv kehtib ainult koos kompressiga. Seda saab kasutada juhul, kui programmil ei saa käskida logifaili sulgeda ja seega saab mõnda aega jätkata eelmisesse logifaili kirjutamist.

laienduspikendus
Logifailid pärast juurdepääsu saavad määratud laiendi. Kui kasutatakse tihendamist, siis pärast määratud laiendit lisab tihendusprogramm veel ühe (tavaliselt .gz).

kui tühi
Nihutage logifaili isegi siis, kui see on tühi; seda käitumist saab muuta notifempty direktiivi abil (vaikimisi on ifempty lubatud).

sisaldama faili_või_kataloogi
Loeb argumendina edastatud faili nii, nagu oleks see rida-realt konfiguratsioonifaili kehasse kaasatud kohast, kus on määratud käsk kaasamine. Kui kataloog on määratud, loetakse selles olevad failid sisse tähestikuline järjekord, enne kaasamiseks esitamist. Ebatavalisi faile (nt kataloogid ja nimega torud) ja ebaseaduslike laienditega lõppevaid faile (nagu on määratletud parameetriga tabooext) ignoreeritakse. Kaasamise käskkirja ei saa logifaili määratluses kasutada.

e-maili aadress
Ringlustsükli lõpus saadetakse logi e-postiga aadressile. Kui see pole üksikute logide jaoks vajalik, saab kasutada nomaili käsku.

mailfirst
Kui kasutate käsku mail, saatke äsja teisaldatud fail, mitte edasi-tagasi reisi lõpetanud logifail.

maillast
Kui kasutate käsku mail, saatke mitte just teisaldatud fail, vaid lõpetatud logifail (see on vaikimisi).

puudu
Kui logifaili pole, jätkake järgmise faili töötlemisega ilma veateadet saatmata. Vaata ka nomissingok.

igakuine
logrotate pöörab logifaile kord kuus (tavaliselt iga kuu esimesel päeval).

mittekompress
Ärge gzipige logifailide vanemaid versioone. Vaata ka kompressi.

nokoopia
Ärge kopeerige algset logifaili ja jätke see vaikekohta (see alistab kopeerimisparameetri).

nocopytrumpeerima
Pärast koopia loomist ärge kärpige algset logifaili selle vaikeasukohas (see alistab parameetri copytruncate).

ei loo
Ärge looge uut logifaili (see alistab loomise käskkirja).

nodelaycompress
Ärge viivitage nihutatud logifaili tihendamist kuni järgmise juurdepääsutsüklini (see alistab viitetihendamise direktiivi).

nomail
Ärge saatke vanu logifaile postiga.

nomissingok
Kui logifaili pole olemas, kuvage veateade. See on vaikimisi määratud.

noolddir
Pärast juurdepääsu logid jäävad praeguste logidega samasse kataloogi (see alistab direktiivi olddir).

nosharedscripts
Käivitage eel- ja järelrotatsiooni skriptid iga töödeldud logi jaoks (see on vaikekäitumine ja selle saab alistada parameetriga sharedscripts).

teatamata
Ärge nihutage logi, kui see on tühi (see tühistab suvandi ifempty).

olddir kataloog
Teisalda nihutatud ajakirjad kataloogi. Määratud kataloog peab asuma samas kohas füüsiline seade, mis on sama, mis tühistatav logifail. Selle valiku kasutamisel paigutatakse kataloogi kõik logi vanad versioonid. Selle parameetri saab alistada parameetriga noolddir.

postrotate/endscript
Postrotate ja endscripti vahelised käskkirjaread (mis ise peaksid olema eraldi ridadel) käivitatakse pärast logile juurdepääsu. Neid direktiive võib leida ainult logifaili definitsioonist. Vt ka eelrotatsioon.

eelrotatsioon/lõppskript
Prerotate ja endscripti vahelised käskkirjaread (mis peavad ise olema eraldi ridadel) täidetakse enne logi pööramist ja ainult siis, kui logi on tegelikult pööratud. Neid direktiive võib leida ainult logifaili definitsioonist. Vaata ka postrotate.

korda keerata
Logifaili nihutatakse määratud arv kordi, enne kui see kustutatakse või saadetakse meilijuhises määratud aadressile. Kui see on määratud 0 korda, siis vana logi juurdepääsu asemel kustutatakse.

suurus suurus
Logifaile nihutatakse, kui need suurenevad määratud suurus baitides. Kui suurus lõpeb tähega M, tõlgendatakse suurust megabaitides. Kui kasutate k, saate määrata suuruse kilobaitides. Seega on juhised suurus 100, suurus 100k ja suurus 100M õiged.

jagatud skriptid
Tavaliselt käivitatakse iga töödeldud logi jaoks ettekirjutus- ja järelskriptid; see tähendab, et sama skripti saab käivitada mitu korda ühe konfiguratsioonikirje jaoks, mis hõlmab mitut faili (nagu failis /var/log/news/*). Kui jagatud skripti parameeter on määratud, siis käivitatakse skripte ainult üks kord, olenemata antud mallile vastavate logide arvust. Kui aga ükski mustrile vastav logi ei vaja juurdepääsu, siis skripte üldse ei käivitata. See suvand alistab nosharedscriptsi direktiivi.

stardinumber
Määratud number-- see, millest päringute loendamine algab. Näiteks kui määrate 0, antakse pärast esimest juurdepääsu (algse logifaili nihutamist) logidele laiend .0. Kui määrate 9, luuakse logifailid laiendiga .9, jättes vahele 0-8. Failidele pääseb juurde (nihutatakse) ikkagi loendusjuhises määratud kordade arv.

tabooext [+] extension_list
Muudab praegust keelatud laiendite loendit (vt ka). Kui laienduste loendi ees on märk +, lisatakse see loend praegusele loendile, vastasel juhul asendatakse see. Esialgsel käivitamisel sisaldab loend järgmisi laiendusi: .rpmorig, .rpmsave,v, .swp, .rpmnew ja ~.

iganädalane
Logifailid nihutatakse, kui praegune nädalapäev on lühem kui nädalapäev, mil viimane logijuurdepääs toimus, või kui sellest on möödunud rohkem kui nädal. See on peaaegu sama, mis palkide pööramine esmaspäeviti, kuid töötab paremini, kui logrotate ei tööta igal õhtul.

PS: Pärast muudatuste tegemist on nende rakendamiseks soovitatav käivitada terminalis superkasutajana:

sudo logrotate -f -v /etc/logrotate.conf

sudo logrotate -f -v /etc/logrotate.conf

Nagu lugeja vastusest selgus, on logide pööramine üks teemasid, mis tekitab mõningaid raskusi. Eelkõige tekivad probleemid kalmaari puhverserveri logide rotatsiooni seadistamisega, mis raskendab aruannete hankimist pika perioodi jooksul. Seetõttu otsustasime selgitada ja öelda teile, mis on palgi pööramine ja kuidas seda seadistada.

Kõik tähelepanu väärivad sündmused salvestab süsteem logifailidesse või logifailidesse, mida saab hiljem kasutada rikete analüüsimiseks, statistika saamiseks, intsidentide uurimiseks jne. ja nii edasi. Logimise vajadus, salvestatavad sündmused, nende üksikasjad ja täielikkus määratakse tavaliselt konkreetse teenuse konfiguratsioonis ning neil on reeglina mõned vaikeseaded, mis sobivad enamikule kasutajatele.

Selliste failide kontrollimatu kasvu vältimiseks on vaja mehhanismi kirjete arvu piiramiseks mõne mõistliku piirini, milleks võib olla faili suurus, millest alates kirjutatakse vanad kirjed üle, või ajavahemik, mille möödudes pole kirjed enam asjakohased. ja seda saab kustutada. IN Ubuntu server sellist mehhanismi nimetatakse palgi pööramine ja seda rakendatakse kasutades süsteemiteenus logroteerida.

Nagu nimigi ütleb, asendab logide pööramine perioodiliselt vanu logisid uutega, paigutades aegunud andmed arhiivi või lihtsalt kustutades. Sõltuvalt seadistustest saab logiarhiivi salvestada kas tihendatud või tihendamata kujul ja vajaliku sügavusega.

Siin pole piiranguid, välja arvatud terve mõistus ja maht kõvaketas, mis võimaldab teil protsessi oma vajadustele vastavaks kohandada. Näiteks saate teha igapäevast pööramist ja salvestada eilse logi tihendamata kujul ja ülejäänud arhiivina. Iga järgneva pöörlemisega näib ahel nihkuvat, viimane logi kirjutatakse üle eelviimase logiga ja praegune logi kustutatakse (või luuakse uuesti).

Vaatame pööramise seadistamist logide näitel squid puhverserver, mis põhjustab meie lugejatele mitmeid raskusi. Põhilised pööramise sätted on salvestatud /etc/logrotate.conf, lisaks võivad üksikud teenused olla enda seaded pööramised, mis salvestatakse kataloogi spetsiaalsetesse failidesse /etc/logrotate.d, mille seaded kattuvad sätetega logrotate.conf.

See lähenemisviis võimaldab teil paindlikult konfigureerida pöörlemist iga konkreetse teenuse jaoks, ilma et see mõjutaks üldised seaded. Teenusele helistatakse üks kord päevas planeerija kaudu cron.

Avame faili /etc/logrotate.d/squid, meil on see järgmine vaade:

#
#Logrotate killustatus kalmaari jaoks.
#
/var/log/squid/*.log (
iga päev
suruma kokku
viivituskompress
pööra 2
puudu
ei loo
jagatud skriptid
eelroteerida
proovi! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports
lõpukiri
pöörde järel
proovi! -e /var/run/squid.pid || /usr/sbin/squid -k pööramine
lõpukiri
}

Vaatame selle struktuuri üksikasjalikumalt. Esimene rida määrab töödeldavate logifailide tee. IN sel juhul kõik kataloogis olevad failid töödeldakse /var/log/squid vastavalt järgmistele valikutele:

  • iga päev- määrab igapäevase pöörlemise, iganädalaseks või igakuiseks kasutamiseks iganädalane või igakuine.
  • suruma kokku- määrab arhiveeritud logide tihendamise, vastupidine valik mittekompress.
  • viivituskompress- ärge suruge praegust logi kokku enne järgmist pööramist, tavaliselt kasutatakse juhtudel, kui logis toimub pidev salvestamine.
  • pööra 2- pööramiste arv enne faili kustutamist, sel juhul salvestatakse kaks arhiivi.
  • puudu- kui logifaili pole, näitab töö jätkamist ilma veateadet kuvamata.
  • ei loo- ärge looge uut logifaili.
  • jagatud skriptid- kasutatakse sektsioonide jaoks eelroteerida Ja pöörde järel, see valik määrab nende jaotiste skriptide käivitamise üks kord enne ja pärast pööramist kõik logisid, vastasel juhul käivitatakse skriptid enne ja pärast pööramist kõik logi.

Allpool on jaotised eelroteerida Ja pöörde järel, millest igaüks lõpeb joonega lõpukiri, kõik, mis asub nende ridade vahel, teostatakse enne ja pärast pööramisprotsessi.

jaotis pöörde järel kontrollib, kas squid töötab, ja alustab puhverserveri enda poolt logide pööramist. Peatume sellel punktil veidi üksikasjalikumalt. Kalmaari konfiguratsioonifailis on valik:

Logifail_rotate n

Kus n- pöörete arv (vaikimisi 0), st. kalmaar ise suudab salvestada mitu rotatsiooni palke, millest igaüks omakorda töödeldakse logrotate abil. Vaikeseadetega see käsk põhjustab peamise kalmaari logi kustutamise.

jaotis eelroteerida lisatakse installimise ajal automaatselt ja kui fail /usr/sbin/sarg-reports on olemas ja käivitatav, käivitab selle.

Eraldi peaksite peatuma käskude salvestamisel, ei pruugi nendes kasutatud konstruktsioon esimesel korral selge olla. Sel juhul kasutatakse kahekordset eitust, kui tingimuse eitus on väär, siis täidetakse sümboli || järel määratud käsk. (loogiline VÕI), see on seotud käsu loogikaga test ja faili kirjutamise süntaks ( Hüüumärk pärast testi näitab tingimuse eitamist).

Nagu näete, võimaldab logrotate logide pööramise protsessi väga paindlikult konfigureerida. Nii et kui tahame koostada igakuiselt statistikat kalmaari kasutamise kohta, peame märkima rotatsiooniperioodi - kuu ja jaotises eelroteerida muutke igakuise aruande loomiseks käsku.

Linuxis salvestab enamik taustal töötavaid teenuseid ja programme, nagu Apache, Nginx, Postfix ja teised, logifailidesse teavet nende oleku, tulemuste ja vigade kohta. Standardne asukoht logid või nagu neid nimetatakse - logid - kaustas /var/log.

Logianalüüsi abil saate aru, mis töötab valesti, miks viga tekkis ja kuidas probleemi lahendada. Kuid siin on üks probleem. Logide suurus kasvab pidevalt ja need võtavad järjest rohkem kettaruumi, mistõttu on vaja logid õigel ajal puhastada ja aegunud kanded kustutada, et need tavatööd ei segaks. Seda saab teha aeg-ajalt käsitsi või Croni skripte seadistades, kuid on veel lihtsam variant – logrotate utiliit. See artikkel käsitleb logrotate seadistamist ja selle kasutamist.

Logrotate utiliit on loodud logitöötluse automatiseerimiseks. Ta saab nendega esineda vajalikud toimingud teatud tingimustel ja vastavuseeskirjadel. Näiteks saate logid arhiivi tihendada või teise serverisse saata, kui need jõuavad teatud suuruse, vanuse või muude parameetriteni.

Saate määrata tingimused, mida kontrollida iga päev, kord nädalas või kuus. See võimaldab teil luua logide pööramise skeemi, mis on teile ja teie serverile mugav. Palgi pööramine võib samuti olla kasulik koduarvuti, kuid siin pole see nii oluline kui serverites, kus ainuüksi Apache logidesse saab iga päev kirjutada kuni sadu tuhandeid ridu.

Logrotate seadistamine

Logrotate on populaarne utiliit, nii et enamik distributsioone on sellega vaikimisi kaasas. Saate kontrollida, kas programm on teie levitusse installitud, proovides seda installida. Näiteks CentOS-is:

sudo yum installi logrotate

Või Ubuntus ja sellel põhinevates distributsioonides:

sudo apt install logrotate

Nüüd, isegi kui utiliit pole installitud, installite selle. Kõik programmi põhisätted asuvad failis /etc/logrotate.conf, lisaseaded, reeglite ja muude funktsioonide kohta saab paigutada kausta /etc/logroate.d/. Kõik logroatae sätted saate paigutada otse põhikonfiguratsioonifaili, õigem on, kui seaded on igaühe jaoks eraldi teenus saab sisse eraldi fail, kaustas /etc/logrotate.d/.

Selleks, et programm saaks selle kausta konfiguratsioonifailid laadida, peate põhikonfiguratsioonifaili lisama järgmise rea:

vi /etc/logrotate.conf

sisaldab /etc/logrotate.d

Lihtsalt veenduge, et see on juba olemas. Kõigepealt vaatame põhidirektiive, mida seadistamise ajal rakendame. Siin ei näe käskkirjad päris tavalised välja, käskkiri ise määrab, mida ja millal teha tuleb ning vajadusel ka vastu võetakse Lisavalikud. Tingimuste kontrollimise sageduse määramiseks kasutatakse järgmisi juhiseid.

  • tunnis- iga tund;
  • iga päev- iga päev;
  • iganädalane- iga nädal;
  • igakuine- iga kuu;
  • igal aastal- Iga aasta.

Logide haldamise ja töötlemise põhijuhised:

  • pöörata- näitab, kui palju vanu palke on vaja ladustada, kogus edastatakse parameetrites;
  • luua- näitab, et pärast vana teisaldamist on vaja luua tühi logifail;
  • kuupäevatekst- lisab vana logi päise ette pööramise kuupäeva;
  • suruma kokku- näitab, et logi tuleb kokku suruda;
  • viivituskompress- ärge suruge viimast ja eelviimast ajakirja kokku;
  • pikendamine- salvestage algne logifail pärast pööramist, kui sellel on määratud laiend;
  • mail- saatke e-kiri pärast pööramise lõpetamist;
  • maxage- pöörata palke, kui need on ettenähtust vanemad;
  • puudu- ärge genereerige vigu, kui logifaili pole olemas;
  • vanadir- teisaldage vanad logid eraldi kausta;
  • postrotate/endscript- täitma suvalisi käske pärast pööramist;
  • alustada- number, millest algab vanade palkide nummerdamine;
  • suurus- palgi suurus selle teisaldamisel;

Need on põhijuhised, mida me kasutame. Peamine konfiguratsioonifail sisaldab globaalset konfiguratsiooni, direktiive, mis rakenduvad kõigile logidele, kui nende mõju pole tühistatud. Iga pööratavat palki kirjeldatakse järgmiselt:

logi_faili_aadress {
direktiivid
}

Nüüd loome kausta /etc/logrotate.d/ faili rsyslog.conf ja asetame sinna selle logi pööramise sätted:

/var/log/messages (
iga päev
pööra 3
suurus 10M
suruma kokku
viivituskompress
}

Need sätted tähendavad, et logisid pööratakse iga päev ja me säilitame kolm viimast logi, vanemad koopiad kustutatakse automaatselt. Minimaalne suurus pööramiseks - 10 megabaiti, pööramist ei teostata, kui logi ei võta rohkem kui 10 megabaiti. Pakkimist kasutatakse kõigi logide jaoks, välja arvatud viimane ja eelviimane. Täpselt sama põhimõtet kasutades saate konfigureerida mis tahes logi jaoks logi pööramise. Peate looma sellise jaotise iga logi jaoks, mida soovite hallata.

Nüüd jääb üle vaid testida, kuidas meie konfiguratsioon töötab. Selleks käivitage utiliit logrotate valikuga -d. See prindib välja kõik, mida ta kavatseb teha, kuid ei muuda kettal olevaid faile. Meil on fail /var/log/messages, 40 megabaidi suurune, vaatame, mida utiliit teeb:

logrotate -d /etc/logrotate.d/rsyslog.conf


Nagu näete, tuvastab programm logifaili ja jagab selle mitmeks osaks. Saate tagada, et logrotate töötab ootuspäraselt, kontrollides croni ajakava:

ls /var/cron.daily/

Logrotate'i seadistamine on lõpule viidud ja peate vaid kirjeldama, kuidas iga palju ruumi võtva palgi palke pööratakse.

järeldused

Selles artiklis vaatlesime, kuidas konfigureerida logrotate centos või mõnda muud Linuxi levitamine. Utiliidi töö ei erine sõltuvalt jaotusest palju. Kui teil on server koos raske koorem, peate kindlasti logi pööramise seadistama. Loodan, et see teave oli teile kasulik. Lõpetuseks video selle kohta, kuidas logisid Ubuntus LPIC-st pööratakse:

Ja veel üks asi inglise keeles:

Logrotate on selle lihtsamaks muutmiseks loodud rakendus logifailide haldamine. Eriti Logrotate kasulik seal, kus see on loodud suur hulk logifailid. Utiliit võimaldab teil seda teha automaatrežiim logifaile arhiveerida, kustutada, tühjendada ja e-postiga saata. Seda protsessi nimetatakse tavaliselt logifaili pööramine.

Logrotate saab seadistada pöörlema ​​iga päev, kord nädalas või kuus. Lisaks saate määrata faili suuruse, mille saavutamisel fail pööratakse. Tavaliselt logroteerida töötab igapäevase cron tööna.

Logrotate installimine
Installimine on tüüpiline Debiani/Ubuntu-põhiste distributsioonide jaoks:

$ sudo aptitude install logrotate Faili lühikirjeldus Pöörake sätteid sisse Kirjeldus, kuidas Logrotate töötab ühe või teise logifailiga, mis asub spetsiaalses konfiguratsioonifailis. Reeglina asuvad need kataloogis /etc/logrotate.d/. Näiteks apache2 konfiguratsioonifail näeb välja selline: $ more /etc/logrotate.d/apache2 /var/log/apache2/*.log ( iganädalane # pööra kord nädalas missingok # puuduv fail ei ole viga rotate 52 # viimati 52 salvestatud pööratud faili pakkimine # tihendada pööratud faili viivituspakk # tihendada eelmist faili järgmise pööramise ajal # (st faili *.log.1 ei tihendata, kuid *.log.2 ja edasi tihendatakse) notifempty # ei töötle tühjad failid loo 640 root adm # kohe pärast pööramist, loo antud õigustega tühi fail ja kasutaja jagatud skriptid # prerotate/postrotate krüpte käivitatakse ainult üks kord # olenemata antud mallile vastavate logide arvust postrotate # skript hakkab käivitatakse kohe pärast pööramist, kui [ -f "`. /etc/apache2/envvars ; echo $(APACHE_PID_FILE:-/var/run/apache2.pid)`" ], siis /etc/init.d/apache2 reload > /; dev/null fi lõppskript )

Sel juhul esimene rida /var/log/apache2/*.log pole midagi muud kui töödeldud logifailide muster. See tähendab, et määratud pööramise konfiguratsiooni kasutatakse kõigi failide jaoks, mis asuvad kataloogis /var/log/apache2/ laiendiga “log”.

Konfiguratsioonifailis on palju kehtivaid direktiive (üle 40). Lisateavet nende kohta leiate aadressilt mees logrotate.

Logrotate põhivalikud

Reeglina on pärast konfiguratsioonifaili seadistamist vaja toimingut kontrollida logroteerida uute palkide jaoks. Võimalus selleks on olemas otsene käivitamine logroteerida käsurealt. Lubatud on järgmised valikud:

  • -d. Lubab silumisrežiimi ja dubleerib ka valiku -v. Silumisrežiimis logidega toiminguid ei tehta.
  • -f, --jõud. Põhjustab logrotate logi pööramise. Mõnikord on vajalik pärast uute lisamist konfiguratsioonifailid või kui vana palk fail kustutati käsitsi; nii luuakse uued logifailid ja logimine jätkub korrektselt.
  • -m, --post käsk . Määrab, millist käsku logide postiga saatmiseks kasutada. Käsk peab aktsepteerima 2 sisendparameetrit:
    • kirja päis
    • kirja saaja
  • -s, --olek olekufail . Tähistab alternatiivse oleku faili kasutamist. Kasulik juhtudel, kui logrotate töötab erinevate logifailide komplektide jaoks erinevate kasutajatena. Vaikeolekufail: /var/lib/logrotate/status
  • --kasutus. Väljundid lühikesed juhised utiliidi kasutamise kohta.
  • -v, --sõnaline. Diagnostiliste teadete kuvamine pööramise ajal

Logrotate konfiguratsiooni näide

Näiteks oletame, et kataloogis /home/site/site/logs/ veebiserverite (nt nginx ja apache) logifailid asuvad. Need töötavad koos: - frontend, apache2-backend.

$ more /etc/logrotate.d/debianworld.ru # Nginxi logi rotatsioon (esiosa) # Annab staatilisi andmeid, kõik muu edastatakse apache'ile. # Raiet tehakse intensiivsemalt. /home/dw/debianworld.ru/logs/nginx_*.log ( igapäevane # igapäevane pööramine Puuduvadok # puuduv fail ei ole viga rotate 45 # 45 päeva ajalugu salvestatakse tihendada # pööratud failid tihendatakse viivituskompress # pööratud fail ei ole tihendatud, ülejäänud on tihendatud notifempty # ei töötle tühje faile loo 640 dw www-andmed # õigused, uue faili kasutaja jagatud skriptid # prerotate/postrotate käivitatakse ainult 1 kord prerotate # Külastajate statistika kogumine AWstats jaoks /usr/bin/perl /usr/lib/cgi-bin/awstats .pl -update -config=debianworld.ru -databasebreak=day endscript postrotate # Taaskäivitage nginx [ ! -f /var/run/nginx.pid ] ||. var/run/nginx.pid` endscript ) # Apache2 logi rotatsioon (tagaosa) # Logimine toimub vähem intensiivselt. /home/dw/debianworld.ru/logs/apache*.log ( iganädalane # iganädalane rotatsioon Puuduvad # puuduv fail ei ole viga rotate 4 # 4 nädala ajalugu salvestatakse tihendada # pööratud failid tihendatakse nodelaycompress # pööratud fail on samuti tihendatud notifempty # ei töötle tühje faile loo 640 dw www-data # õigused, uue faili kasutaja jagatud skriptid # postrotate käivitatakse ainult 1 kord postrotate # Taaskäivitage apache2, kui [ -f /var/run/apache.pid ] siis /etc/init. d/apache2 restart; > /dev/null fi endscript )

Logrotate on selle lihtsamaks muutmiseks loodud rakendus logifailide haldamine. Eriti Logrotate kasulik, kui luuakse suur hulk logifaile. Utiliit võimaldab logifaile automaatselt arhiveerida, kustutada, kustutada ja e-postiga saata. Seda protsessi nimetatakse tavaliselt logifaili pööramine.

Logrotate saab seadistada pöörlema ​​iga päev, kord nädalas või kuus. Lisaks saate määrata faili suuruse, mille saavutamisel fail pööratakse. Tavaliselt logroteerida töötab igapäevase cron tööna.

Logrotate installimine
Installimine on tüüpiline Debiani/Ubuntu-põhiste distributsioonide jaoks:

$ sudo aptitude install logrotate Logrotate seadete faili lühikirjeldus Kirjeldus, kuidas Logrotate töötab ühe või teise logifailiga, mis asub spetsiaalses konfiguratsioonifailis. Reeglina asuvad need kataloogis /etc/logrotate.d/. Näiteks apache2 konfiguratsioonifail näeb välja selline: $ more /etc/logrotate.d/apache2 /var/log/apache2/*.log ( iganädalane # pööra kord nädalas missingok # puuduv fail ei ole viga rotate 52 # viimati 52 salvestatud pööratud faili pakkimine # tihendada pööratud faili viivituspakk # tihendada eelmist faili järgmise pööramise ajal # (st faili *.log.1 ei tihendata, kuid *.log.2 ja edasi tihendatakse) notifempty # ei töötle tühjad failid loo 640 root adm # kohe pärast pööramist, loo antud õigustega tühi fail ja kasutaja jagatud skriptid # prerotate/postrotate krüpte käivitatakse ainult üks kord # olenemata antud mallile vastavate logide arvust postrotate # skript hakkab käivitatakse kohe pärast pööramist, kui [ -f "`. /etc/apache2/envvars ; echo $(APACHE_PID_FILE:-/var/run/apache2.pid)`" ], siis /etc/init.d/apache2 reload > /; dev/null fi lõppskript )

Sel juhul esimene rida /var/log/apache2/*.log pole midagi muud kui töödeldud logifailide muster. See tähendab, et määratud pööramise konfiguratsiooni kasutatakse kõigi failide jaoks, mis asuvad kataloogis /var/log/apache2/ laiendiga “log”.

Konfiguratsioonifailis on palju kehtivaid direktiive (üle 40). Lisateavet nende kohta leiate aadressilt mees logrotate.

Logrotate põhivalikud

Reeglina on pärast konfiguratsioonifaili seadistamist vaja toimingut kontrollida logroteerida uute palkide jaoks. Selleks on võimalik otse käivitada logroteerida käsurealt. Lubatud on järgmised valikud:

  • -d. Lubab silumisrežiimi ja dubleerib ka valiku -v. Silumisrežiimis logidega toiminguid ei tehta.
  • -f, --jõud. Põhjustab logrotate logi pööramise. See võib osutuda vajalikuks pärast uute konfiguratsioonifailide lisamist või kui vana logifail kustutati käsitsi; nii luuakse uued logifailid ja logimine jätkub korrektselt.
  • -m, --post käsk . Määrab, millist käsku logide postiga saatmiseks kasutada. Käsk peab aktsepteerima 2 sisendparameetrit:
    • kirja päis
    • kirja saaja
  • -s, --olek olekufail . Tähistab alternatiivse oleku faili kasutamist. Kasulik juhtudel, kui logrotate töötab erinevate logifailide komplektide jaoks erinevate kasutajatena. Vaikeolekufail: /var/lib/logrotate/status
  • --kasutus. Kuvab lühikesed juhised utiliidi kasutamiseks.
  • -v, --sõnaline. Diagnostiliste teadete kuvamine pööramise ajal

Logrotate konfiguratsiooni näide

Näiteks oletame, et kataloogis /home/site/site/logs/ veebiserverite (nt nginx ja apache) logifailid asuvad. Need töötavad koos: - frontend, apache2-backend.

$ more /etc/logrotate.d/debianworld.ru # Nginxi logi rotatsioon (esiosa) # Annab staatilisi andmeid, kõik muu edastatakse apache'ile. # Raiet tehakse intensiivsemalt. /home/dw/debianworld.ru/logs/nginx_*.log ( igapäevane # igapäevane pööramine Puuduvadok # puuduv fail ei ole viga rotate 45 # 45 päeva ajalugu salvestatakse tihendada # pööratud failid tihendatakse viivituskompress # pööratud fail ei ole tihendatud, ülejäänud on tihendatud notifempty # ei töötle tühje faile loo 640 dw www-andmed # õigused, uue faili kasutaja jagatud skriptid # prerotate/postrotate käivitatakse ainult 1 kord prerotate # Külastajate statistika kogumine AWstats jaoks /usr/bin/perl /usr/lib/cgi-bin/awstats .pl -update -config=debianworld.ru -databasebreak=day endscript postrotate # Taaskäivitage nginx [ ! -f /var/run/nginx.pid ] ||. var/run/nginx.pid` endscript ) # Apache2 logi rotatsioon (tagaosa) # Logimine toimub vähem intensiivselt. /home/dw/debianworld.ru/logs/apache*.log ( iganädalane # iganädalane rotatsioon Puuduvad # puuduv fail ei ole viga rotate 4 # 4 nädala ajalugu salvestatakse tihendada # pööratud failid tihendatakse nodelaycompress # pööratud fail on samuti tihendatud notifempty # ei töötle tühje faile loo 640 dw www-data # õigused, uue faili kasutaja jagatud skriptid # postrotate käivitatakse ainult 1 kord postrotate # Taaskäivitage apache2, kui [ -f /var/run/apache.pid ] siis /etc/init. d/apache2 restart; > /dev/null fi endscript )