Splunk Üzerinde Log Kesintilerini Tespit Etmek
  1. Anasayfa
  2. Siem Çözümleri

Splunk Üzerinde Log Kesintilerini Tespit Etmek

0

Splunk Üzerinde Log Kesintilerini Tespit Etmek. SIEM sistemlerinde en çok ihtiyaç duyulan ya da sistemin sağlıklı çalıştığından emin olunmak istenen konulardan biri log kesintilerini tespit edebilmektir. Bu konu neredeyse bütün SIEM değerlendirme kriterlerinde haklı olarak bulunmaktadır.

Log kesintisini tespit etmek konu başlığı altında birçok alt madde barındırmaktadır. Örnek olarak;

  • Bir sistemin hiç log göndermiyor olması
  • Bir sistemin sadece bazı logları göndermiyor olması
  • Logların geliyor ancak gecikmeli olması

Splunk üzerinde basit bir sorgulama ile bu durumlar tespit edilebilir ve alarm oluşturulabilir.

Splunk sorgulamaları SPL (Search Processing Language) adı verilen kendine özgü bir dil ile yapılmaktadır. Çok geniş içeriğe sahip olan SPL ile ihtiyaçların karşılanmasının birden fazla yöntemi bulunmaktadır. Bu yöntemler sorgunun basitliği, cevap dönme süresi gibi farklılıklara sahip olabilir. Bu yazıda çok fazla kaynaktan log toplanıyor olması ihtimali nedeniyle en performanslı ve kısa bir sorgu örneğini paylaşacağım. Performansa en çok pozitif etki eden etken az bilinen tstats komutu ile gizli bir alan olan _indextime alanını kullanmamız olacaktır.

Öncelikle loglardaki zaman bilgisi hakkında bilgi vermek istiyorum. Splunk her bir logu indekslerken iki adet zaman bilgisi kaydeder. Bu bilgiler _time ve _indextime alanlarında bulunur.

  • _time alanı logun içerisinde geçen zaman bilgisini içerir. Eğer log içerisinde bir zaman bilgisi yok ise Splunk Indexer’in zaman bilgisi kaydedilir.
  • _indextime alanı ise logun zaman bilgisinden bağımsız olarak Splunk Indexer’in bu logu alıp kaydettiği (indekslediği) zaman bilgisini kaydeder.

Biz bu çalışmada _indextime alanını kullanacağız. Bunun nedeni logların gecikmeli geliyor olması durumunu kesinti olarak tanımlamamaktır.

Splunk’ın her log için kesinlikle kaydettiği host alanını da sistemi belirlemek için kullanacağız.

Bir sistemin log kesintisini tespit etmek için yapacağımız işlemler;

  • Her host için en son indekslenen verinin zamanını bulacağız
  • Bu zamanın bizim belirleyeceğimiz süreden daha eski olup olmadığını kontrol edeceğiz
  • En son gelen log, bu belirlediğimiz zamandan daha eski ise listeleyeceğiz.

Kullanacağımız SPL sorgusu aşağıdaki şekildedir :

| tstats latest(_indextime) as latest where index=* earliest=-24h by host

| eval delay = now() -latest

| where delay > 900

| eval delay=tostring(delay, “duration”)

| fields -latest

Sonuç olarak aşağıdaki şekilde bir sonuç aldık. “test_host” isimli sistem 16 dakika 23 saniyedir log göndermiyor.

Resim-1

Şimdi kullandığımız SPL’i adım adım açıklayalım;

| tstats latest(_indextime) as latest where index=* earliest=-24h by host

tstats komutu Splunk’ın indekslenmiş alanlardan hızlı sorgulamamızı sağlayan komutdur.

Bu komut ile bütün indexlerde (index=* ) en son indekslenen logun indekslenme zamanını ( latest(_indextime) as latest ) host bazında listeleyecektir.

Aramayı son 24 saat’te gelen bütün loglarda yapacağımızı earliest=-24h parametresi ile veriyoruz. Bu komut çıktısında latest alanında epoch formatında en son loglanan zaman bilgisini elde ettik.

| eval delay = now() -latest

now() fonksiyonu bize sorgu anındaki zaman bilgisini epoch formatında verecektir. Şimdi, bu değer ile latest alanındaki zaman bilgisinin farkını alarak en son gelen logun kaç saniye önce geldiğini eval komutu ile hesaplıyoruz.

| where delay > 900

Hesapladığımız gecikme süresini saniye olarak belirlediğimiz maksimum gecikme süresi ile karşılaştırıp, bu değerden büyük olanları filtreliyoruz. Bu örnekte 15 dakika karşılığı olarak 900 saniye olarak kullandım.

| eval delay=tostring(delay, “duration”)

Artık elimizdeki liste (eğer varsa) 15 dakika’dan fazla süredir log göndermeyen hostları içeriyor. Artık çıktıyı okunması/yorumlanması daha kullanışlı olması için saat:dakika:saniye şeklinde görünmesi için formatlıyoruz. Burada yine eval komutunu tostring fonksiyonu ile kullanıyoruz. Sonucu yine delay alanına yazıyoruz.

| fields -latest

Son olarak elimizde ihtiyacımız kalmayan değer olan latest alanını kaldırıyoruz.

Bu sorguyu isterseniz “Save as Alert“ seçeneğini kullanarak alarm haline getirerek, düzenli aralıklar ile çalıştırılmasını ve e-posta ya da başka şekilde bilgilendirilmeyi sağlayabilirsiniz.

Umarım açıklamalar ve sorgu sizlere faydalı olmuştur.

Sorguda kullandığımız komutlar ve fonksiyonlar için aşağıdaki linklerden detaylı bilgi edinebilirsiniz.

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

Referanslar

https://www.mshowto.org

tstats

https://docs.splunk.com/Documentation/Splunk/8.2.3/SearchReference/Tstats

eval

https://docs.splunk.com/Documentation/Splunk/8.2.3/SearchReference/Eval

tostring https://docs.splunk.com/Documentation/Splunk/8.2.3/SearchReference/ConversionFunctions#tostring.28X.2CY.29

where

https://docs.splunk.com/Documentation/Splunk/8.2.3/SearchReference/Where

fields

https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Fields

Bu İçeriğe Tepkin Ne Oldu?
  • 8
    harika_
    Harika!!
  • 1
    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!

Yıldız Teknik Üniversitesi Elektronik ve Haberleşme Mühendisliği mezunuyum. 30 yıllık çalışma hayatımda Mikroişlemci Tabanlı Benzin İstasyonu Otomasyon Sistemi Tasarımı ve uygulaması ile başlayıp, 20 yıla yakın Gerçek-Zamanlı Finansal Veri Dağıtımı sistemleri üzerinde Türkiye’de ilkleri gerçekleştirdiğim Operasyon, Destek, Donanım, Network ve Yöneticilik tecrübem bulunmaktadır. Data Analitik konusunda lider bir ürün olan Splunk ile tanıştıktan sonra 2017’den beri profesyonel Splunk Danışmanlığı yapmaktayım. Splunk Core Certified Consultant sertifikasına sahibim ve Splunk adına Professional Service verme konusunda akrediteyim. Kurucusu olduğum DataVira Teknoloji A.Ş. şirketinde Splunk’ın Premimum ürünleri olan Enterprise Security (SIEM), ITSI (IT Service Intelligence), UBA (User Behaviour Analytics), Splunk SOAR (Phantom) ürünleri ile kurumsal büyük ölçekli müşterilere danışmanlık ve hizmet vermekteyiz. 10 GB/gün ile birkaç TB/gün kapasitelerinde Single-Site ve Multi-Site cluster olarak çalışan yapıların kurulumları ve diğer SIEM’lerden dönüşüm projeleri gerçekleştiriyorum. Ayrıca SplunkTrust üyesi olarak Splunk Community platformunda aktif destek vermekteyim.

Yazarın Profili
İlginizi Çekebilir

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