Log Parser Studio ile Event Log incelemek (Event Log review with Log Parser Studio)

Ertuğrul AKDAĞ
3 min readJan 25, 2023

--

Microsoft Logparser V2.2 ve Log Parser Studio (LPS), Event Log yani Windows Olay Günlükleri de dahil olmak üzere çeşitli veri kaynaklarını sorgulamak için çok güçlü araçlardır. Basit sorgular yazmak için uzman programcı olmanız gerekmiyor lakin SQL ve sözdizimi hakkında temel bilgiye sahip olmanız beklenir.

İlk olarak Logparser V2.2 ve LPS’yi ilgili linklerden indirebilirsiniz. Logparser V2.2 bilgisayarınıza kurulmalı, LPS ise Tıkla-Çalıştır uygulamasıdır. Şimdi LPS ile neler yapabiliriz bakalım. Log incelemek için iki yöntem üzerinde ilerleyeceğiz. İlki Event Log yani Olay Günlükleri’nin oluştuğu sunucuda LPS’yi çalıştırmak ikincisi ise Event Viewer’dan logları “.evtx” formatında kaydederek kişisel bilgisayarımızda incelemek. İlk olarak sunucudan inceleyelim.

  1. LPS uygulamasını tercihen yönetici olarak çalıştırın ve “New Query” butonuna tıklayın. Yeni bir sorgu penceresi açılacaktır.
  2. Log Type Kısmından “EVTLOG”a tıklayın.
  3. Sorguyu yazın ve sonuçları almak için “Sorguyu Çalıştır”a tıklayın ve sonuçlar çok hızlı bir şekilde listelensin. Şimdi nedir bu sorgu dediğimiz şey biraz da bunu inceleyelim.

Biraz daha kompleks hale getirecek olursak;

SELECT 
timegenerated,
EXTRACT_TOKEN(Strings,1,'|') AS Domain,
RESOLVE_SID(EXTRACT_TOKEN(Strings,0,'|')) AS User,
EXTRACT_TOKEN(Strings,3,'|') AS SessionName,
RESOLVE_SID(EXTRACT_TOKEN(Strings,4,'|')) AS ClientName,
EXTRACT_TOKEN(Strings,5,'|') AS ClientAddress,
EventID
FROM Security
WHERE EventID=4624
AND TimeGenerated BETWEEN TIMESTAMP('2023-01-25 00:00', 'yyyy-MM-dd hh:mm') AND TIMESTAMP('2023-01-25 23:59', 'yyyy-MM-dd hh:mm')
ORDER BY timegenerated
Sunucuya giriş yapan kullanıcıları event loglarından incelemek yukarıdaki SQL çalıştırılır.
SELECT QUANTIZE(TimeGenerated, 86400) AS Day, COUNT(*) AS [TotalErrorsCount]
FROM APPLICATION
WHERE EventType = 1 OR EventType = 2
GROUP BY Day
ORDER BY TotalErrorsCount DESC
Günlük olarak gruplamak için yukarıdaki SQL çalıştırılır.
select EventTypeName, count(*) as [EventTypeCount] from System group by EventTypeName
Yukarıdaki sorguyu çalıştırarak etkinlik türüne göre gruplandırılmış veriyi bulabilir, “Display Chart” seçeneğine tıklayarak buradan güzel bir grafik elde edebilirsiniz.

Logu CSV formatında dışarıya çıkarma ve bütünlüğünü korumak için aşağıdaki işlemlerin yapılması önerilir.

SELECT QUANTIZE(TimeGenerated, 86400) AS Day
, COUNT(*) AS [TotalErrorsCount]
INTO '[OUTFILEPATH]\ApplicationLogErrorsWarningTop1000.CSV'
FROM APPLICATION
WHERE EventType = 1 OR EventType = 2
GROUP BY Day
ORDER BY TotalErrorsCount DESC

Logu CSV olarak dışarı çıkardık fakat ilgili dosyayı taşınırken başına bazı olayların gelmemesi için dosyanın hash’i alınmalıdır. Bu işlemi yapmak için komut satırı (cmd) açılır ve CertUtil komutu kullanılarak hash değeri alınır.

CertUtil -hashfile ornekDosya.csv SHA256 ile hash bilgisi öğrenilir.

Artık rapor dosyasını taşırken ek olarak “92f0441bffaa4f023c8715ca2bd713192a8a44ac18d4dd96f7e03cac4cab62ff” hash bilgisini de paylaşmalıyız ki ilgili dosya taşınırken değiştirilemesin.

Umarım faydalı olmuştur. Keyifli okumalar 😊

--

--

Ertuğrul AKDAĞ
Ertuğrul AKDAĞ

Responses (1)