Linux-da Logrotate ulanyp, log aýlanyşyny nädip sazlamaly we dolandyrmaly


Linux ulgamyndaky iň gyzykly (we iň möhümi hem) kataloglaryň biri /var/log . Filesystem Iierarchy Standard-a görä, ulgamda işleýän hyzmatlaryň köpüsiniň işi bu katalogyň içindäki bir faýla ýa-da onuň aşaky bölümleriniň birine ýazylýar.

Şeýle faýllar surnallar diýlip atlandyrylýar we ulgamyň işleýşini (we geçmişde özüni alyp barşyny) öwrenmegiň açarydyr. Surnallar, şeýle hem näsazlyklary düzetmekde dolandyryjylaryň we inersenerleriň seredýän ilkinji maglumat çeşmesidir.

CentOS/RHEL/Fedora we Debian/Ubuntu (dürli-dürlilik üçin) /var/log mazmunyna seretsek, aşakdaky gündelik faýllary we kiçi bukjalary göreris.

Ulgamyňyzda işleýän hyzmatlara we işleýän wagtyna baglylykda netijäniň siziň ýagdaýyňyzda birneme üýtgeşik bolup biljekdigini ýadyňyzdan çykarmaň.

# ls /var/log
# ls /var/log

Iki ýagdaýda-da hasaba alyş atlarynyň käbiriniň\gündeliginde garaşylşy ýaly gutarýandygyny, beýlekisiniň bolsa senäniň (ýa-da CentOS-da maillog-20160822) ýa-da gysylan görnüşde üýtgedilendigini synlap bileris (auth.log.2 serediň. Debian-da gz we mysql.log.1.gz).

Bu, saýlanan paýlanyşa esaslanýan adaty hereket däl, ýöne şu makalada görşümiz ýaly konfigurasiýa faýllaryndaky görkezmeleri ulanyp üýtgedilip bilner.

Surnallar baky saklansa, ahyrynda/var/log ýaşaýan faýl ulgamyny doldurarlar. Munuň öňüni almak üçin ulgam dolandyryjysy gündelikleri arassalamak üçin logrotate atly ajaýyp kömekçi enjamy ulanyp biler.

Birnäçe söz bilen aýdylanda, indiki waka boş faýlda ýazylar ýaly şert ýerine ýetirilende (bir minutda has köp) logrotate esasy gündeligiň adyny üýtgeder ýa-da gysar.

Mundan başga-da,\köne gündelik faýllary aýyrar we iň soňky faýllaryny saklar. Elbetde, köne manysynyň nämäni aňladýandygyny we logrotate-iň biziň üçin gündelikleri arassalamagyny näçe wagt isleýändigimize karar bereris.

Linux-da Logrotate gurmak

Logrotate gurmak üçin paket dolandyryjyňyzy ulanyň:

---------- On Debian and Ubuntu ---------- 
# aptitude update && aptitude install logrotate 

---------- On CentOS, RHEL and Fedora ---------- 
# yum update && yum install logrotate

Konfigurasiýa faýlynyň ( /etc/logrotate.conf ) içindäki aýratyn .conf faýllarynda başga, has anyk sazlamalaryň ýerleşdirilip bilinjekdigini bellemelidiris. /etc/logrotate.d.

Diňe aşakdaky setir bar bolsa we düşündiriş berilmedik ýagdaýynda şeýle bolar:

include /etc/logrotate.d

Bu çemeleşmäni dowam etdireris, sebäbi bu zatlary tertipli saklamaga we aşakdaky mysallar üçin Debian gutusyny ulanmaga kömek eder.

Linux-da Logrotate sazlaň

Örän köptaraply gural bolmak bilen, logrotate surnallaryň haçan we nädip aýlanjakdygyny we şondan soň nämeleriň bolmalydygyny düzmäge kömek edýän köp görkezmeleri berýär.

Geliň, aşakdaky mazmuny /etc/logrotate.d/apache2.conf (şol faýly döretmeli bolmagyňyzy unutmaň) we maksadyny görkezmek üçin her setiri gözden geçireliň:

/var/log/apache2/* {
    weekly
    rotate 3
    size 10M
    compress
    delaycompress
}

Birinji setir, blokyň içindäki görkezmeleriň/var/log/apache2 içindäki ähli gündeliklere degişlidigini görkezýär:

  • hepdelik, guralyň gündelik ýazgylary aýlamaga synanyşjakdygyny aňladýar. Mümkin bolan beýleki gymmatlyklar gündelik we aýlykdyr.
  • 3 aýlanmak, diňe 3 aýlanan gündeligiň saklanmalydygyny görkezýär. Şeýlelik bilen, iň köne faýl indiki dördünji işde aýrylar.
  • size=10M aýlanmagyň iň az ululygyny 10M çenli kesgitleýär. Başgaça aýdylanda, her gündelik 10 MB ýetýänçä aýlanmaz.
  • gysyş we gijikdiriji kompress, iň soňky ýazgydan başga ähli aýlanan gündelikleriň gysylmalydygyny aýtmak üçin ulanylýar.

Geliň, häzirki wagtda ýerine ýetirilen bolsa, logrotatyň näme etjekdigini görmek üçin gury işlemeli. Konfigurasiýa faýlyndan soň -d opsiýasyny ulanyň (aslynda bu opsiýany goýup logrotate işledip bilersiňiz):

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

Netijeler aşakda görkezilýär:

Surnallary gysmagyň ýerine, aýlanandan soň adyny üýtgedip bilerdik. Munuň üçin senäniň teksti direktiwasyny ulanarys. Sene formatymyz adaty yyyymmdd-den başga bolsa, ony sene formaty arkaly kesgitläp bileris.

Logurnal boş bolsa boş aýlanmagyň öňüni alyp biljekdigimize üns beriň. Mundan başga-da, aýlanylýan gündeligi ulgam administratoryna (bu makalanyň çäginden çykmajak poçta serweri) ibermek üçin logrotata aýdalyň.

Logrotate hakda e-poçta almak isleseňiz, Postfix poçta serwerini şu ýerde görkezilişi ýaly gurup bilersiňiz: Postfix poçta serwerini guruň

Bu gezek diňe /var/log/squid/access.log aýlamak üçin /etc/logrotate.d/squid.conf ulanarys:

/var/log/squid/access.log {
    monthly
    create 0644 root root
    rotate 5
    size=1M
    dateext
    dateformat -%d%m%Y
    notifempty
    mail [email 
}

Aşakdaky suratdan görnüşi ýaly, bu gündeligi aýlamagyň zerurlygy ýokdy. Şeýle-de bolsa, ululyk şerti ýerine ýetirilende (ululygy=1M), aýlanan gündeligiň ady access.log-25082020 (gündelik 2020-nji ýylyň 25-nji awgustynda aýlanan bolsa) we esasy gündelik (access.log) üýtgediler. 0644-e düzülen we kök eýesi we toparyň eýesi hökmünde döredilen.

Ahyrynda, gündelikleriň sany 6-a ýetende, iň köne gündeligi [e-poçta bilen goralan] poçta bilen iberiler.

Indi aýlanma bolanda ýörite buýruk işletmek isleýärsiňiz öýdýän. Munuň üçin postrotate bilen ahyrky ýazgy görkezmeleriniň arasynda şeýle buýruk bilen setiri goýuň.

Mysal üçin,/var/log/myservice içindäki gündelikleriň haýsydyr biri aýlananda kök üçin e-poçta ibermek isleýäris. Geliň, gyzyl reňkdäki setirleri /etc/logrotate.d/squid.conf:

/var/log/myservice/* {
	monthly
	create 0644 root root
	rotate 5
	size=1M
    	postrotate
   		echo "A rotation just took place." | mail root
    	endscript
}

Iň soňkusy, ýöne iň bolmanda, /etc/logrotate.d/*.conf -da bar bolan opsiýalaryň gapma-garşylyklar ýüze çykan halatynda esasy konfigurasiýa faýlyndakylary ýok edýändigini bellemelidiris.

Logrotate we Kron

Düzgüne görä, logrotatyň gurulmagy /etc/cron.daily diýlip atlandyrylýan logrotate içinde krontab faýly döredýär. Bu bukjanyň içindäki beýleki crontab faýllarynda bolşy ýaly, anakron gurulmasa, her gün irden 6: 25-den başlap ýerine ýetiriler.

Otherwiseogsam, ýerine ýetiriş ir sagat 7: 35-de başlar. Barlamak üçin/etc/crontab ýa-da/etc/anacrontab-da cron.daily bolan setire göz aýlaň.

Gysgaça mazmun

Birnäçe gündeligi döredýän ulgamda, logrotate ulanyp, şeýle faýllary dolandyrmak aňsatlaşdyrylyp bilner. Bu makalada düşündirşimiz ýaly, döwürleýin esasda ýa-da faýl belli bir ululykda awtomatiki usulda aýlanýar, gysylýar, aýrylýar we poçta ýazgylary.

Diňe kron işi hökmünde işleýändigine göz ýetiriň we logrotate siziň üçin has aňsat bolar. Has giňişleýin maglumat üçin adam sahypasyna serediň.

Bu makala barada soraglaryňyz ýa-da teklipleriňiz barmy? Aşakdaky düşündiriş formuny ulanyp bize habar beriň.