Tam Sürümünü Görmek İçin : Web serverın logu nasıl tutulur?
ismail pala
21/09/2005, 08:21
Arkadaşlar web serverınızın logunu nasıl tutuyorsunuz?
Yazmadan önce hangi web serverı kullandığınızı da belirtir misiniz?
teşekkürler.
Apache kullaniyorum kendisi standart olarak log tutuyor.
ismail pala
21/09/2005, 15:34
Nasıl tutuyor? txt ile mi herhangi bir database de mi? ve loglar iken hangi bilgileri logluyor.
Apache sunucusu indirip dizinleri karıştırarak görebilirsin.
Bu soruyu önce google a sorsaydın keşke
misal ben " "web sunucusu logları nasıl tutar?" gibi birşey yazdım, çıkan sonuçlar gayet tatminkardı.
ismail pala
22/09/2005, 09:43
naesse bazı sorular paylaşımı artırmak içindir; bu konuda bildiklerimi artırmaya çalışmanın yanında cevizin zengin içeriğe sahip olması arzusundayım.
IIS de php çalıştırıyorum ve mysql de logları tutuyorum. ama istedim ki başkaları nasıl yapıyor hangi web serverı kullanıyor.
ben bu konuda bir süre cevapları bekledikten sonra kendimin nasıl yaptığını zaten yazacağım.
İnernette gizli kalmışı su yüzüne çıkarması konusunda google nin hakkını vermek lazım bu işi güzel yapıyor. bir çok konuda googleyi kullanıyorum ve forumlarda yazmaya başlamı da google da yaptığım bir aramanın sonucunun bir forumda çıkması olmuştu. ama sonuçta cevap yoktu tıpkı bu konudaki buraya cevap yazılmaması gibi.
sonra o konuyu çözdüm ve forma ilgili yere cevap yazmak için üye oldum. vs. vs. vs.
ismail pala
26/09/2005, 11:33
Windows 2003 / IIS serverın loglarını / Mysql de tutmak.
create table inetlog (
ClientHost varchar(255), username varchar(255),
LogTime datetime, service varchar( 255), machine varchar( 255),
serverip varchar( 50), processingtime int, bytesrecvd int,
bytessent int, servicestatus int, win32status int,
operation varchar( 255), target varchar(255), parameters varchar(255) )
1. ADIM
yukarıdaki sql komutuyla mysql deki istediğini bir db ye bir tablo oluşturmak gerekiyor: benim tavsiyem ayrı bir db açın ama bu çokta gerekli değil.
bu sql cümlesini microsoft sağlıyor: bendeki yolu şu şekilde; c:\winnt\system32\inetsrv\logtemp.sql
2. ADIM
weblogbag adında bir ODBC bağlantısı oluşturalım: Control panel / ODBC Data source Administrator bölümünden kurulduğunu hatırlatayım.
kurulum yapmaya çalıştığınız makinada Mysql ODBC bağlantısı kurulu değilse buradan indirebilirsiniz: http://dev.mysql.com/get/Downloads/MyODBC3/MyODBC-3.51.11-2-win.exe/from/pick
ben odbc bağlantısına weblogbag adini verdim sizde dilediğiniz ismi verebilirsiniz ama bir sonraki adımda verdiğiniz adı kullanmayı unutmayın (weblogbag yerine sizin tercih ettiğiniz adı kullanmayı...)
3. ADIM
Internet Information Services tan (IIS web server yönetim ekranından) hangi web sitesinin logunu tutacaksak onun özellikler sayfasına girelim.
Web site tabında (sekmesinde): 3 bölüm var Web site Identification / Connections / Enable Logging
biz en sondaki bölümde işlem yapacağız. Enable loggin checkbox'ını işaretleyelim. active log format: ODBC logging 'i seçip hemen yanındaki properties butonuna tıklayalım.
ODBC loggin Properties ekranındaki alanları dolduralım:
ODBC Data Source Name (DNS): weblogbag
Table: inetlog
User Name: root
Password: (kendi passwordünüz ne ise buraya onu giriyorsunuz)
Bu ekranı onayladığınızda tekrar şifre soracak aynısını girersiniz.
ekranları Okeyleyerek (onaylarak) kapatalım.
Ben bu anlattıklarımla windows 2003 serverda Mysql üzerinde log tutuyorum.
2000 serverda ise MS SQL de log tutuyorum.
overworld
27/09/2005, 01:23
Güzel yöntem. Ben de kendim MySQL'e log tutturuyorum. Senin yöntem de güzel, ancak gereksiz bir çok veri de olacak içerisinde. Mesela benim sistemte txt olarak saklanan loglar 1 ayda 2GB'yi buluyor. Bunu veritabanına yaptırınca dağıtabiliriz gibi geliyor ortalığı? Çünkü IIS log tutarken her bir birimin (sayfa içerisindeki her resim, sayfa içerisindeki her frame vb.) logunu tutuyor. Sizce dağıtır mıyız?
Benim yöntemim;
Function LogEntry()
Dim adoConn
Dim adoRS
Set adoConn = Server.CreateObject("ADODB.Connection")
adoConn.Open "DSN=ebay"
If adoConn.errors.count <> 0 then
writeHata(2)
End If
adoConn.Execute "INSERT INTO log SET " & _
" tarih ='" & Mid(Date, 7, 4) & "-" & Mid(Date, 4, 2) & "-" & Mid(Date, 1, 2) & _
"', saat='" & Time & _
"', users=" & Application("ActiveUsers") & _
", url='" & Session("URL") & _
"', ip='" & Request.ServerVariables("REMOTE_ADDR") & _
"', agent='" & Request.ServerVariables("HTTP_USER_AGENT") & _
"', referer='" & Request.ServerVariables("HTTP_REFERER") & "'"
adoConn.Close
Set adoConn = Nothing
End Function
şeklinde...
ismail pala
27/09/2005, 08:27
overworld web serverın log tutması dediğiniz gibi zamanla çok alan kaplayabilir; webserverin log tutmasındaki en büyük avantaj 404 ; yani olmayan dosya istenmesini yakalayabilmeniz. aslında onunda çözümü var olmayan dosya istendiğinde gidilen hata dosyasına da loglama kodu konduğunda olur öyle değil mi?
log tutma şeklinizi paylaştığınız için teşekkür ederim.
overworld
27/09/2005, 09:52
Evet o da mümkün. Mesela ASP için, 404.asp sayfası oluşturup web sitesinin custom error pages kısmından bu sayfaya yönlendirirsek olabilir. Ben gerek duymadım ama?
Mingitau
27/09/2005, 11:25
CustomLog Combined
Yeterli oluyor, dsüzgün hazırlanmış bir perl script ilede her saat başı loglar incelenip başka bir birimde access_log.yil.ay.gun.saat olarak saklanıyor
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.