Graylog Genel Kullanım Rehberi

Arif Emre Yazıcıoğlu
inventiv
Published in
5 min readJan 19, 2023

Makalede; Graylog’un genel kullanımı, Input, Stream, Rules, Index, Dashboard ve Alert oluşturma konularına değinilmiştir.

Graylog Nedir?

Graylog, log verilerini aramak ve analiz etmek için web tabanlı bir arabirimin yanı sıra uyarı ve raporlama için bir dizi araç sağlar (Dashboard & Alerts). Syslog , Windows events logs ve application logs dahil olmak üzere çok çeşitli veri kaynaklarını destekler.

Graylog Input

Graylog, uygulamalardan gönderilen logları input ile alır. Input bir veya birden fazla olabilir.

Bu inputlar, TCP veya UDP protokollerini kullanabilir ve GELF, CEF, Syslog veya RAW gibi farklı veri formatlarını alabilir.

Bu makalede UDP ve GELF kullanarak input oluşturulacaktır.

Input oluşturmak için Graylog ana sayfasında “System” menüsünün altında “Inputs” tıklanır.

Açılan sayfada “Select input” kısmında, “GELF UDP” seçilir ve “Launch new input” butonuna tıklanır.

Açılan formda; Input’un başlığı, IP adresi ve port numarası verilir. Eğer daha önce başka inputlar oluşturduysa port numarası farklı verilmelidir.

Burada “override_source” kısmına girilen değer, makalenin ilerleyen kısımlarında görülecek “Stream” için önemlidir. Bu değerin de daha önce oluşturulan inputlara verilen değerlerden farklı olması gerekir.

Uygulamanızda Serilog implementasyonu yaptığınız kısımda, burada verdiğiniz IP adresi ve port numarasını kullanacaksınız.

Şimdi uygulamanızın, Graylogda oluşturduğunuz input ile bağlantısı hazır durumda.

Deneme amaçlı bir log gönderin ve Input içinde ve görmeye çalışın.

Görüldüğü gibi uygulamadan gönderilen log, Graylog’da oluşturulan inputa geldi.

Graylog Stream

Inputa gelen loglar, kurallar uygulanarak farklı streamlere yönlendirilebilir. Stream oluştururken, bazı kurallar eklenir ve bu kurallar sayesinde streame bağlanılan inputa gelen loglardan bu kurallara uyan loglar bu streamde gösterilir. Bir log birden fazla streame yönlendirilebilir.

Stream Rules

Stream kuralları, inputa gelen logları filtreleyerek, bu streamde basılması istenilen input türlerinin görülmesini sağlar. Örneğin;

Oluşturulan inputta, override_source değeri olarak api.deneme verilmişti. İlk kuralda source, api.deneme olması zorunlu kuralını koyarak sadece override_source değeri api.deneme olan input’un logları basılmış oldu.

İkinci kuralda ise log leveli 6 olması istenildiği için bu streamde sadece information logları basılması sağlanmış oldu.

Graylog Index

Index Ne İşe Yarar?

Yeni bir stream oluşturulduğunda özel bir durum yoksa “Default index set” seçilir. Fakat index oluşturmak istenilen durumlar olabilir.

Klasik arama motorlarında veri tabanları üzerinden arama gerçekleştirilirken, ElasticSearch aramaları “Indice” olarak adlandırılan index dosyaları üzerinden gerçekleştirilir. ElasticSearch Clusterlarında birden fazla veri tabanı (Indice) bulunabilir.

ElasticSearch’e herhangi bir veri kaydedilirken, veri içerisinde daha önceden belirlenen alanlar indekslenir. ElasticSearch, bu işlemi veri kaydının ilk anında gerçekleştirdiği ve verileri indeks listesine göre sınıflandırdığı için, arama sonuçlarına hızlıca ulaşabilir.

Graylog Dashboard ve Alert Kullanımı

1. Dashboard

Graylog’da Dashboard, veriler üzerinde özet bilgileri çıkarılmasını ve bu sayede grafikleştirilebilip analiz edilmesini sağlayan araçtır.

1.1 Dashboard Oluşturulması

Daha sonrasında sağ taraftan “Create new Dashboard” butonuna tıklanmalıdır.

Daha sonrasında açılan kısımda sol taraftaki menüden “+” sembolüne basılır ve gelen seçeneklerden “Generic” başlığı altındaki “Aggregation” seçeneği seçilip devam edilir.

Sıradaki adım olarak açılan widget kısmında “Edit” butonuna basılır ve gerekli ayarlamalar yapılmaya başlanır.

Untitled Aggregation => Dashboard’a özel isim bu kısımdan verilir.

Search => Sol üst kısımdan bir zaman verilerek grafiğin hangi logları izleneceği belirlenir. Örneğin; son 5 dakika içindeki loglar.

Select Streams => İlgili Dashboard’un hangi stream ile bağdaştıralacağı listeden seçilerek belirlenir.

Visualization Type => Dashboard’un görsel yansıtmasını belirler. Örneğin “Data Table” , “ Area Chart” ,“Single Number” vs.

Rows => Satırları hangi log property’sine göre ayarlayacağınızı belirler.

Columns => Sütünları hangi log property’sine göre ayarlayacağınızı belirler.

Metrics => Her satır ve alt sütun için takip edilen birim (Grafiğin Çizilmesinde Belirlenecek Değer)

Sorting => Verilen Log property’sine göre sıralama yapmaya yarar.

Yukarıda belirtilen alan tanımlarına uygun örnek bir kullanım göstermek gerekirse

Ve son olarak grafik çıktısı da şu şekildedir :

2. Alerts (Uyarılar)

Graylog Uyarıları, toplanan ve analiz edilen verilerde belirli koşullar karşılandığında tetiklenen bildirimlerdir.

Bu uyarılar, e-posta, Slack veya özel bir webhook gibi çeşitli hedeflere gönderilecek şekilde yapılandırılabilir ve kullanıcıları veya sistemleri önemli olaylar veya dikkat gerektirebilecek sorunlar hakkında bilgilendirmek için kullanılabilir. Örneğin, belirli bir uygulama tarafından loga kaydedilen hata mesajlarının sayısı belirli bir eşiği aşarsa, ele alınması gereken bir sorun olabileceğini belirten bir yöneticiye bildirimde bulunmak için bir uyarı ayarlanabilir.

2.1 Alert oluşturulması

Karşınıza çıkan yeni ekranda “Alert” ile ilgili gerekli “Event” detayları ayarlanır.

Daha Sonrasında “Next” denilip ilerlenir ve açılan yeni “Condition” ekranında bir “Condition” tipi (Filter & Aggregation) seçilir. Daha sonrasında ekran ayarlanabilecek şekilde aşağıdaki görsel haline gelir.

Buradan öncelikle ilgili önceden oluşturulan “Stream” seçilir , daha sonrasında “Search within the last” parametresinden hangi aralıktaki loglara bakılacağı ayarlanır. “Execute search query” kısmından ise bu uyarı’nın (alert) ne kadar sürede çalıştırılacağı belirtilir. “Create Events for definition” kısmından ise uyarının tetiklenmesi için gereken şart basit bir şekilde yazılır.

Sonrasında Notifications kısmından bir notification oluşturarak atılacak bildirim ayarlanır.

Resimlerde görüldüğü üzere bilgiler doldurulur. “User Recipients” ve “Email Recipients” kısımlarına bildirimin gideceği mailler girilir. Bütün parametreler doldurulduktan sonra “Execute Test Notification” butonuna basılarak bildirimin ilgili maile yollanıp yollanmadığı test edilir.

Bu işlemden de sonra artık Graylog alert kurulumu tamamlanmış olur. Verilen maile ilgili gerekçe (Condition) sağlandığı takdirde belirtilen zaman aralıklarında mail atılır.

Makalemizde, Graylog hakkında genel bilgiler verildi ve temel bir log mekanizması kuruldu.

KAYNAKÇA

Graylog Dokümantasyon

Bu makalede emeği geçen Asrin Ziya Hocaoglu ve Mahmut SAZLIK ’a teşekkürlerimi sunarım.

--

--