Event Viewer XML Filtering ile Log Analizi
  1. Anasayfa
  2. Server 2019

Event Viewer XML Filtering ile Log Analizi

0

Karşılaştığımız bir problemin kaynağını bulmak için herkesin ilk baktığı araçlardan biri Event Viewer oluyordur. Ama Event Viewer’ı açtığımızda bizi milyonlarca event karşılıyor ve biz bunlar arasından analiz yapıp problemin kaynağını bulmaya çalışıyoruz. Event Viewer GUI ile sunduğu filtreleme parametreleri (zaman aralığı, kaynak, ID vb.) çoğu zaman aradığımız veri log kaydının içeriğinde bulunduğu için yeterli olmuyor. İşte bu gibi durumlarda çözüm olarak Windows Vista/2008 ile gelen Custom View kullanabiliriz. Event Viewer üzerinden oluşturabildiğimiz Custom View’lar XML Filtering kullanmamızı sağlayarak sadece ihtiyacımız olan logları filtrelememizi sağlıyor.

Örneğin NTLM protokolünü kullanarak login olan bilgisayar ve kullanıcıları bulmak isteyelim, bunun için aşağıdaki şekilde bir Custom View yapabiliriz,

Event Viewer aracını açtıktan sonra sağ bölümde yer alan Actions Pane üzerinden Create Custom View seçiyoruz.

Resim-1

Karşımıza çıkan Create Custom View penceresinden XML sekmesini seçip altta bulunan Edit query manually işaretini seçip çıkan uyarıya Yes diyoruz.

Resim-2

Şimdi sıra geldi sorgumuzu yazmaya, örnek olarak sadece NTLM V1 protokolünü kullanarak oturum açmış kullanıcı ve bilgisayarlar ile ilgili logları filtreleyebiliriz. Bu XML sorgusunda Select etiketinin Path özelliği ile filtrelenecek Log Channel ismi veya log dosyasının yolu belirtilir. Sorgu ile Event ID’si 4624 olan ve Event Data LmPackageName alanı “NTLM V1” olan eventları filtrelemiş olduk. Select yerine Suppress etiketi ile sonuçtan hariç tutmak istediğimiz loglar için sorgu yazabiliriz.

<QueryList>
    <Query Id="0">
        <Select Path="Security">
        *[
          EventData[Data[@Name='LmPackageName']='NTLM V1']
          and
          System[(EventID = 4624)]
        ]
        </Select>
    </Query>
</QueryList>

Sorgularımızı standard and/or operatorlerini kullanarak bir adım ileriye götürebiliriz. LmPackageName gibi kullanabileceğimiz filtreleme seçeneklerini filtrelemek istediğimiz event’ı seçip Details sekmesinde XML View seçerek Event verisinin XML metadatasını görebiliriz.

Windows Event Log Xpath 1.0’ın altkümesini destekler. Fakat bazı sınırlamalar vardır. Standard operatörleri OR, AND, =, !=, <=, <, >=, >, ve parantez kullanımını destekler. Burada “<”, “>” karakterlerini yazmak için “&lt;”, “&gt;” HTML karakter karşılıklarını kullanırız. Bunun yanında Position, Band, Timediff fonksiyonlarını destekler, Starts-With ve Contains fonksiyonlarını desteklemez. Sorguyu filtrelemek istediğimiz veriyi tam olarak yazmamız gerekir, * karakterini kullanamayız, bu yüzden or operatorü ile birden fazla veri yazarak arayabiliriz. Örneğin “NTLM V1” ve “NTLM V2” her ikisini birden ve aynı zamanda Ip adresi “10.10.10.1”den gelen logları aramak için sorguyu aşağıdaki şekilde değiştirebiliriz.

*[
  EventData[
            Data[@Name='LmPackageName'] and (Data='NTLM V1' or Data='NTLM V2')
            and
            Data[@Name='IpAddress']='10.10.10.1'
           ]
  and
  System[(EventID = 4624) and (TimeCreated[timediff(@SystemTime) &lt;= 86400000])]
]

Yukarıdaki sorguda Timediff fonksiyonu kullandık. Timediff fonksiyonu şuanki zaman ile TimeCreated alanında yazan tarih arasındaki farkı milisaniye cinsinden bulmak için kullanılır. Bu sayede son 1 günlük logları getirmiş olduk.

Sorgumuzu daha da genişletmek için, mesela “NTLM V1” ve “NTLM V2″nin LmPackageName gibi hangi alanlarda geçtiğini bilmiyor isek aşağıdaki sorgu ile EventData’nın içeriğinde arama yapabiliriz.

*[
  EventData[Data and (Data='NTLM V1' or Data='NTLM V2')]
  and
  System[(EventID = 4624) and (TimeCreated[timediff(@SystemTime) &lt;= 86400000])]
]

Aşağıdaki sorgyu birden fazla log channel’da filtreleme yapmak için kullanabiliriz.

<QueryList>
    <Query Id="0">
        <Select Path="Security">*[System[(EventID='4624')]]>/Select>
        <Select Path="Application">*[System[(EventID='1704')]]>/Select>
    </Query>
</QueryList>

Son adım olarak sorgumuzu yazdıktan sonra Ok tıklayıp Custom View’ı vereceğimiz anlamlı bir isim ile kaydediyoruz. All Users seçeneğini işaretleyip tüm kullanıcılar için görülmesini sağlayabiliriz.

Resim-3

Custom View’ler ile yapacağımız XML sorguları ilk başta zor gelsede bir kere yazdıktan sonra sonraki kullanımlarımızda büyük yararı olacaktır. cisc

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: event viewer, events, log analysis, XML Filtering, XPath

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

1985 yılında Kocaeli’nde doğdum. Ankara Üniversitesi Bilgisayar Mühendisliği mezunuyum. İş hayatına 2005 yılında Deniz Kuvvetleri K.lığı’nda Sistem Yöneticisi olarak başladım. Microsoft ürünleri ve Linux sistemlerin yönetiminde bulundum. Şu anda IBTech’de Sistem Mühendisi olarak altyapı sistemleri birimde çalışmaktayım. Yazılım merakımdan dolayı kendimi .Net, Java, PHP programlama dilleriyle uygulamalar ve web siteleri geliştirdim.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir