Kif Issettja u Immaniġġja r-Rotazzjoni tal-Log billi tuża Logrotate fil-Linux


Wieħed mill-aktar direttorji interessanti (u forsi wieħed mill-aktar importanti wkoll) f'sistema Linux huwa /var/log. Skont l-Istandard tal-Ġerarkija tal-Filesystem, l-attività tal-biċċa l-kbira tas-servizzi li jaħdmu fis-sistema tinkiteb f'fajl ġewwa dan id-direttorju jew wieħed mis-subdirettorji tiegħu.

Fajls bħal dawn huma magħrufa bħala zkuk u huma ċ-ċavetta biex jiġi eżaminat kif is-sistema qed topera (u kif ġabet ruħha fil-passat). Iz-zkuk huma wkoll l-ewwel sors ta 'informazzjoni fejn l-amministraturi u l-inġiniera jħarsu waqt is-soluzzjoni tal-problemi.

Jekk inħarsu lejn il-kontenut ta' /var/log fuq CentOS/RHEL/Fedora u Debian/Ubuntu (għall-varjetà) se naraw il-log files u subdirectory li ġejjin.

Jekk jogħġbok innota li r-riżultat jista' jkun kemmxejn differenti fil-każ tiegħek skont is-servizzi li jaħdmu fis-sistema(i) tiegħek u l-ħin li jkunu ilhom jaħdmu.

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

Fiż-żewġ każijiet, nistgħu nosservaw li xi wħud mill-ismijiet tal-log jispiċċaw kif mistenni f'\log, filwaqt li oħrajn jew jissemmew mill-ġdid bl-użu ta' data (pereżempju, maillog-20160822 fuq CentOS) jew ikkompressati (ikkunsidra auth.log.2. gz u mysql.log.1.gz fuq Debian).

Din mhix imġieba awtomatika bbażata fuq id-distribuzzjoni magħżula iżda tista 'tiġi mibdula skont id-direttivi bl-użu ta' direttivi fil-fajls ta 'konfigurazzjoni, kif se naraw f'dan l-artikolu.

Kieku zkuk jinżammu għal dejjem, dawn eventwalment jispiċċaw jimlew is-sistema tal-fajls fejn joqgħod /var/log. Sabiex jiġi evitat dan, l-amministratur tas-sistema jista 'juża utilità sabiħa msejħa logrotate biex tnaddaf ir-zkuk fuq bażi perjodika.

Fi ftit kliem, logrotate se semmi mill-ġdid jew jikkompressa l-ġurnal prinċipali meta tiġi sodisfatta kundizzjoni (aktar dwar dan f'minuta) sabiex l-avveniment li jmiss jiġi rreġistrat fuq fajl vojt.

Barra minn hekk, se tneħħi fajls log \qodma u se żżomm l-aktar reċenti. Naturalment, irridu niddeċiedu xi tfisser \qodma u kemm-il darba rridu logrotate biex inaddfu r-zkuk għalina.

Installazzjoni ta' Logrotate fil-Linux

Biex tinstalla logrotate, uża biss il-maniġer tal-pakketti tiegħek:

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

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

Tajjeb li wieħed jinnota li l-fajl tal-konfigurazzjoni (/etc/logrotate.conf) jista’ jindika li settings oħra, aktar speċifiċi jistgħu jitqiegħdu fuq fajls individwali .conf ġewwa /etc/logrotate.d.

Dan ikun il-każ jekk u biss jekk il-linja li ġejja teżisti u ma tiġix ikkummentata:

include /etc/logrotate.d

Aħna se nżommu ma 'dan l-approċċ, peress li se jgħinna biex inżommu l-affarijiet fl-ordni, u nużaw il-kaxxa Debian għall-eżempji li ġejjin.

Ikkonfigura Logrotate fil-Linux

Billi hija għodda versatili ħafna, logrotate jipprovdi ħafna direttivi biex jgħinuna nikkonfiguraw meta u kif ir-zkuk se jiġu mdawra, u x'għandu jiġri eżatt wara.

Ejja daħħal il-kontenut li ġej f'/etc/logrotate.d/apache2.conf (innota li x'aktarx ikollok toħloq dak il-fajl) u neżamina kull linja biex tindika l-iskop tagħha:

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

L-ewwel linja tindika li d-direttivi ġewwa l-blokk japplikaw għar-zkuk kollha ġewwa /var/log/apache2:

  • kull ġimgħa tfisser li l-għodda se tipprova ddawwar ir-zkuk fuq bażi ta' kull ġimgħa. Valuri oħra possibbli huma kuljum u kull xahar.
  • rotate 3 jindika li 3 zkuk imdawra biss għandhom jinżammu. Għalhekk, l-eqdem fajl se jitneħħa fir-raba' ġirja sussegwenti.
  • size=10M jistabbilixxi d-daqs minimu biex ir-rotazzjoni sseħħ għal 10M. Fi kliem ieħor, kull log mhux se jkun imdawwar sakemm jilħaq 10MB.
  • compress u delaycompress huma użati biex jgħidu li zkuk imdawra kollha, bl-eċċezzjoni ta 'l-aktar wieħed reċenti, għandhom jiġu kkompressati.

Ejja nwettqu dry-run biex naraw x'jagħmel logrotate kieku fil-fatt ġie esegwit issa. Uża l-għażla -d segwita mill-fajl tal-konfigurazzjoni (tista 'tabilħaqq tħaddem logrotate billi tħalli barra din l-għażla):

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

Ir-riżultati huma murija hawn taħt:

Minflok ma nikkompressaw iż-zkuk, nistgħu nsemmuhom mill-ġdid wara d-data meta ġew imdawra. Biex tagħmel dan, se nużaw id-direttiva dateext. Jekk il-format tad-data tagħna huwa ieħor għajr il-format default ssssmmdd, nistgħu nispeċifikawha billi tuża dataformat.

Innota li nistgħu saħansitra nevitaw li r-rotazzjoni sseħħ jekk il-ġurnal ikun vojt b'notifempty. Barra minn hekk, ejja ngħidu lil logrotate biex tibgħat ir-reġistru mdawwar lill-amministratur tas-sistema (server tal-posta li għandu jiġi stabbilit, li huwa barra mill-ambitu ta 'dan l-artikolu).

Jekk trid tikseb emails dwar logrotate, tista' tissettja Postfix mail server kif muri hawn: Installa Postfix Mail Server

Din id-darba se nużaw /etc/logrotate.d/squid.conf biex iddawwar biss /var/log/squid/access.log:

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

Kif nistgħu naraw fl-immaġni hawn taħt, dan il-ġurnal ma kellux għalfejn jiddawwar. Madankollu, meta tintlaħaq il-kundizzjoni tad-daqs (daqs = 1M), il-ġurnal imdawwar se jingħata isem ġdid access.log-25082020 (jekk il-ġurnal kien imdawwar fil-25 ta’ Awwissu, 2020) u r-reġistru ewlieni (access.log) jerġa’ jiġi ri- maħluqa b'permessi ta' aċċess stabbiliti għal 0644 u b'root bħala sid u sid tal-grupp.

Fl-aħħarnett, meta n-numru ta’ zkuk fl-aħħar jilħaq is-6, l-eqdem log se jintbagħat lil [email .

Issa ejja ngħidu li trid tmexxi kmand tad-dwana meta sseħħ ir-rotazzjoni. Biex tagħmel dan, poġġi l-linja b'tali kmand bejn id-direttivi postrotate u endscript.

Pereżempju, ejja ngħidu li rridu nibagħtu email lill-għeruq meta xi zkuk ġewwa /var/log/myservice jiddawwar. Ejja nżidu l-linji bl-aħmar għal /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
}

Fl-aħħar, iżda mhux l-inqas, huwa importanti li wieħed jinnota li l-għażliet preżenti f'/etc/logrotate.d/*.conf jegħlbu dawk fil-fajl tal-konfigurazzjoni prinċipali f'każ ta' kunflitti.

Logrotate u Cron

B'mod awtomatiku, l-installazzjoni ta' logrotate toħloq fajl crontab ġewwa /etc/cron.daily imsejjaħ logrotate. Kif inhu l-każ tal-fajls crontab l-oħra ġewwa dan id-direttorju, se jiġi esegwit kuljum li jibda fis-6:25 am jekk anacron ma jkunx installat.

Inkella, l-eżekuzzjoni tibda għall-ħabta tas-7:35 am. Biex tivverifika, oqgħod attent għal-linja li fiha cron.daily jew f'/etc/crontab jew /etc/anacrontab.

Sommarju

F'sistema li tiġġenera diversi zkuk, l-amministrazzjoni ta' tali fajls tista' tiġi ssimplifikata ħafna bl-użu ta' logrotate. Kif spjegajna f'dan l-artikolu, awtomatikament se jdur, jikkompressa, ineħħi, u jibgħat zkuk fuq bażi perjodika jew meta l-fajl jilħaq daqs partikolari.

Kun żgur li huwa stabbilit biex jaħdem bħala xogħol cron u logrotate se jagħmel l-affarijiet ħafna aktar faċli għalik. Għal aktar dettalji, irreferi għall-paġna man.

Għandek xi mistoqsijiet jew suġġerimenti dwar dan l-artikolu? Ħossok liberu li tgħarrafna billi tuża l-formola tal-kummenti hawn taħt.