Graylog Nedir ve Neden Kullanılır?
Graylog, merkezi log yönetimi için güçlü ve açık kaynaklı bir platformdur. Sistemlerinizden, uygulamalarınızdan ve ağ cihazlarınızdan gelen logları tek bir noktada toplamanıza, depolamanıza, aramanıza, analiz etmenize ve görselleştirmenize olanak tanır. Graylog 1.x serisi, özellikle CentOS 7 gibi olgun işletim sistemlerinde stabil ve güvenilir bir çözüm sunmuştur. Bu rehberde, Graylog 1.x’in temel bileşenleri olan MongoDB (meta veri depolama için), Elasticsearch (log indeksleme ve arama için) ve Graylog sunucusunun CentOS 7 üzerine nasıl kurulacağını adım adım ele alacağız.
Log yönetimi, modern BT altyapılarında sorun giderme, güvenlik denetimi, performans analizi ve uyumluluk gereksinimlerini karşılamak için kritik öneme sahiptir. Graylog, binlerce sunucudan gelen logları saniyeler içinde işleyebilme yeteneğiyle, bu süreçleri otomatikleştirmek ve basitleştirmek için ideal bir araçtır.
Ön Gereksinimlerin Hazırlanması ve Sistem Kurulumu
Graylog, birden fazla bileşenden oluştuğu için, kurulum sürecine başlamadan önce CentOS 7 sunucunuzun gerekli yazılımlara ve ayarlara sahip olduğundan emin olmalıyız.
Sistem Güncellemeleri ve Temel Paketler
İlk olarak, sisteminizi güncelleyelim ve gerekli bazı yardımcı programları kuralım:
sudo yum update -y
sudo yum install -y epel-release pwgen curl wget vim
Java (OpenJDK) Kurulumu
Graylog sunucusu ve Elasticsearch, çalışmak için Java’ya ihtiyaç duyar. Graylog 1.x serisi genellikle Java 8 ile uyumludur.
sudo yum install -y java-1.8.0-openjdk-devel
sudo java -version
Komutun çıktısı Java 1.8 olduğunu doğrulamalıdır.
MongoDB Kurulumu
MongoDB, Graylog’un yapılandırma verilerini ve meta verilerini depolamak için kullanılır. Graylog 1.x ile genellikle MongoDB 3.x sürümleri sorunsuz çalışır.
MongoDB deposunu ekleyelim:
sudo tee /etc/yum.repos.d/mongodb-org-3.0.repo <
MongoDB'yi kuralım ve servisi başlatalım:
sudo yum install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
systemctl status mongod komutu çıktısında "active (running)" ifadesini görmelisiniz.
Elasticsearch Kurulumu
Elasticsearch, Graylog'un logları indekslediği, depoladığı ve hızlı arama yapabildiği ana bileşendir. Graylog 1.x için Elasticsearch 2.x sürümleri önerilir.
Elasticsearch deposunu ekleyelim:
sudo tee /etc/yum.repos.d/elasticsearch.repo <
Elasticsearch'ü kuralım:
sudo yum install -y elasticsearch
Elasticsearch yapılandırmasını düzenlememiz gerekiyor. Özellikle Graylog'un bağlanabilmesi için küme adını (cluster name) ayarlamalıyız.
sudo vim /etc/elasticsearch/elasticsearch.yml
Aşağıdaki satırları bulun veya ekleyin:
# cluster.name: graylog
network.host: 192.168.1.1 (veya 0.0.0.0 tüm arayüzlerden dinlemek için)
Yukarıdaki satırları yorumdan çıkarın ve aşağıdaki gibi düzenleyin:
cluster.name: graylog
network.host: 0.0.0.0
Kaydedip çıkın (:wq). Şimdi Elasticsearch servisini başlatalım ve etkinleştirelim:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl status elasticsearch
Elasticsearch'ün çalıştığını test etmek için:
curl -XGET 'http://localhost:9200'
Çıktı olarak bir JSON objesi görmelisiniz, bu Elasticsearch'ün başarıyla çalıştığını gösterir.
Graylog Sunucu Kurulumu ve Yapılandırması
Tüm bağımlılıklar kurulduktan sonra, sıra Graylog sunucusunu kurmaya geldi.
Graylog Paketlerini İndirme ve Kurulum
Graylog'un kendi RPM deposunu ekleyelim ve Graylog sunucusunu kuralım. Bu rehber için Graylog 1.x serisinin son sürümü olan 1.3'ü kullanacağız.
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.3-repository-el7.rpm
sudo yum install -y graylog-server
Graylog Yapılandırması
Graylog sunucusunun temel ayarlarını yapmalıyız. Bu ayarlar /etc/graylog/server/server.conf dosyasında bulunur.
sudo vim /etc/graylog/server/server.conf
Aşağıdaki önemli ayarları bulup düzenlememiz gerekiyor:
password_secret: Bu, Graylog'un dahili verilerini şifrelemek için kullanılan benzersiz bir anahtardır. Güvenlik için 96 karakterlik rastgele bir dize olmalıdır.root_password_sha2: Graylog web arayüzüne giriş yapacağınızadminkullanıcısının şifresinin SHA-256 hash değeridir.root_username: Web arayüzüne giriş yapacağınız kullanıcı adıdır. Varsayılan olarakadmin'dir. Değiştirmemeniz önerilir.web_listen_address: Graylog web arayüzünün hangi IP adresinden ve porttan dinleyeceğini belirtir. Tüm arayüzlerden erişim için0.0.0.0:9000kullanabilirsiniz.rest_listen_uri: Graylog API'sinin dinleyeceği adres. Genellikle web arayüzü ile aynı IP ve portta olur.elasticsearch_cluster_name: Elasticsearch kümenizin adıdır. Daha öncegraylogolarak ayarlamıştık.no_master_only_node_creation: Elasticsearch 2.x ile Graylog 1.x kullanırken bu ayarıntrueolması önemlidir. Aksi takdirde Elasticsearch kümesi başlatılamayabilir.
pwgen -N 96 -s 1
Yukarıdaki komutla üretilen çıktıyı kopyalayın ve password_secret = satırına yapıştırın.
echo -n "your_admin_password" | shasum -a 256
your_admin_password yerine kendi belirlediğiniz şifreyi yazın. Komutun çıktısını kopyalayın ve root_password_sha2 = satırına yapıştırın.
root_username = admin
web_listen_address = 0.0.0.0:9000
rest_listen_uri = http://0.0.0.0:9000/api/
elasticsearch_cluster_name = graylog
no_master_only_node_creation = true
Yapılandırma dosyasını kaydedip kapatın (:wq).
Graylog Sunucuyu Başlatma
Şimdi Graylog sunucusunu başlatalım ve sistem başlangıcında otomatik olarak çalışmasını sağlayalım:
sudo systemctl start graylog-server
sudo systemctl enable graylog-server
sudo systemctl status graylog-server
Graylog'un tamamen başlaması biraz zaman alabilir. Logları kontrol ederek herhangi bir hata olup olmadığını gözlemleyebilirsiniz:
sudo tail -f /var/log/graylog-server/server.log
Loglarda "Graylog server up and running" gibi bir mesaj gördüğünüzde, sunucunun hazır olduğunu anlayabilirsiniz.
Graylog Web Arayüzüne Erişim ve İlk Ayarlar
Graylog sunucusu çalışmaya başladıktan sonra, web arayüzüne erişebilir ve logları toplamaya başlayabiliriz.
Güvenlik Duvarı Ayarları
Graylog web arayüzüne dışarıdan erişebilmek için CentOS güvenlik duvarında (firewalld) 9000 portunu açmamız gerekiyor:
sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload
Eğer logları Graylog'a göndermek için GELF UDP input kullanacaksanız, 12201 UDP portunu da açmanız gerekebilir:
sudo firewall-cmd --add-port=12201/udp --permanent
sudo firewall-cmd --reload
Web Arayüzüne Bağlanma
Web tarayıcınızı açın ve Graylog sunucunuzun IP adresini ve 9000 portunu kullanarak bağlanın:
http://:9000
Karşınıza Graylog giriş ekranı gelecektir. Kullanıcı adı olarak admin ve daha önce belirlediğiniz şifreyi kullanarak giriş yapın.
İlk Input (Giriş) Oluşturma
Graylog'un logları alabilmesi için bir "Input" (Giriş) oluşturmanız gerekir. En yaygın kullanılan ve önerilen input tipi GELF (Graylog Extended Log Format) UDP'dir.
- Graylog web arayüzünde, üst menüden System -> Inputs yolunu izleyin.
- "Select input" açılır listesinden GELF UDP'yi seçin ve "Launch new input" düğmesine tıklayın.
- Açılan pencerede aşağıdaki ayarları yapın:
- Title: Loglarınızı tanımlayan bir başlık verin (örn. "GELF UDP Input").
- Bind address:
0.0.0.0(Tüm IP adreslerinden gelen bağlantıları kabul etmek için). - Port:
12201(Varsayılan GELF UDP portu). - Diğer ayarları varsayılan bırakabilirsiniz.
- "Save" düğmesine tıklayın. Input'unuz "Running" durumunda görünmelidir.
Log Gönderme Testi
Input'unuzun çalışıp çalışmadığını test etmek için, sunucunuzdan veya başka bir makineden basit bir GELF mesajı gönderebilirsiniz. Sunucunuzda netcat kurulu olduğundan emin olun (sudo yum install -y nc).
echo '{"version": "1.1", "host": "test_host", "short_message": "Hello Graylog from CentOS!", "level": 6}' | nc -u -w 1 12201
Graylog web arayüzünde "Search" sekmesine gidin. Gönderdiğiniz mesajı görmelisiniz. Bu, Graylog kurulumunuzun başarılı olduğunu ve logları almaya hazır olduğunu gösterir.
Sonuç ve Sıkça Sorulan Sorular
Bu rehberde, CentOS 7 üzerine Graylog 1.x'i MongoDB ve Elasticsearch ile birlikte nasıl kuracağınızı detaylı bir şekilde öğrendiniz. Artık merkezi bir log yönetim sistemine sahipsiniz ve sunucularınızdan, uygulamalarınızdan ve ağ cihazlarınızdan gelen logları tek bir yerden yönetebilir, arayabilir ve analiz edebilirsiniz.
Graylog 1.x serisi, o dönem için güçlü bir çözüm sunmuş olsa da, Graylog'un daha yeni sürümleri (örn. Graylog 5.x), daha gelişmiş özellikler, performans iyileştirmeleri ve güncel bağımlılıklarla (Elasticsearch 7.x, MongoDB 4.x/5.x) gelmektedir. Yeni kurulumlar için güncel sürümleri değerlendirmek, uzun vadede daha iyi bir deneyim sağlayacaktır.
Sıkça Sorulan Sorular (SSS)
S: Graylog sunucusu başlatılamıyor, ne yapmalıyım?
C: İlk olarak sudo systemctl status graylog-server komutunu kontrol edin. Ardından sudo tail -f /var/log/graylog-server/server.log komutuyla Graylog'un loglarını inceleyin. Genellikle hatalar burada açıkça belirtilir. Java, MongoDB ve Elasticsearch servislerinin çalıştığından emin olun.
S: Graylog web arayüzüne erişemiyorum.
C: Sunucunuzun IP adresini ve 9000 portunu doğru yazdığınızdan emin olun. CentOS güvenlik duvarında (firewalld) 9000 portunun açık olduğundan emin olun: sudo firewall-cmd --list-all. Ayrıca /etc/graylog/server/server.conf dosyasındaki web_listen_address ayarını kontrol edin.
S: Loglar Graylog'a gelmiyor.
C:
- Graylog web arayüzünde System -> Inputs altında oluşturduğunuz input'un "Running" durumda olduğundan emin olun.
- Eğer GELF UDP kullanıyorsanız, CentOS güvenlik duvarında 12201 UDP portunun açık olduğundan emin olun.
- Log gönderen cihazınızın doğru IP adresine ve porta (Graylog sunucusu IP'si ve 12201) log gönderdiğinden emin olun.
- Log formatının GELF olduğundan emin olun.
S: Graylog veya Elasticsearch çok fazla kaynak tüketiyor.
C: Bu, işlenen log miktarına bağlı olarak normal olabilir. Elasticsearch'e ayrılan RAM miktarını (/etc/elasticsearch/jvm.options dosyasından, -Xms ve -Xmx parametreleri) artırabilirsiniz. Graylog sunucusu için de JVM heap boyutu ayarı (/etc/sysconfig/graylog-server dosyasındaki GRAYLOG_SERVER_JAVA_OPTS) kontrol edilebilir. Ancak, Graylog 1.x'in eski bir sürüm olduğunu ve modern sistemlerde performans darboğazları yaşayabileceğini unutmayın.
S: Neden Graylog 1.x kurmalıyım, daha yeni sürümleri varken?
C: Bu rehber, belirli bir gereksinim (Graylog 1.x kurulumu) üzerine yazılmıştır. Gerçek dünya senaryolarında, genellikle eski sistemlerle uyumluluk veya belirli bir projede zaten kullanılan bir sürüm olması gibi nedenlerle eski sürümler tercih edilebilir. Yeni kurulumlar için her zaman en güncel ve desteklenen Graylog sürümünü tercih etmeniz önerilir.