Otu esi ahazi na jikwaa ntụgharị Log site na iji Logrotate na Linux


Otu n'ime akwụkwọ ndekọ aha kacha adọrọ mmasị (na ikekwe otu n'ime ihe kachasị mkpa) na sistemụ Linux bụ /var/log. Dịka Standardkpụrụ Hierarchy Faịlụ si dị, a na-ede ọrụ nke ọtụtụ ọrụ na-arụ na sistemụ na faịlụ dị n'ime ndekọ aha a ma ọ bụ otu n'ime akwụkwọ ndekọ aha ya.

A maara faịlụ ndị dị otú ahụ dị ka ndekọ ma bụrụ isi ihe na-enyocha otú usoro ahụ si arụ ọrụ (na otú o si mee n'oge gara aga). Ndekọ bụkwa ebe mbụ nke ozi ebe ndị nchịkwa na ndị injinia na-ele anya mgbe ha na-eme nchọpụta nsogbu.

Ọ bụrụ na anyị lelee ọdịnaya nke /var/log na CentOS/RHEL/Fedora na Debian/Ubuntu (maka ụdị dị iche iche) anyị ga-ahụ faịlụ ndekọ na subdirectories ndị a.

Biko mara na nsonaazụ ya nwere ike ịdịtụ iche na nke gị dabere na ọrụ na-arụ na sistemụ (s) gị yana oge ha na-agba.

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

N'okwu abụọ ahụ, anyị nwere ike ịhụ na ụfọdụ aha ndekọ na-agwụ dị ka a tụrụ anya na \log, ebe ndị ọzọ na-eji ụbọchị (dịka ọmụmaatụ, maillog-20160822 na CentOS) ma ọ bụ abịakọrọ (tụlee auth.log.2. gz na mysql.log.1.gz na Debian).

Nke a abụghị omume ndabara dabere na nkesa ahọpụtara mana enwere ike ịgbanwe ya site na iji ntuziaka na faịlụ nhazi, dịka anyị ga-ahụ n'isiokwu a.

Ọ bụrụ na edobere ndekọ ruo mgbe ebighị ebi, ha ga-emecha mejupụta sistemụ faịlụ ebe /var/log bi. Iji gbochie nke ahụ, onye na-ahụ maka sistemụ nwere ike iji ezigbo ọrụ a na-akpọ logrotate hichaa ndekọ ahụ kwa oge.

N'okwu ole na ole, logrotate ga-edegharị aha ma ọ bụ mpikota onu ndekọ isi mgbe ọnọdụ zutere (ihe gbasara nke ahụ n'ime nkeji) ka e wee dekọọ ihe omume ọzọ na faịlụ efu.

Na mgbakwunye, ọ ga-ewepụ faịlụ ndekọ ochie ma ga-edobe ndị kachasị ọhụrụ. N'ezie, anyị ga-ekpebi ihe ochie pụtara na ugboro ole anyị chọrọ logrotate iji hichaa anyị ndekọ.

Ịwụnye Logrotate na Linux

Iji wụnye logrotate, naanị jiri njikwa ngwugwu gị:

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

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

Ọ bara uru ịmara na faịlụ nhazi (/etc/logrotate.conf) nwere ike igosi na enwere ike idowe ntọala ndị ọzọ akọwapụtara na faịlụ .conf n'ime faịlụ ndị ọzọ. /etc/logrotate.d.

Nke a ga-abụ ikpe ma ọ bụrụ naanị ma ọ bụrụ na ahịrị ndị a dị ma ekwughị ya:

include /etc/logrotate.d

Anyị ga-anọgidesi ike na nke a, n'ihi na ọ ga-enyere anyị aka idobe ihe n'usoro, ma jiri igbe Debian mee ihe atụ ndị a.

Hazie Logrotate na Linux

N'ịbụ ngwá ọrụ dị ukwuu, logrotate na-enye ọtụtụ ntụziaka iji nyere anyị aka ịhazi mgbe na otu a ga-esi gbanwee ndekọ, yana ihe kwesịrị ime ozugbo.

Ka anyị tinye ọdịnaya ndị a na /etc/logrotate.d/apache2.conf (mara na ọ ga-abụ na ị ga-emepụta faịlụ ahụ) wee nyochaa ahịrị ọ bụla iji gosi ebumnuche ya:

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

Ahịrị nke mbụ na-egosi na ntuziaka dị n'ime ngọngọ na-emetụta ndekọ niile n'ime /var/log/apache2:

  • kwa izu pụtara na ngwa ọrụ ga-anwa ịtụgharị ndekọ ndekọ kwa izu. Ụkpụrụ ndị ọzọ nwere ike ịbụ kwa ụbọchị na kwa ọnwa.
  • tụgharịa 3 na-egosi na ọ bụ sọọsọ akwụkwọ ndekọ aha 3 agbagharịrị ka ekwesịrị idowe ya. Ya mere, a ga-ewepụ faịlụ kacha ochie na agba nke anọ na-esote.
  • size=10M na-esetịpụ nha kacha nta maka ntụgharị ga-ewere ọnọdụ na 10M. N'ikwu ya n'ụzọ ọzọ, ndekọ ọ bụla agaghị atụgharị ruo mgbe ọ ruru 10MB.
  • a na-eji mpikota onu na igbu oge na-agwa na ndekọ ndekọ niile agbagharịrị, ewezuga nke kacha ọhụrụ, ga-akpakọ.

Ka anyị mee ihe akọrọ iji hụ ihe logrotate ga-eme ma ọ bụrụ na e gburu ya ugbu a. Jiri -d nhọrọ na-esochi faịlụ nhazi (ị nwere ike ịme logrotate site na ịhapụ nhọrọ a):

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

E gosipụtara nsonaazụ ya n'okpuru:

Kama ịpịkọta ndekọ ndị ahụ, anyị nwere ike ịnyegharị ha aha ka ụbọchị a ga-atụgharị ha. Iji mee nke ahụ, anyị ga-eji ntụziaka dateext. Ọ bụrụ na usoro ụbọchị anyị abụghị nke yyyymmdd ndabara, anyị nwere ike iji dateformat kọwaa ya.

Rịba ama na anyị nwere ike igbochi ntụgharị ime ma ọ bụrụ na ndekọ ahụ tọgbọrọ chakoo na-enweghị ihe ọ bụla. Na mgbakwunye, ka anyị gwa logrotate ka ọ ziga akwụkwọ ndekọ na-atụgharị na onye na-ahụ maka sistemụ (ihe nkesa ozi a ga-edozi, nke na-esiteghị na isiokwu a).

Ọ bụrụ na ịchọrọ ịnweta ozi-e gbasara logrotate, ị nwere ike ịtọ ntọala nkesa ozi Postfix dị ka egosiri ebe a: Wụnye Postfix Mail Server.

Oge a anyị ga-eji /etc/logrotate.d/squid.conf naanị tụgharịa /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 
}

Dị ka anyị nwere ike ịhụ na foto dị n'okpuru, ọ dịghị mkpa ka a gbanwee ndekọ a. Agbanyeghị, mgbe ọnọdụ nha zuru ezu (nha = 1M), ndekọ a gbagharịrị ga-agbanwe aha access.log-25082020 (ọ bụrụ na atụgharịgharịrị ndekọ ahụ na Ọgọst 25, 2020) na ndekọ isi (access.log) ga-emegharịgharị. emepụtara site na ikike ịnweta ka edobere na 0644 yana mgbọrọgwụ dịka onye nwe na onye nwe otu.

N'ikpeazụ, mgbe ọnụọgụ ndekọ ahụ mechara rute 6, a ga-eziga ndekọ kacha ochie na [email echebe].

Ugbu a, ka anyị were ya na ịchọrọ ịme iwu omenala mgbe ntụgharị na-ewere ọnọdụ. Iji mee nke ahụ, tinye ahịrị nwere iwu dị otú ahụ n'etiti ntuziaka nzigharị na njedebe.

Dịka ọmụmaatụ, ka anyị were ya na anyị chọrọ izipu ozi-e na mgbọrọgwụ mgbe ọ bụla n'ime ndekọ dị n'ime /var/log/myservice na-atụgharị. Ka anyị tinye ahịrị na-acha uhie uhie na /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
}

N'ikpeazụ, ma ọ dịghị ihe ọzọ, ọ dị mkpa iburu n'obi na nhọrọ dị na /etc/logrotate.d/*.conf na-ewepụ ndị nọ na faịlụ nhazi isi ma ọ bụrụ na esemokwu.

Logrotate na Cron

Site na ndabara, ntinye nke logrotate na-emepụta faịlụ crontab n'ime /etc/cron.daily aha logrotate. Dị ka ọ dị na faịlụ crontab ndị ọzọ n'ime ndekọ a, a ga-egbu ya kwa ụbọchị malite na 6:25 nke ụtụtụ ma ọ bụrụ na etinyeghị anacron.

Ma ọ bụghị ya, ogbugbu ga-amalite n'elekere 7:35 nke ụtụtụ. Iji nyochaa, lelee ahịrị nwere cron.daily na /etc/crontab ma ọ bụ /etc/anacrontab.

Nchịkọta

N'ime usoro nke na-emepụta ọtụtụ ndekọ, nchịkwa nke faịlụ ndị dị otú ahụ nwere ike ime ka ọ dị mfe site na iji logrotate. Dị ka anyị kọwara n'isiokwu a, ọ ga-akpagharị na-akpaghị aka, mpikota onu, wepụ, na mail ndekọ na oge oge ma ọ bụ mgbe faịlụ ruru a nyere nha.

Naanị jide n'aka na edobere ya ka ọ na-arụ ọrụ cron na logrotate ga-eme ka ihe dịrị gị mfe. Maka nkọwa ndị ọzọ, rụtụ aka na ibe nwoke.

Ị nwere ajụjụ ma ọ bụ aro ọ bụla gbasara akụkọ a? Enwere onwe gị ime ka anyị mara site na iji ụdị nkọwa n'okpuru.