AWStats ile Web İstatistiklerinin Toplanması

By Seyhan TEKELİOĞLU

[email protected] – http://www.seyhan.biz

Bilgi:

Web sayfanıza kaç kişi geldi, gelenler hangi işletim sistemini kullanıyorlar, hangi ülkeden geldiler, arama motoruna ne yazıp sitenizi buldular, en çok hangi saatlerde siteniz yoğun oluyor v.s. gibi bir çok istatistiksel ve işe yarar bilgiyi kendi sunucunuz üzerinden yönetmek ve takip etmek ister misiniz? Bu soruya cevabınız evet ise AWStats sizin için biçilmiş kaftandır. Üstelik Açık Kaynak Kod lisansı ile dağıtılan ücretsiz bir ürün ve yanı sıra windows üzerinde de çalışabiliyor. AWStats ile sadece web değil ftp ve mail server log analizini de yapabilmeniz mümkün. Log analizi yaparken Apache için NCSA combinated/XLF/ELF veya common/CLF, Microsoft IIS için W3C log formatından yararlanıyor. Ortaya çıkan istatistik verilerini sizin tarafınızdan kolayca ayarlanabilecek bir web arabiriminden izlemeniz mümkün. Bu yazı içerisinde AWStats programının kurulup konfigürasyonunun yapılması, Microsoft IIS üzerinden bir web sayfası için nasıl log dosyalarından rapor analizi çıkartılacağı ve bunun yine IIS üzerinde oluşturulacak bir web arabirimi ile nasıl kontrol edilebileceği anlatılacaktır.

Ön Hazırlık:

AWStats kurulumu için gerekli araçları toplamak için sırasıyla önce AWStats’ın son versiyonunu web sitesinden indirelim. Bunun için http://AWStats.sourceforge.net/#DOWNLOAD adresini kullanabilirsiniz. Bu yazı hazırlanırkenki son versiyon 6.4 idi. Bu sayfayı açıp buradan AWStats’ın exe versiyonunu indirirseniz kurulum sırasında sadece programın kurulacağı dizini belirtmek yeterli oluyor. Kurulum kolayca yapılabiliyor. AWStats kurulumu için server’ımızda Microsoft IIS web server’ın da kurulu halde olması lazım. Eğer IIS kurulu değilse Contorol Panel > Add or Remove Programs > Add/Remove Windows Companents altında Internet Information Services (IIS)’i işaretleyerek kurabilirsiniz. Kurulum için işletim sistemi cd’si gerekmektedir. Son olarak da AWStats’ın windows işletim sistemi üzerinde çalışmasını sağlayacak Active programını indirmemiz gerekiyor. Bu programıda http://www.activestate.com/products/activeperl/ adresnden indirebilirsiniz. Yazı hazırlanırken ki son sürüm 5.8.7 idi. Active Perl’ü kurmak için Windows Installer’a da ihtiyaç olacak. Bu programıda aynı sayfadan indirebilirsiniz. Kurulumlara başlamadan önce hazırlamamız gereken herşey tamam. Şimdi kuruluma başlayalım.

Kurulum:

Kuruluma başlarken standart bir W2K server üzerine kurulmuş IIS kullanacağız. Bunun için web sitesi dizini C:\Inetpub\wwwroot, log dosyalarının dizini ise C:\WINNT\System32\LogFiles olacaktır. Öncelikle IIS içinde bazı özelleştirmeler yapacağız. Standart olarak gelen IIS loglama seçenekleri AWStats için yeterli değildir. Bu nedenle bazı değişiklikler yapmak gerekiyor. IIS loglarını genişletip W3C (Worl Wide Web Consortium) formatında tutacağız. Bunun için Administartive Tools altında Internet Information Services’i çalıştırıyoruz. Buradan loglamasını değiştierceğimiz web sitesinin adına sağ tıklayıp Properties kısmına giriyoruz. Benim kurulumda tek bir web sitesi olduğundan Default Web Site’ın Properties kısmını açıyorum. Çıkan ekranda Active Log Format kısmından W3C extended Log File Format ‘ı seçip Properties’ tıklıyoruz. Buradan Advanced sekmesine geçiyoruz ve Extended Loging Options’da sadece aşağıdaki özelliklerin işaretli olmasını sağlıyoruz.

• date • time • c-ip • cs-username • cs-method • cs-uri-stem • cs-uri-query • sc-status • sc-bytes • cs-version • cs(User-Agent) • cs(Referer)

Başka bir özelliğin seçili olmaması gerekiyor. AWStats belirli bir formatı aradığından bundan farklı seçeneklerin işaretli olması beklenmedik sonuçları ortaya çıkartabilir. Tüm logların doğru formatta olmasını sağlamak için, IIS’in daha önce oluşturduğu logları silmeliyiz. Silme esnasında hata mesajı alırsanız IIS’in World Wide Web servisini durdurup öyle silmeyi deneyin. Sildikten sonra servisi tekrar başlatırsınız.

İkinci aşamada Active Perl ve AWStats kurulumunu yapacağız. Active Perl’ü kurarken kurulum dizini olarak C:\Program Files\AWStats dizinini seçmeniz daha iyi olacaktır. Active Perl’ü kurarken herhangi özel bir ayar yapmıyoruz. Next next next deyip kurulumu tamamlıyoruz.

Şimdide AWStats kurulumunu yapacağız. Bu programı da C:\Program Files\AWStats dizinine kuracağız. Kurulum bitince AWStats konfigürasyonu başlıyor.

Konfigürasyon :

AWStats konfigürasyonunda karşımıza çıkan ilk ekran aşağıdaki penceredir. Burada web sunucusunun konfigürasyon dosyasının nerede olduğu soruluyor. Kofigürasyon uygulaması, metin tabanlı ayarlama yapılabilen bir Apache sunucu kullandığımızı varsayıyor. Biz IIS kullandığımızdan bu seçeneğe none yazıyoruz.

Konfigürasyon yapan program web sunucumuzun ayarlamalarını bitirdikten sonra web sitesi için adım adım temel bir konfigürasyon dosyası oluşturmamıza yardımcı oluyor. Aşağıdaki şekilde de görüldüğü gibi önce temel konfigürasyon dosyası oluşturmak isteyip istemediğimizi soruyor. Burayı y (Yes) diye cevaplayıp ilerliyoruz.

Sonraki aşamada program istatistik analizi yapacağımız web sitesine bir isim vermemizi istiyor. Buraya ben Sistemviyiz.Biz web adresi olan www.sistemciyiz.biz yazacağım. Konfigürasyon programı verdiğimiz bu isme göre bir konfigürasyon dosyası oluşturuyor. Bu verdiğimiz isime göre dosya adı AWStats.sistemciyiz.biz.conf oluyor.

Bu aşamadan sonra değiştirilmesi gereken bir kaç ayar daha var. Bu ayarları yapmak raporlamanın düzgün olması açısından önemli. C:\ Program Files\AWStats\wwwroot\cgi- bin dizini altındaki AWStats.sistemciyiz.biz.conf dosyamızı bir metin editörü ile (örn:notepad) açıyoruz. İlk değiştirilecek alan log dosyalarının tutulduğu klasörün dizini gösteren LogFile parametresi olacak. AWStats ilk oluşturduğu kurulum dosyasında /var/log/httpd/mylog.log şeklinde Apache web sunucusuna uygun bir dizin yolu yapısı göstermektedir. Bunu ISS’e göre uyarlamamız gerekiyor. Bunun için konfigürasyon dosyası içinde LogFile=”/var/log/httpd/mylog.log” metnini bulup kendi log dizininizi yazın. Eğer standart bir ISS kurulumu yaptıysanız bu yolu “C:/WINNT/System32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log” şeklinde yazmalısınız. Bu formatta ex ile başlaya ve orta kısmında değişken olarak tanımlı tarih olansonunda .log uzantılı bir değişken dosya biçimini göstermektedir. Sizin log dosyanız farklı bir dizinde ve farklı bir dosya yapısında duruyor ise ona göre bu yolu düzenlemeniz gerekir.

Değiştirilmesi gereken diğer bir ayar ise LogFormat parametresindedir. Bu ayarda AWStats’ın loglama formatının belirlenmesini sağlarız. LogFormat standart olarak 1 değerini taşır. Biz bunu 2 olarak değiştirmeliyiz.

SiteDomain ve HostAliases değerlerinide kendimize göre değiştirmemiz gerekmekte. Bu parametrelerle sitenin dışarıya referans verme ve alma görünen adlarını belirleyeceğiz. Normalde ilk uşan konfigürasyon dosyasındaki değerlere bir şey eklemek gerekmez sadece IIS üzerinde farklı bir domain tanımlaması yaptıysanız ona göre bu parametrelere ekleme veya güncelleme yapabilirsiniz.

Çalıştırma :

Tüm bu ayarlamaları düzgün bir şekilde yaptıysak AWStats’ı çalıştırabiliriz. AWStats iki çeşit işlem yapar. Bunlardan biri analiz uygulaması bir diğeri ise raporlamadır. Analiz uygulaması sayısal hesaplamaları yapar, rapor uygulaması ise bu verileri görsel web arabirimine (html) çevirir. AWStats performans açısından analiz ettiği verileri kendi veritabanı dosyasına yazar ve daha sonraki log incelemelerinde sadece yeni oluşan log dosyalarına bakar. Böylece çok büyük bir zaman kazancı sağlar. Şimdi bu analiz işleminin nasıl yapılacağına bakalım.

IIS loglarını analiz edip AWStats veritabanına aktarmak için önce C:\Program Files\AWStats\wwwroot\cgi-bin dizinie gidip aşağıdaki komutu çalıştırmamız gerekli. Aşağıdaki komutu( ve diğer komutları) birleşik olarak tek bir satır halinde yazmalısınız. .pl –config=www.sistemciyiz.biz –update – logfile=”C:\WINNT\System32\LogFiles\W3SVC1\ex051014.log”

Burada config parametresinden sonra konfigürasyon dosyasında belirlediğimiz web site name’i yazıyoruz. LogFile parametresine ise log dosyalarının tutulduğu dizini ve loglamaya başlayacağımız ay ve güne ait log dosyasının adını yazıyoruz. Burada 10 Eylül gününe ait log dosyası yazılı. Eğer biz 1 Eylülden başlamak istiyorsak öncelikle ex051001.log ve daha sonra günü bir arttırarak ayın 10una kadar olan tüm dosyalar için bu komutu çalıştırmalıyız.

AWStats veritabanı dosyasını oluşturken web site name ve tarihi birleştir. Ortaya awstats%MM%YYYY.www.sistemciyiz.biz.txt şeklinde bir dosya çıkar. Analiz işlemi sırasında program incelediği kayıtlarla ilgili bazı bilgileri ekrana getirir. Bu istatistik ekranında kabul edilebilir kayıt sayısı reddedilenden azsa log dosyanızda bir sorun var demektir. Hele ki buradaki kayıt sayısı 0 görünüyorsa log dosyanız tamamen hatalıdır. Yaptığınız işlemleri gözden geçirip log dosyasını baştan oluşturmayı denemelisiniz.

Web Hazırlığı ve Raporlama :

Oluşturulan analiz sonuçlarını anlaşılır bir rapor dosyası haline getirip web sitesi şeklinde yayınlarsak daha işe yarar bir şey yapmış oluruz. Öncelikle IIS altında bir web alanı oluşturmamız gerekli. Bu işlem için C:\Inetpub klasörü altına AWStats adında bir klasör açmamız gerekli. Daha sonra C:\Program Files\AWStats\wwwroot dizinindeki icon klasörünü C:\Inetpub\AWStats dizinine kopyalamalıyız. Son olarak IIS içinde aşağıdaki şekilde göründüğü gibi web sitesi tanımı yapmamız yeterli olacaktır. Çalıştığımız sunucuda 80 nolu portu dinleyen başka bir site varsa sadece rapor için hazırladığımız siteye özel bir ip adresi, port numarası veya host başlığı belirlemeniz gerekebilir.

AWStats rapor oluşturduktan sonra standart bir web ismi oluşturur. Bu isim awstats.www.sistemciyiz.biz.html şeklinde olur. Web site name burada da kullanılmaktadır. Bu web sayfasının web server tarafından otomatik tanımlanması için IIS de sitemizin Properties kısmına girip yukarıdaki tablardan Documents kısmına gelip awstats.www.sistemciyiz.biz.html’i buraya default homepage olarak eklemeliyiz. Eğer istatistikleri herkesin görmesini istemiyosanız Documents tabının olduğu ekranda Directory Security bölümünden yararlanabilirsiniz.

Rapor oluşturabilmek için ilk önce C:\Program Files\AWStats\Tools dizinine gidip aşağıdaki komutu çalıştırmamız gerekli. awstats_buildstaticpages.pl -config=www.sistemciyiz.biz -update -lang=tr - dir="c:\inetpub\awstats" -awstatsprog="C:\Program Files\AWStats\wwwroot\cgi- bin/awstats.pl"

Bu komuttada config yerine web site name de belirttiğimiz site adımız yazıyor. Lang parametresi ile dil seçimi yapıyoruz, ingilizce için en yazmamız yeterli olacaktır.dir parametresi ile gösterilen dizine raporlar yazılmaktadır. Rapor oluşturma işlemi bittikten sonra daha önce oluşturduğumuz web sayfasını (awstats.www.sistemciyiz.biz.html olan) çalıştırdığımızda karşımıza html tabanlı rapor sayfası gelecektir. Çok ayrıntılı bir şekilde raporları süzebilirsiniz. Günlük, saatlik, ülkelere göre, kullanılan işletim sistemine kadar ayrıntılar mevcut.

Yalnız burada bir şeyi açıklığa kavuşturmalıyız. Ülkelere göre (countries) istatistik raporu istediğimizde rapor boş gelecektir. Bunun sebebi AWStats da bu özelliğin standart olarak kapalı gelmesidir. Bir ziyaretçinin geldiği ülkeyi tespit edebilmek için bağlantı yapan kişinin ip numarasını tespit ettikten sonra reverse lookup ile geri gidilerek o adrese ait bir FQDN (Fully Qualified Domain Name) yani tamamen geçerli bir alan adı olup olmadığı sorgulanmalıdır. Eğer ip adresine uygun bir FQDN bulunursa çıkan uzantıya göre (.tr, .com v.s.) nereden bağlanıldığı belirlenir. AWStats standart olarak geri dönük DNS sorgulaması yapmaz. Bu işlem her ziyaretçi için yapılırsa çok zaman alır. Düşününki yüzbinlerce ziyaretçisi olan bir site için bu işlem saatler sürer. Eğer bu opsiyonu aktif hale getirmek istiyorsanız AWStats konfigürasyon dosyasını açıp DNSLookup parametresini bulun ve 2 olan değeri 1 yapın. Bu işlemden sonra analiz edilen tüm dosyalarda reverse DNS lookup işlemi yapılacaktır.

Periyodik Çalışma :

Tüm ayarlamaları yapıp raporlarımızı izleyebilir hale geldikten sonra bu raporlama işini bir otomasyona bağlamak gerekli. Her seferinde manuel olarak elle bu komutu çalıştırmak çok da istediğimiz bir yol değil. Ayrıca bu işlemi mesai saatleri dışında yapılacak şekilde planlarsak sabah masamıza oturduğumuzda tüm istatistikleri görebilmek güzel olurdu değil mi?

Bunu yapabilmek için aşağıdaki script’i kullanarak analiz dosyasını çalıştırır, verileri rapor haline getirir ve tanımladığımız web dizinine kaydedilmesini sağlayabiliriz. Bunun için aşağıdaki scripti kendimize göre konfigüre edip dosya adınıda mesela raporla.bat şeklinde verebiliriz. Bu raporla.bat dosyasını Control Panel > Scheduled Tasks altına ekleyip her gece belirlediğimiz bir satte çalışmasını sağlayabiliriz.

@echo off cd c:\program files\awstats\wwwroot\cgi-bin awstats.pl -config=www.sistemciyiz.biz –update cd c:\program files\awstats\tools awstats_buildstaticpages.pl -config=www.sistemciyiz.biz -update -lang=tr - dir="C:\Inetpub\awstats" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi- bin/awstats.pl

Sonuç :

Tüm bu işlemlerden sonra artık her sabah web sitemizin loglarını web tanamşı bir arabirimden takip edebileceğiz. Bu çözümün ücretsiz olması ve benzer yazılımlara göre hem kurulum kolaylığı hemde avantajlarının fazla olmasından dolayı tercih sebebi olarak ön plana çıkıyor.

Kolay Gelsin

Seyhan Tekelioğlu