Apache VHost Log Format (HTTP)
Format Hakkında
Apache VHost Log Format, Combined format'a Virtual Host bilgisini ekleyen genişletilmiş bir formattır. Profil formundaki Line Format listesinde Apache VHost Log Format ( Vhost + Standard + Referrer + User Agent ) seçeneğiyle yer alır.
Bu format, aynı TR7 üzerinde birden fazla domain veya servis barındırıldığında, her isteğin hangi virtual host'a yapıldığını ayırt etmek için kullanılır.
Kullanım senaryoları
- Multi-tenant ortamlar.
- Birden fazla domain barındıran sistemler.
- Virtual hosting yapılandırmaları.
- Host bazlı log ayrıştırma.
Desteklenen Özellikler
WARNING
Bu format bir L7 TCP vService'e atanırsa Virtual Host/Referer/User-Agent alanları üretilmez; satır sessizce Standard (L7 TCP) formatına döner.
Örnek Log
test.tr7.com 172.16.101.42 - - [09/Sep/2026:17:39:57 +0000] "GET /login.php HTTP/1.1" 200 1011 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36"Alan Açıklamaları
| Alan | Örnek Değer | Açıklama |
|---|---|---|
| Virtual Host | test.tr7.com | İsteğin yapıldığı host bilgisi. Satırın en başında ve tırnaksız yazılır. |
| Client IP | 172.16.101.42 | İstemci IP adresi |
| Ident | - | RFC 1413 ident bilgisi; bu formatta hiçbir koşulda doldurulmaz. |
| User | - | HTTP Auth kullanıcı adı; bu formatta taşınmaz. |
| Timestamp | 09/Sep/2026:17:39:57 +0000 | İsteğin alındığı zaman (GMT) |
| Request Line | "GET /login.php HTTP/1.1" | HTTP istek satırı (method, path, version); çift tırnak içine alınır |
| Status Code | 200 | HTTP yanıt durum kodu |
| Bytes | 1011 | İstemciye okutulan yanıtın toplam boyutu (byte). Yanıt başlıkları da bu sayıya dâhildir; bu nedenle değer Content-Length başlığından büyüktür. |
| Referer | "" | İsteğin geldiği sayfanın adresi; istemcinin gönderdiği Referer başlığından alınır. Örnekte istemci bu başlığı göndermediği için boştur. |
| User-Agent | "Mozilla/5.0 (Windows NT 10.0; ..." | İstemci tarayıcı ya da uygulama bilgisi; User-Agent başlığından alınır |
Virtual Host Alanı
Virtual Host alanı, istemcinin gönderdiği HTTP Host başlığından ham hâliyle alınır; TR7 bu değeri normalize etmez. Bu nedenle biçimi, isteği yapan istemcinin adres çubuğuna ne yazdığına göre değişir:
| Biçim | Örnek | Ne zaman görülür |
|---|---|---|
| Domain | test.tr7.com | İstek varsayılan porta (HTTP'de 80, HTTPS'te 443) yapıldığında; tarayıcı portu Host başlığına yazmaz. Yukarıdaki örnek log bu durumdadır. |
| Domain:Port | api.example.com:8443 | Varsayılan dışı bir porta yapılan isteklerde |
| IP (gerekirse portla) | 172.16.102.98:8022 | Alan adı yerine doğrudan IP adresiyle yapılan isteklerde; varsayılan porta yapılan istekte port yazılmaz |
İstemci IP adresi Trusted Proxy ile değişir
vService'e bir Trusted Proxy profili atanmışsa Client IP alanı, proxy'nin adresi yerine profilde tanımlı başlıktan çözülen gerçek istemci adresini taşır. Profil atanmamışsa alanda TR7'ye bağlanan tarafın adresi, yani proxy/CDN'in çıkış adresi görünür.
Alan boş kalabilir
İstemci Host başlığı göndermezse (eski HTTP/1.0 istemcileri, kaba araçlar) alan boş üretilir ve satır boşlukla başlar. Alan tırnak içine alınmadığı için bu durumda alan sayısı kayar; sabit alan sırasına dayanan ayrıştırıcılar Client IP'yi Virtual Host sanır.
WARNING
Değer istemciden geldiği için güvenilir bir kimlik değildir; aynı vService'e farklı Host başlıklarıyla istek gönderilebilir. Host bazlı ayrım gerçekten zorunluysa vService düzeyindeki Virtual Hosting yapılandırması kullanılır.
Kullanım Örneği: Host Bazlı Filtreleme
Bu format, logları host bazında filtrelemek için idealdir.
Örnekler ham log satırı varsayar
Aşağıdaki komutlar, dosyanın ham log satırlarından oluştuğunu varsayar. Log profilinde Log Standard olarak local (varsayılan), rfc3164, rfc5424 ya da priority seçiliyse her satırın başına syslog öneki (öncelik, tarih, süreç adı) eklenir ve alan sıraları kayar. Bu durumda ya toplayıcının öneki ayıklaması ya da profilde raw seçilmesi gerekir.
# Belirli bir host'un loglarını filtrele
grep "^test.tr7.com" access.log
# Host bazında log sayısı
awk '{print $1}' access.log | sort | uniq -c | sort -rnStandard / Combined / VHost Karşılaştırması
| Özellik | Standard | Apache Combined | VHost |
|---|---|---|---|
| Client IP | ✓ | ✓ | ✓ |
| Timestamp | ✓ | ✓ | ✓ |
| Request Line | ✓ | ✓ | ✓ |
| Status Code | ✓ | ✓ | ✓ |
| Response Size (Bytes) | ✓ | ✓ | ✓ |
| Referer | ✗ | ✓ | ✓ |
| User-Agent | ✗ | ✓ | ✓ |
| Virtual Host (Domain) | ✗ | ✗ | ✓ |
