Pardus Yazılım Kampı 2014 Gerçek Zamanlı Log Analiz Aracı

Pardus Yazılım Kampı 2014
Proje Bas¸vuru Dosyası
Ger¸
cek Zamanlı Log Analiz Aracı
Ramazan Bulur
Deniz Canbula
Haziran 2014
Proje Konusu
Log analiz ara y¨
uz¨
u geli¸stirilmesi
Proje Adı
Ger¸cek Zamanlı Log Analiz Aracı
˙ ceri˘
Proje I¸
gi
Log analizi her sistem y¨oneticisinin er ya da ge¸c mutlaka ya¸sayaca˘gı bir
s¨
ure¸ctir. Bazı sistem y¨oneticileri bu s¨
ureci sorumlu oldukları sunucuda bir
sorun meydana geldi˘ginde ya¸sarlar ve ¸cok kısa s¨
urede ¸cok b¨
uy¨
uk log dosyalarını analiz etmek isterler. Bu durumda, ¸calı¸san programın i¸cinde meydana gelen esas olaya ait halihazırda zaten bir yakla¸sıklık i¸ceren mesajlar
toplulu˘gunu daha aza indirgeyebilmek i¸cin bir yakla¸sıklık daha yapmak durumunda kalırlar. Oysa zaten bir program tarafından belirli kalıplar esas
alınarak u
¨retilmi¸s log dosyalarını, ba¸ska bir programın bu kalıpları kullanarak analiz etmesi c¸ok daha basit bir s¨
ure¸ctir. Dolayısıyla meydana gelen sorunu bir an evvel ¸co¨zmek i¸cin panik i¸cerisinde ge¸cirilen bu zamandan sonra,
ideal olanın, log dosyalarını gerekti˘ginde incelemek u
¨zere depolamaktansa
anlık olarak sunucuda neler olup bitti˘gini ¸c¨oz¨
umleyebilecek ve hatta o¨nceden
belirlenmi¸s durumlarla kar¸sıla¸sıldı˘gında yine o¨nceden belirlenmi¸s ¸co¨z¨
umlerle
m¨
udahale edebilecek bir ara¸c oldu˘gunu g¨ormek ¸cok da zor olmayacaktır.
B¨oylece sunucuda ger¸cekle¸secek olası bir sorun sonucu ortaya ¸cıkabilecek veri
kayıplarından korunma noktasında da o¨nemli bir adım atılmı¸s olacaktır.
Bu projede sistem y¨oneticilerinin bu ihtiya¸clarına cevap verecek bir “Ger¸cek
Zamanlı Log Analiz Aracı” geli¸stirmek hedeflenmektedir. Bu program log
dosyalarının nicel ve nitel analizlerini sistem y¨oneticisine sunmasının yanında
ger¸cek zamanlı olarak log dosyalarını s¨
urekli kontrol altında tutarak sistem
y¨oneticisi tarafından belirlenen durumlarda ¸ce¸sitli y¨ontemlerle uyarılar verebilen veya sorunun ¸co¨z¨
ulmesine y¨onelik adımlar atabilen bir ara¸c olacaktır.
Tasarım
Programın ssh ba˘glantısı u
¨zerinden sunucuya ba˘glanıldı˘gında da i¸slevsel olması a¸cısından hem terminal u
¨zerinden ¸calı¸san metin tabanlı bir aray¨
uz hem
de daha g¨orsel analizlerin daha ¸cok o¨n planda olaca˘gı bir masa¨
ust¨
u g¨orsel
aray¨
uz geli¸stirilecektir. Bununla beraber e˘ger bir web sunucu u
¨zerinde
¸calı¸sılıyorsa istendi˘ginde aktif edilebilecek, tarayıcı u
¨zerinden ¸calı¸san bir
¸cevrimi¸ci aray¨
uz de geli¸stirilecektir. C
¸ evrimi¸ci aray¨
uz¨
un geli¸stirilmesinde PHP
kullanılacak olup, ayrıca tablet veya cep telefonu gibi mobil cihazlardan sunucu takibinin sa˘glanabilmesi i¸cin bir mobil aray¨
uz de jQuery Mobile kullanarak hazırlanacaktır. Programın esas ¸cekirde˘gini olu¸sturacak terminal tabanlı
ve masa¨
ust¨
u s¨
ur¨
umleri ise Bash Script ve Python kullanarak hazırlanacaktır.
Programın geli¸stirilmesinde Python’un se¸cilmesinin altında yatan en b¨
uy¨
uk
sebep, son yıllarda Python’un b¨
uy¨
uk veri (big data) uygulamalarında sıklıkla
¨
tercih edilmesi ve ba¸sarısını kanıtlamasıdır. Ozellikle
b¨
uy¨
uk veri konusunda
belirleyici hususlardan birisini te¸skil eden CERN’de bulunan B¨
uy¨
uk Hadron
C
¸ arpı¸stırıcısı’nın u
¨retti˘gi veriler i¸cerisinde yeni par¸cacıkların izlerinin aranmasında kullanılan ara¸cların kullanıcılar tarafından kullanılanlarının
¸co˘gunlu˘gu Python ile geli¸stirilmektedir. SciPy vb. a¸cık kaynaklı bilimsel
k¨
ut¨
uphanelerin, programın veri madencili˘gi yapacak kısımlarında kullanımı
ile geli¸stirme s¨
ureci b¨
uy¨
uk ¨ol¸cu
¨de kısalacaktır.
Geli¸stirilecek programın sahip olaca˘gı ¨ozellikler ¸so¨yle sıralanabilir:
• Log dosyalarındaki verilerin modern bir aray¨
uz ile g¨orselle¸stirilmesi:
Kelime bulutu, bar chart, pie chart vb.
¨
• Onceden
tanımlı standart log dosyası formatlarına yenilerini ekleyebilme.
• Tanımlanan durumlar i¸cin belirli betikleri ¸calı¸stırma.
• Log dosyalarını renklendirme.
• Filtreler tanımlayabilme.
• Belirli durumlar i¸cin e-posta uyarıları g¨onderebilme.
• Takvimli raporlama.
3 aylık geli¸stirme s¨
urecinin, ilk 2 ayı programın geli¸stirilmesine, sonraki 10
g¨
un test s¨
urecine, son 20 g¨
un ise kurulum paketlerinin, yardım belgeleri ve
videolarının hazırlanmasına ayrılacaktır.
Proje Takımı
• Ramazan BULUR ( [email protected] )
¨
Celal Bayar Universitesi
Fen Bilimleri Enstit¨
us¨
u
¨
Doktora O˘grencisi
• Deniz CANBULA ( [email protected] )
¨
Celal Bayar Universitesi
Fen Bilimleri Enstit¨
us¨
u
¨
Doktora O˘grencisi