github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/logs.html.tr.utf8 (about) 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head> 4 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> 5 <!-- 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 This file is generated from xml source: DO NOT EDIT 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 --> 10 <title>Günlük Dosyaları - Apache HTTP Sunucusu Sürüm 2.2</title> 11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 13 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" /> 14 <script src="./style/scripts/prettify.min.js" type="text/javascript"> 15 </script> 16 17 <link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/logs.html" rel="canonical" /></head> 18 <body id="manual-page"><div id="page-header"> 19 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p> 20 <p class="apache">Apache HTTP Sunucusu Sürüm 2.2</p> 21 <img alt="" src="./images/feather.gif" /></div> 22 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> 23 <div id="path"> 24 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="./">Sürüm 2.2</a></div><div id="page-content"><div class="retired"><h4>Please note</h4> 25 <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p> 26 <p>You may follow <a href="http://httpd.apache.org/docs/current/logs.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Günlük Dosyaları</h1> 27 <div class="toplang"> 28 <p><span>Mevcut Diller: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English"> en </a> | 29 <a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 30 <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 31 <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 32 <a href="./tr/logs.html" title="Türkçe"> tr </a></p> 33 </div> 34 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div> 35 36 <p>Bir HTTP sunucusunu verimli şekilde yönetebilmek için oluşabilecek 37 sorunlardan başka sunucunun başarımı ve etkinliği hakkında da bazı geri 38 bildirimler almak gerekir. Apache HTTP Sunucusu çok kapsamlı ve esnek 39 bir günlükleme yeteneğine sahiptir. Bu belgede sunucunun günlükleme 40 yeteneğini nasıl yapılandıracağınızdan ve günlük kayıtlarını nasıl 41 yorumlayacağınızdan bahsedilecektir.</p> 42 </div> 43 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#security">Güvenlik Uyarısı</a></li> 44 <li><img alt="" src="./images/down.gif" /> <a href="#errorlog">Hata Günlüğü</a></li> 45 <li><img alt="" src="./images/down.gif" /> <a href="#accesslog">Erişim Günlüğü</a></li> 46 <li><img alt="" src="./images/down.gif" /> <a href="#rotation">Günlük Çevrimi</a></li> 47 <li><img alt="" src="./images/down.gif" /> <a href="#piped">Borulu Günlükler</a></li> 48 <li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Sanal Konaklar</a></li> 49 <li><img alt="" src="./images/down.gif" /> <a href="#other">Diğer Günlük Dosyaları</a></li> 50 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> 51 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 52 <div class="section"> 53 <h2><a name="security" id="security">Güvenlik Uyarısı</a></h2> 54 55 56 <p>Apache’nin günlük dosyalarını yazdığı dizine yazabilen birinin sunucuyu 57 başlatan kullanıcı kimliğine (bu genellikle root olur) erişim 58 kazanabileceğine hemen hemen kesin gözüyle bakılabilir. Sonuçlarının 59 neler olacağını kestiremiyorsanız günlüklerin yazıldığı dizinde <em>hiç 60 kimseye</em> yazma erişimi vermeyin; ayrıntılı bilgi için <a href="misc/security_tips.html">güvenlik ipuçları</a> belgesine 61 bakınız.</p> 62 63 <p>Buna ilaveten, günlük dosyaları istemci tarafından sağlanmış bilgiler 64 de içerebilir. Bu nedenle, kötü niyetli istemcilerin günlük dosyalarına 65 denetim karakterleri girmeleri olasılığına karşı ham günlükler ele 66 alınırken dikkatli olunmalıdır.</p> 67 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 68 <div class="section"> 69 <h2><a name="errorlog" id="errorlog">Hata Günlüğü</a></h2> 70 71 <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td /><td><ul><li><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table> 72 73 <p>İsmi ve yeri <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> yönergesi 74 ile belirtilen sunucu hata günlüğü, en önemli günlük dosyasıdır. Apache 75 httpd tarafından istekler işlenirken saptanan hatalar ve tanı bilgileri 76 bu dosyaya gönderilir. Sunucuyu başlatırken veya sunucu çalışırken bir 77 sorunla karşılaşıldığında, neyin yanlış gittiğini öğrenmek için 78 bakılacak ilk yer burasıdır. Günlük kaydı çoğunlukla sorunun nasıl 79 düzeltileceği ile ilgili ayrıntıları da içerir.</p> 80 81 <p>Hata günlüğü normal olarak bir dosyaya yazılır (genellikle, dosyanın 82 ismi Unix sistemlerinde <code>error_log</code>, Windows ve OS/2’de ise 83 <code>error.log</code>’dur). Ayrıca, Unix sistemlerinde sunucunun 84 hataları <code>syslog</code>’a veya <a href="#piped">borulamak suretiyle 85 bir programa</a> aktarması da mümkündür.</p> 86 87 <p>Hata günlüğünün biçemi anlaşılır olup içeriği kısmen serbestçe 88 belirlenir. Çoğu hata günlüğü girdisinde bulunan belli başlı bilgiler 89 vardır. Örnek tipik bir hata iletisi içermektedir:</p> 90 91 <div class="example"><p><code> 92 [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] 93 client denied by server configuration: 94 /export/home/live/ap/htdocs/test 95 </code></p></div> 96 97 <p>Günlük girdisinin ilk öğesi iletinin yazıldığı tarih ve saatten oluşur. 98 İkinci öğe raporlanan bilginin önem derecesini belirtir. Hata günlüğüne 99 gönderilecek hata türlerinin önem seviyesini belirlemek için <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> yönergesi kullanılır. Üçüncü öğe 100 hatanın üretilmesine sebep olan istemcinin IP adresini içerir. Kalanı 101 iletinin kendisidir (duruma bakılırsa sunucu istemci erişimini reddetmek 102 üzere yapılandırılmış). Sunucu istenen belgenin (belge yolunu değil) 103 dosya sistemindeki yolunu raporlamıştır.</p> 104 105 <p>Hata günlüğünde görünebilecek ileti çeşitliliği oldukça fazladır. Çoğu 106 yukarıdaki örneğin benzeridir. Hata günlüğü ayrıca, CGI betiklerinin 107 hata ayıklama çıktılarını da içerir. Bir CGI betiği tarafından standart 108 hataya (<code>stderr</code>) yazılan her türlü bilgi doğrudan hata 109 günlüğüne kopyalanır.</p> 110 111 <p>Hata günlüğünü bilgi ekleyerek veya kaldırarak kişiselleştirmek 112 mümkündür. Bununla birlikte, hata günlüğü girdilerinin ilgili olduğu 113 isteklerin <a href="#accesslog">erişim günlüğünde</a> de girdileri 114 vardır. Örneğin, yukarıdaki girdi, erişim günlüğünde 403 durum kodlu bir 115 girdiyle ilgilidir. Erişim günlüğünü de kişiselleştirmek mümkün 116 olduğundan hata durumlarında bu günlük dosyasını da kullanarak daha 117 fazla bilgi sağlayabilirsiniz.</p> 118 119 <p>Sunucuyu denerken olası sorunlara karşı hata günlüğünü sürekli 120 izlemelisiniz. Unix sistemlerinde bunu şöyle bir komutla 121 sağlayabilirsiniz:</p> 122 123 <div class="example"><p><code> 124 tail -f error_log 125 </code></p></div> 126 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 127 <div class="section"> 128 <h2><a name="accesslog" id="accesslog">Erişim Günlüğü</a></h2> 129 130 131 <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li></ul></td></tr></table> 132 133 <p>Sunucu erişim günlüğü sunucu tarafından işleme alınan tüm istekleri 134 kaydeder. Erişim günlüğünün yeri ve içeriği <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi ile belirlenir. 135 <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesi ile 136 günlük içeriğini kişiselleştirmek mümkündür. Bu bölümde sunucunun 137 bilgileri erişim günlüğüne kaydetmesi için nasıl yapılandırılacağından 138 bahsedilecektir.</p> 139 140 <p>Şüphesiz, bilginin erişim günlüğünde saklanması günlük yönetiminde ilk 141 adımı oluşturur. Sonraki adım yararlı istatistikleri üretmek için bu 142 bilgiyi incelemektir. Günlük incelemesi bu belgenin kapsamına dahil 143 değildir ve aslında bu işlem sunucunun yaptığı işlerden biri değildir. 144 Bu konu ve günlük incelemesi yapan uygulamalar hakkında daha ayrıntılı 145 bilgi edinmek için <a href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/">dmoz.org</a> veya <a href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">Yahoo</a>’ya bakınız.</p> 146 147 <p>Apache httpd’nin çeşitli sürümlerinde erişim günlüklerini denetlemek 148 için kullanılan diğer modüller ve yönergeler arasında mod_log_referer, 149 mod_log_agent modülleri ve <code>TransferLog</code> yönergesi 150 sayılabilir. Artık, daha eski tüm diğer yönergelerin işlevselliklerini 151 bir araya toplayan <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi kullanılmaktadır.</p> 152 153 <p>Erişim günlüğünün girdi biçemi kolayca isteğe göre 154 düzenlenebilmektedir. Biçemi belirtmekte kullanılan biçem dizgesi, C 155 tarzı printf(1) biçem dizgesini andırır. Sonraki bölümlerde bazı 156 örneklere yer verilmiştir. Biçem dizgesini oluşturan belirteçlerin tam 157 listesi için <code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code> belgesinin <a href="mod/mod_log_config.html#formats">Günlük Girdilerinin 158 Kişiselleştirilmesi</a> bölümüne bakınız.</p> 159 160 <h3><a name="common" id="common">Ortak Günlük Biçemi (OGB)</a></h3> 161 162 163 <p>Erişim günlüğü için sıklıkla kullanılan bir yapılandırma:</p> 164 165 <div class="example"><p><code> 166 LogFormat "%h %l %u %t \"%r\" %>s %b" common<br /> 167 CustomLog logs/access_log common 168 </code></p></div> 169 170 <p>İlk satırda belli bir biçem dizgesi için <code>common</code> diye bir 171 <em>takma ad</em> tanımlanmaktadır. Biçem dizgesi, sunucuya hangi 172 belli bir bilgi parçalarını günlükleyeceğini söyleyen % imli biçem 173 belirteçlerinden oluşur. Biçem dizgesine ayrıca dizgesel sabitler de 174 yerleştirilebilir ve bunlar erişim günlüğüne oldukları gibi 175 kopyalanırlar. Biçem dizgesi içinde çift tırnak karakteri (") biçem 176 dizgesini vaktinden önce sonlandırmaması için ters bölü çizgisi ile 177 öncelenmelidir. Biçem dizgesi ayrıca, satır sonlarını belirtmek için 178 "<code>\n</code>" ve sekmeleri belirtmek için "<code>\t</code>" 179 denetim karakterlerini de içerebilir.</p> 180 181 <p><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi 182 evvelce tanımlanmış bir <em>takma adı</em> kullanarak yeni bir günlük 183 dosyası tanımlar. Erişim günlüğünün dosya ismi bölü çizgisi ile 184 başlamadıkça dosya yolunun <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> değerine göreli olduğu varsayılır.</p> 185 186 <p>Yukarıdaki yapılandırma günlük dosyasına girdileri Ortak Günlük 187 Biçemi (Common Log Format) adı verilen standart biçemde yazar. 188 Bu standart biçem başka HTTP sunucuları tarafından da kullanılır ve 189 çoğu günlük inceleme yazılımı tarafından tanınır. Ortak Günlük 190 Biçeminde üretilen günlük girdileri şöyle görünür:</p> 191 192 <div class="example"><p><code> 193 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET 194 /apache_pb.gif HTTP/1.0" 200 2326 195 </code></p></div> 196 197 <p>Bu günlük girdisini parça parça açıklayalım:</p> 198 199 <dl> 200 <dt><code>127.0.0.1</code> (<code>%h</code>)</dt> 201 202 <dd>Bu, sunucuya istek yapan istemcinin (uzak konağın) IP adresidir. 203 Eğer <code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code> 204 yönergesine <code>On</code> değeri atanmışsa sunucu bu IP adresi 205 için DNS sorgusu yapacak ve IP adresi yerine bulduğu konak ismini 206 yazmaya çalışacaktır. Bununla birlikte, bu işlem sunucuyu epeyce 207 yavaşlattığından önerilmemektedir. Konak isimlerini saptamak için en 208 iyisi günlük girdilerini <code class="program"><a href="./programs/logresolve.html">logresolve</a></code> gibi bir 209 günlük işlemcisinden geçirmektir. Burada raporlanan IP adresi 210 doğrudan istemcinin IP adresi olmayabilir. Eğer sunucu ile istemci 211 arasında bir vekil sunucu varsa bu IP adresi, vekil sunucunun IP 212 adresi olacaktır.</dd> 213 214 <dt><code>-</code> (<code>%l</code>)</dt> 215 216 <dd>Çıktıdaki bir "tire" imi istenen bilgi parçasının mevcut olmadığı 217 anlamına gelir. Bu durumda, mevcut olmayan bilgi istemci makine 218 üzerinde <code>identd</code> tarafından belirlenen istemcinin RFC 219 1413 kimliğidir. Bu bilgi oldukça güvenilmezdir ve sıkıca denetlenen 220 iç ağlar haricinde hemen hemen asla kullanılmamalıdır. Apache, 221 <code class="directive"><a href="./mod/mod_ident.html#identitycheck">IdentityCheck</a></code> yönergesine 222 <code>On</code> değeri atanmış olmadıkça bu bilgiyi saptamaya 223 uğraşmaz.</dd> 224 225 <dt><code>frank</code> (<code>%u</code>)</dt> 226 227 <dd>Bu, belge isteğinde bulunan kişinin HTTP kimlik doğrulamasıyla 228 saptanan kullanıcı kimliğidir. Bu değer CGI betiklerine 229 <code>REMOTE_USER</code> ortam değişkeni ile sağlanır. Eğer istek 230 için durum kodu 401 ise (aşağıya bakınız) henüz kullanıcının kimliği 231 doğrulanmamış olacağından bu değere güvenilmemelidir. Eğer belge 232 parola korumalı değilse günlüğün bu kısmı da yukarıdaki gibi 233 "<code>-</code>" olacaktır.</dd> 234 235 <dt><code>[10/Oct/2000:13:55:36 -0700]</code> 236 (<code>%t</code>)</dt> 237 238 <dd>İsteğin alındığı tarih ve saat. Biçemi şöyledir: 239 240 <p class="indent"> 241 <code>[gün/ay/yıl:saat:dakika:saniye dilim]<br /> 242 gün = 2 hane<br /> 243 ay = 3 harf<br /> 244 yıl = 4 hane<br /> 245 saat = 2 hane<br /> 246 dakika = 2 hane<br /> 247 saniye = 2 hane<br /> 248 dilim = (`+' | `-') 4 hane</code> 249 </p> 250 Günlük biçem dizgesinde zaman gösterim biçemini 251 <code>%{<em>biçem</em>}t</code> şeklinde belirtmek de mümkündür. 252 Buradaki <code><em>biçem</em></code> dizgesi, stardart C 253 kütüphanesindeki <code>strftime(3)</code> işlevi için tanımlanmış 254 biçem belirteçleriyle oluşturulabilir. 255 </dd> 256 257 <dt><code>"GET /apache_pb.gif HTTP/1.0"</code> 258 (<code>\"%r\"</code>)</dt> 259 260 <dd>İstemciden alınan istek satırının çift tırnaklar arasında 261 gösterilmesi istenmiştir. İstek satırı en yararlı bilgi parçalarını 262 içerir. Birincisi, istemci tarafından kullanılan yöntem 263 <code>GET</code>’miş. İkinci olarak istemci 264 <code>/apache_pb.gif</code> dosyasını istemiş ve üçüncü olarak 265 istemci <code>HTTP/1.0</code> protokolünü kullanmış. İstek satırının 266 bazı parçalarını bağımsız olarak da günlüklemek mümkündür. Örneğin, 267 "<code>%m %U%q %H</code>" dizgesi, yöntem, yol, sorgu dizgesi ve 268 protokolü kaydedecektir; bu dizge "<code>%r</code>" biçem 269 belirtecinin tek başına yaptığı işi yapar.</dd> 270 271 <dt><code>200</code> (<code>%>s</code>)</dt> 272 273 <dd>Bu, sunucunun istemciye gönderdiği durum kodudur. İsteğin 274 başarıyla yerine getirilip getirilmediğini gösterdiği için bu bilgi 275 çok değerlidir. Durum kodu 2 ile başlıyorsa istek başarıyla yerine 276 getirilmiştir, 3 ile başlıyorsa yönlendirilmiştir, 4 ile başlıyorsa 277 istemci tarafında bir hata oluşmuştur, 5 ile başlıyorsa sunucuda bir 278 hata oluşmuştur. Olası hata kodlarının tam listesi <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">RFC2616 Hiper 279 Metin Aktarım Protokolü</a>nün 10. bölümünde bulunabilir.</dd> 280 281 <dt><code>2326</code> (<code>%b</code>)</dt> 282 283 <dd>Son parça istemciye döndürülen nesnenin yanıt başlığı hariç 284 uzunluğudur. Eğer istemciye bir içerik döndürülmemişse bu değer 285 "<code>-</code>" olacaktır. Bunun yerine günlüğe "<code>0</code>" 286 yazdırmak için <code>%B</code> belirtecini kullanınız.</dd> 287 </dl> 288 289 290 <h3><a name="combined" id="combined">Birleşik Günlük Biçemi</a></h3> 291 292 293 <p>Sıklıkla kullanılan diğer bir biçem dizgesi Birleşik Günlük Biçemi 294 (Combined Log Format) olup şöyle kullanılabilir:</p> 295 296 <div class="example"><p><code> 297 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" 298 \"%{User-agent}i\"" combined<br /> 299 CustomLog log/access_log combined 300 </code></p></div> 301 302 <p>Bu biçem ilaveten 2 alan içermesi dışında Ortak Günlük Biçemi ile 303 aynıdır. İlave alanların ikisi de <code>%{<em>başlık</em>}i</code> 304 biçeminde olup buradaki <code><em>başlık</em></code>, HTTP isteğindeki 305 başlık alanlarından biridir. Bu biçemin kullanıldığı bir erişim 306 günlüğü girdisi şöyle olurdu:</p> 307 308 <div class="example"><p><code> 309 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET 310 /apache_pb.gif HTTP/1.0" 200 2326 311 "http://www.example.com/start.html" "Mozilla/4.08 [en] 312 (Win98; I ;Nav)" 313 </code></p></div> 314 315 <p>Ek alanlar:</p> 316 317 <dl> 318 <dt><code>"http://www.example.com/start.html"</code> 319 (<code>\"%{Referer}i\"</code>)</dt> 320 321 <dd>HTTP istek başlığı "Referer". İstemcinin raporladığı isteğin 322 kaynaklandığı URI. (Bu isteğin yapılmasını sağlayan bağlantıyı 323 içeren URL veya istek bir sayfanın bileşenleri ile ilgiliyse istenen 324 sayfanın URL’si olabilir.)</dd> 325 326 <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code> 327 (<code>\"%{User-agent}i\"</code>)</dt> 328 329 <dd>Tarayıcı kimliğini içeren HTTP istek başlığı. Bu istemcinin 330 tarayıcısının raporladığı kendi tanıtım bilgisidir.</dd> 331 </dl> 332 333 334 <h3><a name="multiple" id="multiple">Çok Sayıda Erişim Günlüğü</a></h3> 335 336 337 <p>Yapılandırma dosyasında çok sayıda <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi kullanarak çok 338 sayıda erişim günlüğü kolayca oluşturulabilir. Örneğin aşağıdaki 339 yönergelerle 3 tane erişim günlüğü oluşturulacaktır. İlki temel OGB 340 bilgisini içerirken diğer ikisi isteğin kaynaklandığı yeri ve tarayıcı 341 kimliğini içerir. Son iki <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> satırı ayrıca, <code>ReferLog</code> ve 342 <code>AgentLog</code> yönergelerinin etkilerinin nasıl taklit 343 edileceğini de göstermektedir.</p> 344 345 <div class="example"><p><code> 346 LogFormat "%h %l %u %t \"%r\" %>s %b" common<br /> 347 CustomLog logs/access_log common<br /> 348 CustomLog logs/referer_log "%{Referer}i -> %U"<br /> 349 CustomLog logs/agent_log "%{User-agent}i" 350 </code></p></div> 351 352 <p>Bu örnek ayrıca, <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesi ile bir takma ad tanımlamanın şart 353 olmadığını da göstermektedir. Günlük biçemi doğrudan <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinde 354 belirtilebilir.</p> 355 356 357 <h3><a name="conditional" id="conditional">Şarta Bağlı Günlükler</a></h3> 358 359 360 <p>Bazı durumlarda istemcinin yaptığı isteğe bağlı olarak erişim 361 günlüğünde belli girdilerin dışlanması gerekebilir. Bu, <a href="env.html">ortam değişkenleri</a> sayesinde kolayca yerine 362 getirilebilir. Önce isteğin belli koşulları sağladığını belirten bir 363 ortam değişkeni ataması yapılır. Bu işlem <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> yönergesi ile yapılır. 364 Sonra da, ortam değişkenine bağlı olarak isteklerin günlüğe dahil 365 edilip edilmeyeceği <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinin 366 <code>env=</code> deyimi kullanılarak belirtilir. Bazı örnekler:</p> 367 368 <div class="example"><p><code> 369 # yerel konaktan kaynaklanan istekleri imleyelim<br /> 370 SetEnvIf Remote_Addr "127\.0\.0\.1" kaydetme<br /> 371 # robots.txt dosyası isteklerini imleyelim<br /> 372 SetEnvIf Request_URI "^/robots\.txt$" kaydetme<br /> 373 # Kalanları günlüğe kaydedelim<br /> 374 CustomLog logs/access_log common env=!kaydetme 375 </code></p></div> 376 377 <p>Başka bir örnek olarak, Türkçe belge isteklerini bir dosyaya diğer 378 dillerdeki istekleri başka bir dosyaya kaydedelim.</p> 379 380 <div class="example"><p><code> 381 SetEnvIf Accept-Language "tr" turkce<br /> 382 CustomLog logs/turkce_log common env=turkce<br /> 383 CustomLog logs/diger_diller_log common env=!turkce 384 </code></p></div> 385 386 <p>Şarta bağlı günlük kaydının çok esnek ve güçlü olabileceğini 387 göstermiş olsak da günlük içeriğini denetlemenin tek yolu bu değildir. 388 Günlük dosyaları sunucu etkinliğini eksiksiz olarak kaydedebildikleri 389 takdirde daha yararlı olurlar. Günlük dosyalarını sonradan işleme tabi 390 tutarak istenmeyen girdileri kaldırılmış bir kopya almak hem kolay hem 391 de daha yararlıdır.</p> 392 393 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 394 <div class="section"> 395 <h2><a name="rotation" id="rotation">Günlük Çevrimi</a></h2> 396 397 398 <p>Yükü ağır sunucularda günlük dosyalarına kaydedilen bilginin miktarı 399 çok büyük boyutlara ulaşabilir. 10.000 istek içeren bir erişim günlüğü 400 yaklaşık 1MB yer kaplar. Etkin günlük dosyasını belirli aralıklarla 401 değiştirmek veya silmek gerekebilir. Apache çalışırken dosyayı sürekli 402 açık tuttuğu ve yazdığı için bu işlem sunucu çalışırken yapılamaz. Bu 403 bakımdan, günlük dosyası değiştirildikten veya silindikten sonra yeni 404 dosyanın açılması için <a href="stopping.html">sunucunun yeniden 405 başlatılması</a> gerekir.</p> 406 407 <p><a href="stopping.html#graceful">Nazikçe yeniden başlatmak</a> 408 suretiyle sunucunun, mevcut ve bekleyen bağlantıları kaybetmeden yeni 409 günlük dosyalarını açması sağlanabilir. Bununla birlikte, bu işlem 410 sırasında sunucunun eski isteklere sunumu bitirene kadar eski günlük 411 dosyalarına yazmaya devam edebilmesi gerekir. Bu bakımdan, yeniden 412 başlatmanın ardından eski günlük dosyaları üzerinde bir işlem yapmadan 413 önce biraz beklemek gerekir. Günlük dosyalarını döndürürken kullanılan 414 senaryolarda genellikle eski günlük dosyaları yer kazanmak için 415 sıkıştırılırlar:</p> 416 417 <div class="example"><p><code> 418 mv access_log access_log.old<br /> 419 mv error_log error_log.old<br /> 420 apachectl graceful<br /> 421 sleep 600<br /> 422 gzip access_log.old error_log.old 423 </code></p></div> 424 425 <p>Günlük çevrimi yapmanın başka bir yolu da sonraki bölümde açıklandığı 426 gibi <a href="#piped">borulu günlükler</a> kullanmaktır.</p> 427 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 428 <div class="section"> 429 <h2><a name="piped" id="piped">Borulu Günlükler</a></h2> 430 431 432 <p>Apache httpd hata ve erişim günlüklerini doğrudan bir dosyaya yazmak 433 yerine bir boru üzerinden başka bir sürece yazabilir. Bu yetenek ana 434 sunucuya herhangi bir kod eklemeksizin günlükleme esnekliğini şaşırtıcı 435 derecede arttırır. Günlükler boruya yazılmak istenirse dosya ismini boru 436 karakteriyle ("<code>|</code>") değiştirip ardına günlük girdilerini 437 standart girdisinden kabul edecek programın ismini eklemek yeterlidir. 438 Apache sunucusu başlatıldığı zaman borulu günlük işlemini de 439 başlatacaktır. Eğer sunucu çalışırken günlükleri kabul eden süreç 440 çökerse Apache bu programı yeniden başlatır. (Bu son özelliği sebebiyle 441 bu tekniğe “güvenilir borulu günlükleme” adını veriyoruz.)</p> 442 443 <p>Borulu günlük süreçleri ana Apache httpd süreci tarafından başlatılır 444 ve bu süreçler ana Apache httpd sürecinin kullanıcı kimliğini miras 445 alırlar. Yani borulu günlükleme programları aslında root tarafından 446 çalıştırılmış gibi olur. Bu bakımdan, bu programları basit ve güvenilir 447 kılmak çok önemlidir.</p> 448 449 <p>Borulu günlüklerin önemli kullanım alanlarından biri de sunucuyu 450 yeniden başlatmak gerekmeksizin günlük çevrimini mümkün kılmaktır. 451 Apache HTTP sunucusu bu amaçla kullanılmak üzere 452 <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code> diye bir program içerir. Örneğin, 453 günlükleri 24 saatte bir döndürmek isterseniz bunu şöyle 454 yapabilirsiniz:</p> 455 456 <div class="example"><p><code> 457 CustomLog "|/usr/local/apache/bin/rotatelogs 458 /var/log/access_log 86400" common 459 </code></p></div> 460 461 <p>Borunun diğer ucundaki süreci başlatacak komutun tırnak içine 462 alındığına dikkat ediniz. Bu örnekler erişim günlüğü için verilmişse de 463 aynı teknik hata günlüğü için de kullanılabilir.</p> 464 465 <p>Hariçten bir uygulama olarak <a href="http://www.cronolog.org/">cronolog</a> isminde buna benzer ancak 466 çok daha esnek bir program daha vardır.</p> 467 468 <p>Borulu günlükler de şarta bağlı günlükleme kadar güçlü olmakla beraber 469 çevrimdışı ardıl işlemler gibi daha basit çözümler için 470 kullanılmamalıdır.</p> 471 472 <p>Öntanımlı olarak borulu günlük süreci bir kabuk sayesinde yeniden 473 oluşur. (normalde <code>/bin/sh -c</code> ile). Kabuk üzerinden kabuk 474 çağrılarının özelliğinden dolayı borulu günlük programı çalışırken ve 475 yeniden başlatma sırasındaki sinyal yakalama sorunlarından dolayı ek 476 bir kabuk sürecinin başlatılmasi ihtimal dahilindedir.</p> 477 478 <p>Bir kabuk oluşturmaksızın borulu günlük sürecini yeniden oluşturmak 479 için "<code>|</code>" yerine "<code>||</code>" kullanın:</p> 480 481 <div class="example"><p><code> 482 # Kabuk kullanmadan "rotatelogs" kullanımı<br /> 483 CustomLog "||/usr/local/apache/bin/rotatelogs 484 /var/log/access_log 86400" common 485 </code></p></div> 486 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 487 <div class="section"> 488 <h2><a name="virtualhost" id="virtualhost">Sanal Konaklar</a></h2> 489 490 491 <p>Bir sunucu çok sayıda <a href="vhosts/">sanal konak</a> ile hizmet 492 sunarken bunların günlük kayıtları için çeşitli seçenekler mevcuttur. 493 İlk seçenekte, sanki sunucu tek bir konakla hizmet sunuyormuş gibi 494 günlük kaydı yapılır. Günlükleme yönergelerini <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> bölümlerinin dışına, ana sunucu 495 bağlamına yerleştirerek tüm isteklerin aynı erişim ve hata günlüğüne 496 yazılmasını sağlamak olasıdır. Bu teknik, tek tek sanal konaklar için 497 kolayca istatistik toplamaya izin vermez.</p> 498 499 <p>Eğer <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> 500 veya <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> yönergesi bir 501 <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> bölümüne 502 yerleştirilirse bu sanal konağa bütün erişimler veya hatalar belirtilen 503 dosyaya günlüklenecektir. Böyle günlükleme yönergeleri içermeyen sanal 504 konakların günlükleri hala ana sunucunun hata ve erişim günlüklerine 505 yazılmaya devam edecektir. Bu teknik az sayıda sanal konak barındıran 506 sunucular için çok kullanışlıdır. Fakat sanal konak sayısı çok fazlaysa 507 bu teknikle günlük dosyalarını yönetmek çok karmaşık bir hal alabilir. 508 Ayrıca, <a href="vhosts/fd-limits.html">yetersiz dosya tanıtıcısı</a> 509 sorunlarıyla çok sık karşılaşılabilir.</p> 510 511 <p>Erişim günlükleri için çok az bir fedakarlıkla çok iyi bir çözüm vardır. 512 Günlük biçemine sanal konaklarla ilgili bilgi eklemek suretiyle tüm 513 konakların aynı günlük dosyasını kullanmaları olasıdır. Böylece günlük 514 dosyası sonradan her sanal konak için ayrı bir dosya oluşturmak üzere 515 ayrıştırılabilir. Örneğin, bu işlem için şu yönergeler kullanılıyor 516 olsun:</p> 517 518 <div class="example"><p><code> 519 LogFormat "%v %l %u %t \"%r\" %>s %b" 520 ortaksankon<br /> 521 CustomLog logs/access_log ortaksankon 522 </code></p></div> 523 524 <p><code>%v</code> belirteci isteği sunan sanal konağın ismini günlüğe 525 yazmak için kullanılır. Daha sonra <a href="programs/other.html">split-logfile</a> gibi bir program 526 kullanarak, bu dosyadan her sanal konak için ayrı birer dosya elde 527 edilebilir.</p> 528 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> 529 <div class="section"> 530 <h2><a name="other" id="other">Diğer Günlük Dosyaları</a></h2> 531 532 533 <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#bufferedlogs">BufferedLogs</a></code></li><li><code class="directive"><a href="./mod/mod_log_forensic.html#forensiclog">ForensicLog</a></code></li><li><code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table> 534 535 <h3>Gönderilen ve alınan bayt sayısının günlüklenmesi</h3> 536 537 538 <p><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code> modülü <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesinde kullanılan 539 biçem belirteçlerine alınan ve gönderilen bayt sayıları için iki 540 belirteç (%I ve %O) ekler.</p> 541 542 543 <h3>Adli Günlük</h3> 544 545 546 <p><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code> modülü istemci isteklerinin kanıt 547 olarak kullanılmak amacıyla günlüklenmesini sağlar. Günlükleme her 548 istek için isteğe hizmet sunmadan önce ve sonra olmak üzere iki defa 549 yapılır. Böylece günlük dosyasında başarılı her istek için iki satır 550 bulunur. Adli günlükleme çok sıkı kurallara tabi olup 551 kişiselleştirilemez. Güvenlik ve hata ayıklama aracı olarak yararlı 552 değildir.</p> 553 554 555 <h3><a name="pidfile" id="pidfile">PID Dosyası</a></h3> 556 557 558 <p>Apache httpd başlatıldığında, ana httpd sürecinin kimliği (PID) 559 <code>logs/httpd.pid</code> dosyasına kaydedilir. Bu dosyanın ismi 560 <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> yönergesi ile 561 değiştirilebilir. Bu süreç kimliği sistem yöneticisi tarafından ana 562 sürece sinyal göndererek artalan sürecini sonlandırmak veya yeniden 563 başlatmak için kullanılır. Windows üzerinde bu işlem için 564 <code>-k</code> komut satırı seçeneği kullanılır. Bu konuda daha 565 ayrıntılı bilgi edinmek için <a href="stopping.html">Durdurma ve 566 Yeniden Başlatma</a> belgesine bakınız.</p> 567 568 569 <h3><a name="scriptlog" id="scriptlog">Betik Günlüğü</a></h3> 570 571 572 <p><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> yönergesi CGI 573 betiklerinin girdi ve çıktılarını kaydetmenizi mümkün kılmak suretiyle 574 hata ayıklamaya yardımcı olur. Bu sadece deneysel amaçla kullanılmalı, 575 asıl sunucuya uygulanmamalıdır. <a href="mod/mod_cgi.html">mod_cgi</a> 576 belgesinde daha fazla bilgi bulunabilir.</p> 577 578 579 <h3><a name="rewritelog" id="rewritelog">Yeniden Yazım Günlüğü</a></h3> 580 581 582 <p>Güçlü ve karmaşık <a href="mod/mod_rewrite.html">mod_rewrite</a> 583 özellikleri kullanılırken, hata ayıklamaya yardımcı olmak için 584 <code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code> yönergesini 585 kullanmak gerekebilir. Yönerge, günlük dosyasında yeniden yazım 586 motorunun istekleri nasıl dönüştürdüğüyle ilgili ayrıntılı bir döküm 587 üretir. Ayrıntı seviyesi <code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code> yönergesi ile belirlenir.</p> 588 589 </div></div> 590 <div class="bottomlang"> 591 <p><span>Mevcut Diller: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English"> en </a> | 592 <a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 593 <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 594 <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 595 <a href="./tr/logs.html" title="Türkçe"> tr </a></p> 596 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />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 <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 597 <script type="text/javascript"><!--//--><![CDATA[//><!-- 598 var comments_shortname = 'httpd'; 599 var comments_identifier = 'http://httpd.apache.org/docs/2.2/logs.html'; 600 (function(w, d) { 601 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 602 d.write('<div id="comments_thread"><\/div>'); 603 var s = d.createElement('script'); 604 s.type = 'text/javascript'; 605 s.async = true; 606 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 607 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 608 } 609 else { 610 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 611 } 612 })(window, document); 613 //--><!]]></script></div><div id="footer"> 614 <p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p> 615 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 616 if (typeof(prettyPrint) !== 'undefined') { 617 prettyPrint(); 618 } 619 //--><!]]></script> 620 </body></html>