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.