Graylog’u Docker Olarak Kurmak

MEHMET ARİF EMRE ŞEN
Yazilim VIP
Published in
3 min readJul 14, 2018

Graylog log yönetimi ve analiz etme arçlarını içeren açık kaynaklı bir yazılımdır. Ayrıca on-premise(self-hosted) sürümüde mevcuttur. Yazının devamında başlıktanda anlaşılacağı üzere Docker teknolojisi kullanılarak Graylogu Linux altında bir container içinde koşturmak için gerekli adımları anlatıyor olacağım.Komutları tamamladıktan sonra kendi Graylog sunucunuz emrinize amade bir şekilde sizleri bekliyor olacak.

Graylog Docker Kurlumu

#!/bin/bash# mongo
docker run --name mongo -d mongo:3
sudo sysctl -w vm.max_map_count=262144# elastic
docker run --name elasticsearch \
-e "http.host=0.0.0.0" -e "xpack.security.enabled=false" \
-d docker.elastic.co/elasticsearch/elasticsearch:5.6.2
# mongo
docker run --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201 -p 514:514 \
-e GRAYLOG_WEB_ENDPOINT_URI="http://127.0.0.1:9000/api" \
-d graylog/graylog:2.4.0-1

Yukarıdaki scripti doğrudan çalıştırdığınızda Graylog container kurulumu tamamlanmış olacaktır.

Not: script çalışmadı ise root olarak yada sudo ile çalıştırmanızı öneririm.

Script başarılı bir şekilde çalıştıysa direk yazının en sonuna yani Kurulumu Tamamlama aşamasına geçebilirsiniz.

Eğer kurulum esnasında zorlandıysanız yada bir hata aldıysanız yazının devamını okumanızı tavsiye ederim. Şimdi gerekli adımları aşama aşama incelemeye başlamadan önce Graylog nedir bunun hakkında bilgi vermek istiyorum

Graylog bir kaç farklı bileşenden oluşuyor. Bu sebeple Graylog sunucusu kurmak için birkaç farklı container’ın koşturması gerekecek. Aşağıdaki görsel genel yapıyı anlamanız için yeterli olacaktır.

Graylog Mimarisi

Görseldede görüldüğü üzere, logların tutulduğu bir veritabanı var, loglar üstüne analiz vb. yapmak üzere sorgulama yapmak için elasticsearch kullanılıyor. Eğer daha detaylı bilgi istiyorsanız sayfasını inceleyebilirsiniz.

  1. Mongo Container Kurulumu

MongoDB döküman tabanlı esnek ve ölçeklenebilir bir veritabanı teknolojisidir. Daha detaylı bilgiyi kendi sitesinden alabilirsiniz.

Graylog logları saklamak için MongoDB teknolojisinden yararlanmıştır. Bu yüzden Graylog çaıştırmadan önce doğal olarak MongoDB kurmamız gerek. Aşağıdaki komutla basit bir mongo container’ı kuruyoruz.

docker run — name mongo -d mongo:3

2. Elasticsearch Container Kurulumu

Elasticsearch açık kaynaklı dağıtılabilir, ölçeklenebilir bir arama motorudur. Aşağıdaki linkten neden Elasticsearh kullandığına dair detaylı bilgi alabilirsiniz.

Graylog log yönetimi ve sorgulama için kullanacağımız bir sistem. Elbetteki işin sorgulama kısmı oldukça önemli. Bu sepebten dolayı Elasticsearch tercih edilmiş. Aynı MongoDB gibi Elasticsearch içinde bir kurulum yapmamız gerek. Ancak kuruluma başlamadan önce aşağıdaki komutu çalıştırıyoruz.

sudo sysctl -w vm.max_map_count=262144

Yukarıdaki linkte bu komutu neden çalıştırmamız gerektiği açıklanıyor. Detay bir bilgi olduğu için buraya eklemek istemedim. Ama eğer bilmek istiyorsanız linkten faydalanabilirsiniz.

Ardından elasticsearch container’ını kuruyoruz.

docker run --name elasticsearch \
-e "http.host=0.0.0.0" -e "xpack.security.enabled=false" \
-d docker.elastic.co/elasticsearch/elasticsearch:5.6.2

3. Graylog Container Kurulumu

En son olarak Graylog container’ını kuruyoruz. Biraz önce oluşturduğumuz mongo ve elasticsearch container’larını bu container’la bağlıyoruz. Yukarıda mongo için mongo, elasticsearch için elasticsearch ismini kullandım. Siz istediğiniz ismi verebilirsiniz.

docker run --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201 -p 514:514 \
-e GRAYLOG_WEB_ENDPOINT_URI="http://127.0.0.1:9000/api" \
-d graylog/graylog:2.4.0-1

4. Kurulumu Tamamlama

1 - 2 dakika bekledikten sonra taryacınızda http://localhost:9000 adresini açtığınızda aşağıdaki gibi bir sayfa gelecek. Burada ilk kullanıcıyı oluşturcaksınız.

Kullanıcı oluştuktan sonra anasayfaya yönlendirilicekseniz ve işlem tamamlanacak. Artık Graylog sunucusunu istediğiniz gibi yönetebilir ve istediğiniz amaç için kullanabilirsiniz.

--

--