<-
Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4

Günlük Dosyalar?

Mevcut Diller:  en  |  fr  |  ja  |  ko  |  tr 

Bir HTTP sunucusunu verimli ?ekilde y?netebilmek i?in olu?abilecek sorunlardan ba?ka sunucunun ba?ar?m? ve etkinli?i hakk?nda da baz? geri bildirimler almak gerekir. Apache HTTP Sunucusu ?ok kapsaml? ve esnek bir günlükleme yetene?ine sahiptir. Bu belgede sunucunun günlükleme yetene?ini nas?l yap?land?raca??n?zdan ve günlük kay?tlar?n? nas?l yorumlayaca??n?zdan bahsedilecektir.

Support Apache!

Ayr?ca bak?n?z:

top

Giri?

Apache HTTP Sunucusu, iste?in ilk al?n???ndan itibaren, URL e?leme i?lemleri, ba?lant?n?n son ??zümlemesi ve bu i?lemler s?ras?na ortaya ??kan hatalar da dahil olmak üzere sunucunuzda meydana gelen her?eyi günlüklemek i?in ?ok ?e?itli mekanizmalar i?erir. Buna ek olarak, günlükleme yetenekleri sa?layan ü?üncü parti modüller de kullan?labilir veya mevcut günlük dosyalar?na girdiler enjekte edilebilir. Ayr?ca, CGI programlar?, PHP betikleri ve benzerleri sunucu hata günlü?üne kendi iletilerini g?nderebilirler.

Bu belgede Apache HTTP Sunucusunun standart par?as? olan günlükleme modülleri hakk?nda bilgi verilecektir.

top

Güvenlik Uyar?s?

Apache httpd’nin günlük dosyalar?n? yazd??? dizine yazabilen birinin sunucuyu ba?latan kullan?c? kimli?ine (bu genellikle root olur) eri?im kazanabilece?ine hemen hemen kesin g?züyle bak?labilir. Sonu?lar?n?n neler olaca??n? kestiremiyorsan?z günlüklerin yaz?ld??? dizinde hi? kimseye yazma eri?imi vermeyin; ayr?nt?l? bilgi i?in güvenlik ipu?lar? belgesine bak?n?z.

Buna ilaveten, günlük dosyalar? istemci taraf?ndan sa?lanm?? bilgiler de i?erebilir. Bu nedenle, k?tü niyetli istemcilerin günlük dosyalar?na denetim karakterleri girmeleri olas?l???na kar?? ham günlükler ele al?n?rken dikkatli olunmal?d?r.

top

Hata Günlü?ü

?smi ve yeri ErrorLog y?nergesi ile belirtilen sunucu hata günlü?ü, en ?nemli günlük dosyas?d?r. Apache httpd taraf?ndan istekler i?lenirken saptanan hatalar ve tan? bilgileri bu dosyaya g?nderilir. Sunucuyu ba?lat?rken veya sunucu ?al???rken bir sorunla kar??la??ld???nda, neyin yanl?? gitti?ini ??renmek i?in bak?lacak ilk yer buras?d?r. Günlük kayd? ?o?unlukla sorunun nas?l düzeltilece?i ile ilgili ayr?nt?lar? da i?erir.

Hata günlü?ü normal olarak bir dosyaya yaz?l?r (genellikle, dosyan?n ismi Unix sistemlerinde error_log, OS/2 ve Windows’ta ise error.log’dur). Ayr?ca, Unix sistemlerinde sunucunun hatalar? syslog’a veya borulamak suretiyle bir programa aktarmas? da mümkündür.

Hata günlü?ünün bi?emi ErrorLogFormat y?nergesi ile belirlenir. Bu y?nergeyi kullanarak günlüklenen de?erleri ?zelle?tirebilirsiniz. Bir bi?em belirtmezseniz ?ntan?ml? bi?em kullan?l?r. ?rnek tipik bir hata iletisi i?ermektedir:

[Fri Sep 09 10:42:29.902022 2011] [core:error] [pid 35708:tid 4328636416] [client 72.15.99.187] Dosya yok: /usr/local/apache2/htdocs/favicon.ico

Günlük girdisinin ilk ??esi iletinin yaz?ld??? tarih ve saatten olu?ur. ?kincisi iletiyi üreten modülün ismi (bu durumda: core) ile raporlanan bilginin ?nem derecesini belirtir. Bunu varsa sürecin kimli?i ve yine varsa evre kimli?i izler. Sonraki ??e hatan?n üretilmesine sebep olan istemcinin IP adresini i?erir. Kalan? iletinin kendisidir (duruma bak?l?rsa bir dosyaya yap?lan istek yerine getirilememi?).

Hata günlü?ünde g?rünebilecek ileti ?e?itlili?i olduk?a fazlad?r. ?o?u yukar?daki ?rne?in benzeridir. Hata günlü?ü ayr?ca, CGI betiklerinin hata ay?klama ??kt?lar?n? da i?erir. Bir CGI beti?i taraf?ndan standart hataya (stderr) yaz?lan her türlü bilgi do?rudan hata günlü?üne kopyalan?r.

Hata günlü?üne ve eri?im günlü?üne %L dizgeci?i konularak eri?im günlü?ündeki girdi ile hata günlü?ündeki girdiyi ili?kilendirecek bir günlük girdisi kimli?i olu?turulabilir. mod_unique_id yüklüyse günlük girdisi kimli?i olarak onun e?siz istek kimli?i de kullan?l?r.

Sunucuyu denerken olas? sorunlara kar?? hata günlü?ünü sürekli izlemelisiniz. Unix sistemlerinde bunu ??yle bir komutla sa?layabilirsiniz:

tail -f error_log

top

Modüllere g?re günlükleme

LogLevel y?nergesi, günlük iletisinin üretilmesine sebep olan modüle ba?l? bir ?nem seviyesi belirleyebilmenizi sa?lar. Bu yolla sorun ya?ad???n?z modülle ilgili günlük musluklar?n? sonuna kadar a?abiliri ek olarak ilgilendi?iniz di?er modüllerle ilgili ayr?nt?lar? da edinebilirsiniz. ?zellikle mod_proxy veya mod_rewrite gibi modüllerde yap?lmak isteneni denerken neler olup bitti?ini ayr?nt?lar?yla bilmek istedi?iniz durumlarda kullan??l?d?r.

Bunu LogLevel y?nergesinde modülün ismini belirterek yapabilirsiniz:

LogLevel info rewrite:trace5

Bu sat?rla ana LogLevel info'ya ayarlan?rken mod_rewrite i?in musluk trace5 seviyesine kadar a??lmaktad?r.

Bu y?nerge, Apache HTTP Sunucusunun evvelki sürümlerinde mevcut olan RewriteLog gibi günlükleme modüllerinin yerini alm??t?r.
top

Eri?im Günlü?ü

Sunucu eri?im günlü?ü sunucu taraf?ndan i?leme al?nan tüm istekleri kaydeder. Eri?im günlü?ünün yeri ve i?eri?i CustomLog y?nergesi ile belirlenir. LogFormat y?nergesi ile günlük i?eri?ini ki?iselle?tirmek mümkündür. Bu b?lümde sunucunun bilgileri eri?im günlü?üne kaydetmesi i?in nas?l yap?land?r?laca??ndan bahsedilecektir.

?üphesiz, bilginin eri?im günlü?ünde saklanmas? günlük y?netiminde ilk ad?m? olu?turur. Sonraki ad?m yararl? istatistikleri üretmek i?in bu bilgiyi incelemektir. Günlük incelemesi bu belgenin kapsam?na dahil de?ildir ve asl?nda bu i?lem sunucunun yapt??? i?lerden biri de?ildir. Bu konu ve günlük incelemesi yapan uygulamalar hakk?nda daha ayr?nt?l? bilgi edinmek i?in dmoz.org'a bak?n?z.

Apache httpd’nin ?e?itli sürümlerinde eri?im günlüklerini denetlemek i?in kullan?lan di?er modüller ve y?nergeler aras?nda mod_log_referer, mod_log_agent modülleri ve TransferLog y?nergesi say?labilir. Art?k, daha eski tüm di?er y?nergelerin i?levselliklerini bir araya toplayan CustomLog y?nergesi kullan?lmaktad?r.

Eri?im günlü?ünün girdi bi?emi kolayca iste?e g?re düzenlenebilmektedir. Bi?emi belirtmekte kullan?lan bi?em dizgesi, C tarz? printf(1) bi?em dizgesini and?r?r. Sonraki b?lümlerde baz? ?rneklere yer verilmi?tir. Bi?em dizgesini olu?turan belirte?lerin tam listesi i?in mod_log_config belgesinin Günlük Girdilerinin Ki?iselle?tirilmesi b?lümüne bak?n?z.

Ortak Günlük Bi?emi (OGB)

Eri?im günlü?ü i?in s?kl?kla kullan?lan bir yap?land?rma:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

?lk sat?rda belli bir bi?em dizgesi i?in common diye bir takma ad tan?mlanmaktad?r. Bi?em dizgesi, sunucuya hangi belli bir bilgi par?alar?n? günlükleyece?ini s?yleyen % imli bi?em belirte?lerinden olu?ur. Bi?em dizgesine ayr?ca dizgesel sabitler de yerle?tirilebilir ve bunlar eri?im günlü?üne olduklar? gibi kopyalan?rlar. Bi?em dizgesi i?inde ?ift t?rnak karakteri (") bi?em dizgesini vaktinden ?nce sonland?rmamas? i?in ters b?lü ?izgisi ile ?ncelenmelidir. Bi?em dizgesi ayr?ca, sat?r sonlar?n? belirtmek i?in "\n" ve sekmeleri belirtmek i?in "\t" denetim karakterlerini de i?erebilir.

CustomLog y?nergesi evvelce tan?mlanm?? bir takma ad? kullanarak yeni bir günlük dosyas? tan?mlar. Eri?im günlü?ünün dosya ismi b?lü ?izgisi ile ba?lamad?k?a dosya yolunun ServerRoot de?erine g?reli oldu?u varsay?l?r.

Yukar?daki yap?land?rma günlük dosyas?na girdileri Ortak Günlük Bi?emi (Common Log Format) ad? verilen standart bi?emde yazar. Bu standart bi?em ba?ka HTTP sunucular? taraf?ndan da kullan?l?r ve ?o?u günlük inceleme yaz?l?m? taraf?ndan tan?n?r. Ortak Günlük Bi?eminde üretilen günlük girdileri ??yle g?rünür:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

Bu günlük girdisini par?a par?a a??klayal?m:

127.0.0.1 (%h)
Bu, sunucuya istek yapan istemcinin (uzak kona??n) IP adresidir. E?er HostnameLookups y?nergesine On de?eri atanm??sa sunucu bu IP adresi i?in DNS sorgusu yapacak ve IP adresi yerine buldu?u konak ismini yazmaya ?al??acakt?r. Bununla birlikte, bu i?lem sunucuyu epeyce yava?latt???ndan ?nerilmemektedir. Konak isimlerini saptamak i?in en iyisi günlük girdilerini logresolve gibi bir günlük i?lemcisinden ge?irmektir. Burada raporlanan IP adresi do?rudan istemcinin IP adresi olmayabilir. E?er sunucu ile istemci aras?nda bir vekil sunucu varsa bu IP adresi, vekil sunucunun IP adresi olacakt?r.
- (%l)
??kt?daki bir "tire" imi istenen bilgi par?as?n?n mevcut olmad??? anlam?na gelir. Bu durumda, mevcut olmayan bilgi istemci makine üzerinde identd taraf?ndan belirlenen istemcinin RFC 1413 kimli?idir. Bu bilgi olduk?a güvenilmezdir ve s?k?ca denetlenen i? a?lar haricinde hemen hemen asla kullan?lmamal?d?r. Apache, IdentityCheck y?nergesine On de?eri atanm?? olmad?k?a bu bilgiyi saptamaya u?ra?maz.
frank (%u)
Bu, belge iste?inde bulunan ki?inin HTTP kimlik do?rulamas?yla saptanan kullan?c? kimli?idir. Bu de?er CGI betiklerine REMOTE_USER ortam de?i?keni ile sa?lan?r. E?er istek i?in durum kodu 401 ise (a?a??ya bak?n?z) henüz kullan?c?n?n kimli?i do?rulanmam?? olaca??ndan bu de?ere güvenilmemelidir. E?er belge parola korumal? de?ilse günlü?ün bu k?sm? da yukar?daki gibi "-" olacakt?r.
[10/Oct/2000:13:55:36 -0700] (%t)
?ste?in al?nd??? tarih ve saat. Bi?emi ??yledir:

[gün/ay/y?l:saat:dakika:saniye dilim]
gün    = 2 hane
ay     = 3 harf
y?l    = 4 hane
saat   = 2 hane
dakika = 2 hane
saniye = 2 hane
dilim  = (`+' | `-') 4 hane

Günlük bi?em dizgesinde zaman g?sterim bi?emini %{bi?em}t ?eklinde belirtmek de mümkündür. Buradaki bi?em dizgesi, stardart C kütüphanesindeki strftime(3) i?levi i?in tan?mlanm?? bi?em belirte?leriyle veya desteklenen ?zel belirte?lerle olu?turulabilir. Ayr?nt?l? bilgi i?in mod_log_config bi?em dizgelerine bak?n.

"GET /apache_pb.gif HTTP/1.0" (\"%r\")
?stemciden al?nan istek sat?r?n?n ?ift t?rnaklar aras?nda g?sterilmesi istenmi?tir. ?stek sat?r? en yararl? bilgi par?alar?n? i?erir. Birincisi, istemci taraf?ndan kullan?lan y?ntem GET’mi?. ?kinci olarak istemci /apache_pb.gif dosyas?n? istemi? ve ü?üncü olarak istemci HTTP/1.0 protokolünü kullanm??. ?stek sat?r?n?n baz? par?alar?n? ba??ms?z olarak da günlüklemek mümkündür. ?rne?in, "%m %U%q %H" dizgesi, y?ntem, yol, sorgu dizgesi ve protokolü kaydedecektir; bu dizge "%r" bi?em belirtecinin tek ba??na yapt??? i?i yapar.
200 (%>s)
Bu, sunucunun istemciye g?nderdi?i durum kodudur. ?ste?in ba?ar?yla yerine getirilip getirilmedi?ini g?sterdi?i i?in bu bilgi ?ok de?erlidir. Durum kodu 2 ile ba?l?yorsa istek ba?ar?yla yerine getirilmi?tir, 3 ile ba?l?yorsa y?nlendirilmi?tir, 4 ile ba?l?yorsa istemci taraf?nda bir hata olu?mu?tur, 5 ile ba?l?yorsa sunucuda bir hata olu?mu?tur. Olas? hata kodlar?n?n tam listesi RFC2616 Hiper Metin Aktar?m Protokolünün 10. b?lümünde bulunabilir.
2326 (%b)
Son par?a istemciye d?ndürülen nesnenin yan?t ba?l??? hari? uzunlu?udur. E?er istemciye bir i?erik d?ndürülmemi?se bu de?er "-" olacakt?r. Bunun yerine günlü?e "0" yazd?rmak i?in %B belirtecini kullan?n?z.

Birle?ik Günlük Bi?emi

S?kl?kla kullan?lan di?er bir bi?em dizgesi Birle?ik Günlük Bi?emi (Combined Log Format) olup ??yle kullan?labilir:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined

Bu bi?em ilaveten 2 alan i?ermesi d???nda Ortak Günlük Bi?emi ile ayn?d?r. ?lave alanlar?n ikisi de %{ba?l?k}i bi?eminde olup buradaki ba?l?k, HTTP iste?indeki ba?l?k alanlar?ndan biridir. Bu bi?emin kullan?ld??? bir eri?im günlü?ü girdisi ??yle olurdu:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

Ek alanlar:

"http://www.example.com/start.html" (\"%{Referer}i\")
HTTP istek ba?l??? "Referer". ?stemcinin raporlad??? iste?in kaynakland??? URI. (Bu iste?in yap?lmas?n? sa?layan ba?lant?y? i?eren URL veya istek bir sayfan?n bile?enleri ile ilgiliyse istenen sayfan?n URL’si olabilir.)
"Mozilla/4.08 [en] (Win98; I ;Nav)" (\"%{User-agent}i\")
Taray?c? kimli?ini i?eren HTTP istek ba?l???. Bu istemcinin taray?c?s?n?n raporlad??? kendi tan?t?m bilgisidir.

?ok Say?da Eri?im Günlü?ü

Yap?land?rma dosyas?nda ?ok say?da CustomLog y?nergesi kullanarak ?ok say?da eri?im günlü?ü kolayca olu?turulabilir. ?rne?in a?a??daki y?nergelerle 3 tane eri?im günlü?ü olu?turulacakt?r. ?lki temel OGB bilgisini i?erirken di?er ikisi iste?in kaynakland??? yeri ve taray?c? kimli?ini i?erir. Son iki CustomLog sat?r? ayr?ca, ReferLog ve AgentLog y?nergelerinin etkilerinin nas?l taklit edilece?ini de g?stermektedir.

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
CustomLog logs/referer_log "%{Referer}i -> %U"
CustomLog logs/agent_log "%{User-agent}i"

Bu ?rnek ayr?ca, LogFormat y?nergesi ile bir takma ad tan?mlaman?n ?art olmad???n? da g?stermektedir. Günlük bi?emi do?rudan CustomLog y?nergesinde belirtilebilir.

?arta Ba?l? Günlükler

Baz? durumlarda istemcinin yapt??? iste?e ba?l? olarak eri?im günlü?ünde belli girdilerin d??lanmas? gerekebilir. Bu, ortam de?i?kenleri sayesinde kolayca yerine getirilebilir. ?nce iste?in belli ko?ullar? sa?lad???n? belirten bir ortam de?i?keni atamas? yap?l?r. Bu i?lem SetEnvIf y?nergesi ile yap?l?r. Sonra da, ortam de?i?kenine ba?l? olarak isteklerin günlü?e dahil edilip edilmeyece?i CustomLog y?nergesinin env= deyimi kullan?larak belirtilir. Baz? ?rnekler:

# yerel konaktan kaynaklanan istekleri imleyelim
SetEnvIf Remote_Addr "127\.0\.0\.1" kaydetme
# robots.txt dosyas? isteklerini imleyelim
SetEnvIf Request_URI "^/robots\.txt$" kaydetme
# Kalanlar? günlü?e kaydedelim
CustomLog logs/access_log common env=!kaydetme

Ba?ka bir ?rnek olarak, Türk?e belge isteklerini bir dosyaya di?er dillerdeki istekleri ba?ka bir dosyaya kaydedelim.

SetEnvIf Accept-Language "tr" turkce
CustomLog logs/turkce_log common env=turkce
CustomLog logs/diger_diller_log common env=!turkce

Bir arabellekleme senaryosuna arabelle?in verimli kullan?l?p kullan?lmad???n? bilmek isteyelim. Bu basit?e ??yle yap?labilir:

SetEnv CACHE_MISS 1
LogFormat "%h %l %u %t "%r " %>s %b %{CACHE_MISS}e" common-cache
CustomLog logs/access_log common-cache

mod_cache ?nce mod_env modülünü ?al??t?racak ve ba?ar?l? olundu?u takdirde i?eri?i onsuz teslim edecektir. Bu durumda arabellek kayb? 1 olarak günlüklenirken arabellek sunumu - olarak günlüklenecektir.

env= s?zdizimine ek olarak, LogFormat HTTP yan?t kodudaki ko?ul de?erlerini günlüklemeyi de destekler:

LogFormat "%400,501{User-agent}i" browserlog
LogFormat "%!200,304,302{Referer}i" refererlog

Bu ?rnekte, HTTP durum kodu 400 veya 501 ise User-agent ba?l??? günlüklenecektir. Aksi takdirde, günlü?e bir "-" yaz?lacakt?r. Benzer ?ekilde ikinci ?rnekte, HTTP durum kodu 200, 204 veya 302 de?ilse (durum kodlar?n?n ?ncesindeki "!" imine dikkat) Referer ba?l??? günlüklenecektir.

Ko?ula ba?l? günlük kayd?n?n ?ok esnek ve gü?lü olabilece?ini g?stermi? olsak da günlük i?eri?ini denetlemenin tek yolu bu de?ildir. Günlük dosyalar? sunucu etkinli?ini eksiksiz olarak kaydedebildikleri takdirde daha yararl? olurlar. Günlük dosyalar?n? sonradan i?leme tabi tutarak istenmeyen girdileri kald?r?lm?? bir kopya almak hem kolay hem de daha yararl?d?r.

top

Günlük ?evrimi

Yükü a??r sunucularda günlük dosyalar?na kaydedilen bilginin miktar? ?ok büyük boyutlara ula?abilir. 10.000 istek i?eren bir eri?im günlü?ü yakla??k 1MB yer kaplar. Etkin günlük dosyas?n? belirli aral?klarla de?i?tirmek veya silmek gerekebilir. Apache httpd ?al???rken dosyay? sürekli a??k tuttu?u ve yazd??? i?in bu i?lem sunucu ?al???rken yap?lamaz. Bu bak?mdan, günlük dosyas? de?i?tirildikten veya silindikten sonra yeni dosyan?n a??lmas? i?in sunucunun yeniden ba?lat?lmas? gerekir.

Nazik?e yeniden ba?latmak suretiyle sunucunun, mevcut ve bekleyen ba?lant?lar? kaybetmeden yeni günlük dosyalar?n? a?mas? sa?lanabilir. Bununla birlikte, bu i?lem s?ras?nda sunucunun eski isteklere sunumu bitirene kadar eski günlük dosyalar?na yazmaya devam edebilmesi gerekir. Bu bak?mdan, yeniden ba?latman?n ard?ndan eski günlük dosyalar? üzerinde bir i?lem yapmadan ?nce biraz beklemek gerekir. Günlük dosyalar?n? d?ndürürken kullan?lan senaryolarda genellikle eski günlük dosyalar? yer kazanmak i?in s?k??t?r?l?rlar:

mv access_log access_log.old
mv error_log error_log.old
apache2ctl graceful
sleep 600
gzip access_log.old error_log.old

Günlük ?evrimi yapman?n ba?ka bir yolu da sonraki b?lümde a??kland??? gibi borulu günlükler kullanmakt?r.

top

Borulu Günlükler

Apache httpd hata ve eri?im günlüklerini do?rudan bir dosyaya yazmak yerine bir boru üzerinden ba?ka bir sürece yazabilir. Bu yetenek ana sunucuya herhangi bir kod eklemeksizin günlükleme esnekli?ini ?a??rt?c? derecede artt?r?r. Günlükler boruya yaz?lmak istenirse dosya ismini boru karakteriyle ("|") de?i?tirip ard?na günlük girdilerini standart girdisinden kabul edecek program?n ismini eklemek yeterlidir. Apache httpd ba?lat?ld??? zaman borulu günlük i?lemini de ba?latacakt?r. E?er sunucu ?al???rken günlükleri kabul eden süre? ??kerse Apache httpd bu program? yeniden ba?lat?r. (Bu son ?zelli?i sebebiyle bu tekni?e “güvenilir borulu günlükleme” ad?n? veriyoruz.)

Borulu günlük süre?leri ana Apache httpd süreci taraf?ndan ba?lat?l?r ve bu süre?ler ana Apache httpd sürecinin kullan?c? kimli?ini miras al?rlar. Yani borulu günlükleme programlar? asl?nda root taraf?ndan ?al??t?r?lm?? gibi olur. Bu bak?mdan, bu programlar? basit ve güvenilir k?lmak ?ok ?nemlidir.

Borulu günlüklerin ?nemli kullan?m alanlar?ndan biri de sunucuyu yeniden ba?latmak gerekmeksizin günlük ?evrimini mümkün k?lmakt?r. Apache HTTP sunucusu bu ama?la kullan?lmak üzere rotatelogs diye bir program i?erir. ?rne?in, günlükleri 24 saatte bir d?ndürmek isterseniz bunu ??yle yapabilirsiniz:

CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common

Borunun di?er ucundaki süreci ba?latacak komutun t?rnak i?ine al?nd???na dikkat ediniz. Bu ?rnekler eri?im günlü?ü i?in verilmi?se de ayn? teknik hata günlü?ü i?in de kullan?labilir.

Hari?ten bir uygulama olarak cronolog isminde buna benzer ancak ?ok daha esnek bir program daha vard?r.

Borulu günlükler de ?arta ba?l? günlükleme kadar gü?lü olmakla beraber ?evrimd??? ard?l i?lemler gibi daha basit ??zümler i?in kullan?lmamal?d?r.

?ntan?ml? olarak borulu günlük süreci bir kabuk kullanmadan ?al??t?r?l?r. Kabuk kullanarak (genelde /bin/sh -c ile) yap?lmak istenirse "|" yerine "|$" kullan?l?r:

# Kabuk kullanarak "rotatelogs" ?al??t?rmak
CustomLog "|$/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common

Bu, Apache 2.2 i?in ?ntan?ml? davran??t?. Kabuk ?zelliklerine ba?l? olarak, yeniden ba?latma s?ras?ndaki sinyal i?leme sorunlar? ve günlük borulama uygulamas?n?n ya?am süresi i?in ek bir kabuk süreci ile sonu?lanabilir. Apache 2.2 ile uyumluluk a??s?ndan "||" g?sterimi de desteklenmekte olup "|" kullan?m?na e?de?erdir.

Windows'ta y???n alan?

Windows'ta ?ok say?da borulu günlükleme süreci ?al???rken ve ?zellikle HTTPD bir hizmet olarak ?al???yorsa sorunlar ba? g?sterebilir. Bunun ba?l?ca sebebi masaüstü y???n alan?n?n (heap) d???na ta??lmas?d?r. Her hizmete ayr?lan masüstü y???n alan?, kay?t defterindeki HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\SubSystems\Windows kayd?ndaki ü?üncü de?i?tirge olan SharedSection de?eridir. Bu de?eri de?i?tirirken ?ok dikkatli olun; bu, Windows kay?t defterini de?i?tirirken verilen normal uyar?lardand?r, fakat e?er bu de?er ?ok yüksek olursa masaüstü y???n alan?n?n tükenebilece?i dikkate al?nmal?d?r.

top

Sanal Konaklar

Bir sunucu ?ok say?da sanal konak ile hizmet sunarken bunlar?n günlük kay?tlar? i?in ?e?itli se?enekler mevcuttur. ?lk se?enekte, sanki sunucu tek bir konakla hizmet sunuyormu? gibi günlük kayd? yap?l?r. Günlükleme y?nergelerini <VirtualHost> b?lümlerinin d???na, ana sunucu ba?lam?na yerle?tirerek tüm isteklerin ayn? eri?im ve hata günlü?üne yaz?lmas?n? sa?lamak olas?d?r. Bu teknik, tek tek sanal konaklar i?in kolayca istatistik toplamaya izin vermez.

E?er CustomLog veya ErrorLog y?nergesi bir <VirtualHost> b?lümüne yerle?tirilirse bu sanal kona?a bütün eri?imler veya hatalar belirtilen dosyaya günlüklenecektir. B?yle günlükleme y?nergeleri i?ermeyen sanal konaklar?n günlükleri hala ana sunucunun hata ve eri?im günlüklerine yaz?lmaya devam edecektir. Bu teknik az say?da sanal konak bar?nd?ran sunucular i?in ?ok kullan??l?d?r. Fakat sanal konak say?s? ?ok fazlaysa bu teknikle günlük dosyalar?n? y?netmek ?ok karma??k bir hal alabilir. Ayr?ca, yetersiz dosya tan?t?c?s? sorunlar?yla ?ok s?k kar??la??labilir.

Eri?im günlükleri i?in ?ok az bir fedakarl?kla ?ok iyi bir ??züm vard?r. Günlük bi?emine sanal konaklarla ilgili bilgi eklemek suretiyle tüm konaklar?n ayn? günlük dosyas?n? kullanmalar? olas?d?r. B?ylece günlük dosyas? sonradan her sanal konak i?in ayr? bir dosya olu?turmak üzere ayr??t?r?labilir. ?rne?in, bu i?lem i?in ?u y?nergeler kullan?l?yor olsun:

LogFormat "%v %l %u %t \"%r\" %>s %b" ortaksankon
CustomLog logs/access_log ortaksankon

%v belirteci iste?i sunan sanal kona??n ismini günlü?e yazmak i?in kullan?l?r. Daha sonra split-logfile gibi bir program kullanarak, bu dosyadan her sanal konak i?in ayr? birer dosya elde edilebilir.

top

Di?er Günlük Dosyalar?

G?nderilen ve al?nan bayt say?s?n?n günlüklenmesi

mod_logio modülü LogFormat y?nergesinde kullan?lan bi?em belirte?lerine al?nan ve g?nderilen bayt say?lar? i?in iki belirte? (%I ve %O) ekler.

Adli Günlük

mod_log_forensic modülü istemci isteklerinin kan?t olarak kullan?lmak amac?yla günlüklenmesini sa?lar. Günlükleme her istek i?in iste?e hizmet sunmadan ?nce ve sonra olmak üzere iki defa yap?l?r. B?ylece günlük dosyas?nda ba?ar?l? her istek i?in iki sat?r bulunur. Adli günlükleme ?ok s?k? kurallara tabi olup ki?iselle?tirilemez. Güvenlik ve hata ay?klama arac? olarak yararl? de?ildir.

PID Dosyas?

Apache httpd ba?lat?ld???nda, ana httpd sürecinin kimli?i (PID) logs/httpd.pid dosyas?na kaydedilir. Bu dosyan?n ismi PidFile y?nergesi ile de?i?tirilebilir. Bu süre? kimli?i sistem y?neticisi taraf?ndan ana sürece sinyal g?ndererek artalan sürecini sonland?rmak veya yeniden ba?latmak i?in kullan?l?r. Windows üzerinde bu i?lem i?in -k komut sat?r? se?ene?i kullan?l?r. Bu konuda daha ayr?nt?l? bilgi edinmek i?in Durdurma ve Yeniden Ba?latma belgesine bak?n?z.

Betik Günlü?ü

ScriptLog y?nergesi CGI betiklerinin girdi ve ??kt?lar?n? kaydetmenizi mümkün k?lmak suretiyle hata ay?klamaya yard?mc? olur. Bu sadece deneysel ama?la kullan?lmal?, as?l sunucuya uygulanmamal?d?r. mod_cgi belgesinde daha fazla bilgi bulunabilir.

Mevcut Diller:  en  |  fr  |  ja  |  ko  |  tr 

top

Yorum

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
白小姐透特期期