|
|
Bu makalenin farklı dillerde bulunduğu adresler: English Castellano Deutsch Francais Italiano Nederlands Portugues Turkce |
tarafından Egon Willighagen <egonw(at)logreport.org> Yazar hakkında: Egon, LinuxFocus projesinin yanısıra, bu yılın 1 Kasım'ına kadar Stichting Logreport kuruluşunda çalışıyordu. Kuruluşun amaçlarından biri, GPL lisansı ile log incelemesi yapacak yazılımlar oluşturmaktır. Türkçe'ye çeviri: Erdal MUTLU <erdal(at)linuxfocus.org> İçerik:
|
Özet:
Bu yazı, İnternet uygulamalarının oluşturdukları logların incelenmesinde kullanılan Lire yazılımı hakkındaki ikinci yazıdır. Bu yazı, oluşturulan raporların nasıl yapılandırılabileceği hakkındadır. İlkyazı, Lire'nin yüklenmesi hakkındaydı.
Bu yazı, lirenin en son sürümünü olan lire-20011017 sürümünü kapsamaktadır. Son sürümü ile önceki sürümü arasında yapılandırma konusunda birçok şey değişti. Dolayısıyla, ilk yazı çoktan eskimiş oldu. Ancak, lr_config konusundaki genel düşünce değişmedi.
Yeni özellikler şunlardır : FTP ve ateşduvarı (firewall) olarak, iki yeni süper servis eklendi, birçok yeni rapor (toplam > 68), yeni çıktı biçimleri (XHTML ve RTF) eklendi ve birçok hata ayıklaması yapıldı. Ancak, en önemli değişiklik motorda yapıldı. Rapor oluşturma süreci, XML teknolojisinden faydalanmak üzere tekrar yazıldı.
Bu yazıda, XML biçimlerinden birinin raporlardaki kullanımı gösterilecektir. Yeni rapor oluşturulmasından çok, var olan raporların en temelde nasıl değiştirilebileceği gösterilecektir. İlk önce, lireye hangi raporları oluşturması gerektiğini, nasıl söyleneceği ve bunun için hangi parametrelerin ayarlanması gerektiği anlatılacaktır.
Herbir süper sevisin (Sözgelimi, `e-ileti' bir süper servistir ve `postfix' ile `sendmail' servisleri bu süper servise dahildir.) log dosyalarından oluşturabileceği belli sayıda rapor vardır. Sözgelimi WWW servisini oluşturabileceği 31 çeşit rapor vardır. Her rapor herkese ilginç gelmeyebilir. Bazıları oldukça özel amaçlara göre tasarlanmıştır. Benimsenmiş değer olarak tüm raporlar seçili gelmektedir, ancak bunların özelleştirilmesinde fayda vardır.
Rapor oluşturma sürecinde hangi raporların oluşturulacağı <dizin>/etc/lire/<superservice>.cfg (Lire'nin dizin <dizin> adlı dizinde yüklü olduğunu varsayarsak.). Sözgelimi, FTP için olan yapılandırma dosyası aşağıdaki gibidir:
# FTP süper servis için olan yapılandırma dosyası
# İlk X raporlar
top-remote-host hosts_to_show=10
#top-files files_to_show=10
top-files-in files_to_show=10
top-files-out files_to_show=10
top-users users_to_show=10
# Günlük raporlar
bytes-by-day
# Aktarım raporları
transfers-by-direction
transfers-by-type
FTP süper servisin sekiz çeşit raporu vardır ve bunlardan sadece birisi seçilmemiştir. "top-files" raporun başında "#" olduğundan seçilmemiştir. "#" karakterini kaldırırsanız, raporu seçmiş olursunuz.
Ancak, "#" ile başlayan her satır rapor değildir. Bu yapılandırma dosyasında yer alan, "FTP süper servis için olan yapılandırma dosyası", "İlk X raporlar", "Günlük raporlar" ve "Aktarım raporları" satırları açıklamadır. Diğer, yapılandırma dosyaları da benzer şekildedir.
Sıralama yapmak çok basittir. Yapılandırma dosyasında raporları hangi sırada yazarsanız, raporlar da o sırada olacaktır. Yapılandırma dosyasındaki satırların yerleri değiştirildiğinde, raporların sırası da değişir. Sözgelimi, yukarıdaki örnekte yer alan transfers-by-type son rapor olacaktır.
Birçok rapor, yukarıdaki yapılandırma dosyasında olduğu gibi, kısmen özelleştirilebir. Sözgelimi, DNS süper servisin yapılandırma dosyasını ele alalım:
# DNS süper servisi için yapılandırma dosyası
# İlkler raporları
top-requesting-hosts hosts_to_show=10
top-requesting-hosts-by-method hosts_to_show=10 method='recurs'
top-requesting-hosts-by-method hosts_to_show=10 method='nonrec'
top-requested-names names_to_show=10
top-requested-names-by-method names_to_show=10 method='recurs'
top-requested-names-by-method names_to_show=10 method='nonrec'
requesttype-distribution
requesttype-distribution-by-method method='recurs'
requesttype-distribution-by-method method='nonrec'
# Günlük raporlar
requests-by-period period=1d
requests-by-period-by-method period=1d method='recurs'
requests-by-period-by-method period=1d method='nonrec'
# Saatlik raporlar
requests-by-period period=1h
requests-by-period-by-method period=1h method='recurs'
requests-by-period-by-method period=1h method='nonrec'
Onbeş raporun hepsi de seçilmiştir. İlk X leri veren raporlar için, X yerine 10 seçilmiştir. Dolayısıyla, yukarıdaki örneğe göre top-requesting-hosts 10 olacaktır.
Bu raporlar sadece sekiz rapor seçeneğinden türetilmektedir. Bunu, period, method, hosts_to_show ve names_to_show parametrelerin kullanımı mümkün kılmaktadır. Yeni XML tabanlı motorun güçlü özelliklerinden biri de budur.
Önelmi: tüm rapor değişkenleri, rapor isminin bulundu satırda yer almak zorundadır!
Daha ilginç bir örnek WWW süper servis yapılandırma dosyasından alınmıştır:
top-referers-by-page referer_to_show=5 page_to_show=10 referer_exclusion='^-$'
Bu örnekte referer_exclusion için Perl düzenli ifadeleri kullanılmıştır. Bu ifade tüm işaret edenlere "-" karşı gelmektedir. Bu şekildeki işaret edenlerden birisi sizin sanaldoku sayfanızın URL'nizi yazarsa, buna karşı gelen kayıt log dosyalarında görülecektir. (Sizin sayfanızı işaret eden, bir sayfadaki bağlantıya tıklarsanız, sizin sayfanıza bağlanacaktır, bağlantıyı yaptığınız sayfa da işaret edenler kısmında verilecektir.) Tüm işaret edenler, "-" rapor incelemelerinden çıkartılacaktır.
Lire'nin yeni sürümü, tamamen yeni bir dalını başlatmaktadır. Rapor yaratma ve belirtme süreci, XML teknolojisinden faydalanmak üzere, tamamen yeniden yazılmıştır. Raporlar XML'de belirtilmektedir, ama değişken atamaları metin dosyalarında (ASCII) yapılmaktadır. Önceki sürümde, raporlar Perl betik programında yer alıyordu ve bu programın hem giriş hem de çıkış biçimini bilmesi gerekiyordu. Yeni XML biçimi ile, giriş ve çıkış formatlarını bilmek gerekmektedir, bilinmesi gereken sadece işlenecek bilgidir.
Dolayısıyla, raporları alt seviyelerde özelleştirmek istiyorsanız, biraz XML bilmeniz gerekecektir. <dizin>/share/lire/reports/firewall dizininden alınan bir örnek:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lire:report-spec PUBLIC
"-//LogReport.ORG//DTD Lire Report Specification Markup Language V1.0//EN"
"http://www.logreport.org/LRSML/1.0/lrsml.dtd">
<lire:report-spec xmlns:lire="http://www.logreport.org/LRSML/"
superservice="firewall" id="bytesperfrom" charttype="bars">
<lire:title>Top Bytes per From-IP Report</lire:title>
<lire:description>
<para>
This report lists the IP addresses sending the highest data volume.
</para>
</lire:description>
<lire:param-spec>
<lire:param name="ips_to_show" type="int" default="10">
<lire:description>
<para>This parameter controls the number of sending IP adresses to
display in the report.
</para>
</lire:description>
</lire:param>
</lire:param-spec>
<lire:display-spec>
<lire:title>Volume per sending IP, Top $ips_to_show</lire:title>
</lire:display-spec>
<lire:report-calc-spec>
<lire:group sort="-rcvd_volume" limit="$ips_to_show">
<lire:field name="from_ip"/>
<lire:sum name="rcvd_volume" field="length"/>
</lire:group>
</lire:report-calc-spec>
</lire:report-spec>
İlk dikkatinizi çekmesi gereken, hemen hemen her XML elemanın başında lire:'nin yer alamasıdır. Bu, lire isim bölgesinin tanımlanması için kullanılmaktadır. lire isim bölgesinde yer alan her eleman XML DTD http://www.logreport.org/LRSML/1.0/lrsml.dtd (boş bağlantı!) de bulabilirsiniz. Yukarıdaki bağlantıya http://www.logreport.org/pub/docs/dtd/lrsml/ adresinden ulaşabilirsiniz.
Diğer tüm elemanlar DocBook XML 4.2 DTD ait olmaları gerekir. Örnekteki, onuncu satırda yer alan <para> elemanı gibi.
Eğer, raporda gözüken başlığı değiştirmek istiyorsanız, <lire:display-spec> de yer alan <lire:title> değiştirmeniz gerekecektir. Aklınızda bulunması gereken, "$" ile başlayan katarların Perl değişkenleri olduğu ve <lire:param-spec> bölümünde tanımlandığıdır.
Buradaki püf nokta, doğru <lire:title> elemanı seçmededir. Size gereken eleman <lire:display-spec> bölümünde olandır. Sonuncusu, çıktı raporda yer alan bilgiyi göstermektedir. İlk <lire:title> elemanı, Lire yazılımının belgeliklerinde kullanılan başlık bilgisini içermektedir.
Bir sonrakli örnek, WWW raporunda kullanılan requests-by-result nın bir kısmını göstermektedir. Buradaki <lire:display-spec> bölümü başlık bilgisi yanında daha başka açıklamalar da içerdğini görebiliriz. <lire:description> bölümünde bulunan tüm içerik lire isim bölgesine, dolayısıyla DocBook'a, ait olduğuna dikkat ediniz.
<lire:display-spec>
<lire:title>Requests By HTTP Result</lire:title>
<lire:description>
<para>
The most common HTTP status codes are given below:
<variablelist>
<varlistentry>
<term>200</term>
<listitem>
<para>OK (The request has succeeded.)</para>
</listitem>
</varlistentry>
<!-- rest is cut out -->
</variablelist>
</para>
</lire:description>
</lire:display-spec>
Raporun çıktısı aşağıdaki gibi bir şey olacaktır (sadece baş tarafı gösterilmiştir):
Requests By HTTP Result
The most common HTTP status codes are given below:
200 OK (The request has succeeded.)
201 Created (The request has been fulfilled and resulted in a new resource being created.)
206 Partial Content (The server has fulfilled the
Birçok raporda grafikler de yer almaktadır. Resimler, verilerden oluşturulmaktadır ve hangi resim biçiminin kullanılacağı raporların yapılandırma dosyalarında belirtilmektedir. Örnek olarak FTP transfers-by-type reporundaki resmi ele alalım.
Yukarıdaki @charttype da görüleceği gibi, veriler pay grafiği olarak görüntülenmiştir. Sonuç aşağıdaki gibi görünmektedir:
Char type'ın değerini bars olarak değiştirmekle sonuç aşağıdaki gibi olmaktadır:
Eğer, dikkat ettiyseniz, raporun başlığı hatalı gözükmektedir. Bu hata daha önce rapor edilmiştir.
XML hakkında daha fazla bilgi, LogReport'un sanaldoku sayfasında bulabilirsiniz. Görüldüğü gibi, dil genişlemeye oldukça uygundur ve şimdilik size önerim, dağıtım ile gelen rapor özelliklerini ana rehber olarak kullanmanızdır.
Bu yazıda, parametre özellikleri (<lire:param-spec>) ve çıktı verileri hesaplama (<lire:report-calc-spec>) bölümleri yer almamaktadır. Özellikle sonuncusunda birçok seçenek vardır ve logların yer aldığı biçim bilgisini içermektedir. Ancak, bu ilerideki bir yazıda anlatilacaktır.
Bu yazı XML tabanlı rapor yaratma motorunu tanıtmıştır ve raporları nasıl özelleştirilebileceğini göstermiştir. Daha fazla bilgi LogReport'un sayfasında http://www.logreport.org/ bulabilirsiniz.
Eğer, LogReport takımı ile temasa geçmek isterseniz, bizi IRC'den bulabilirsiniz. Genellikle, yazılım geliştiricileri OpenProjects.org IRC network'daki #logreport kanalında bulabilirsiniz. Eğer, e-iletiyi tercih ediyorsanız, herkese açık olan e-ileti adresimiz [email protected] dir.
|
Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Egon Willighagen, FDL LinuxFocus.org Burayı klikleyerek hataları rapor edebilir ya da yorumlarınızı LinuxFocus'a gönderebilirsiniz |
Çeviri bilgisi:
|
2001-11-12, generated by lfparser version 2.21