Günümüzde sistemlerden akan verileri anlamlandırmak, hataları yakalamak ve performansı izlemek için ELK Stack (Elasticsearch, Logstash, Kibana) vazgeçilmez bir araç haline geldi. Bu yazıda, ELK Stack'in iki temel bileşeni olan Elasticsearch ve Kibana'nın kurulumunu, Ubuntu 22.04 üzerinde adım adım gerçekleştireceğiz. Logstash konusuna ise başka bir yazıda değineceğiz.
Ön Hazırlıklar
Kuruluma başlamadan önce sunucunuzda aşağıdaki gereksinimlerin karşılandığından emin olun:
- En az 4 GB RAM (önerilen 8 GB)
- Ubuntu 20.04 veya 22.04 LTS
- Java 11 veya 17 (OpenJDK)
- Root yetkisi veya sudo erişimi
Java sürümünü kontrol etmek için java -version komutunu çalıştırın. Eğer Java yoksa, sudo apt install openjdk-11-jdk -y ile kurun.
Elasticsearch Kurulumu
1. GPG Anahtarı ve Depo Ekleme
Elasticsearch'ün resmi deposunu eklemek için önce GPG anahtarını import edelim:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Ardından depo listesine ekleyelim:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
2. Elasticsearch Paketini Kurma
Depoyu güncelleyip Elasticsearch'ü kuralım:
sudo apt update && sudo apt install elasticsearch -y
Kurulum tamamlandığında, Elasticsearch'ün otomatik olarak başlamasını sağlamak için servisi etkinleştirin:
sudo systemctl enable elasticsearch
3. Yapılandırma Dosyasını Düzenleme
Ana yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml konumunda. Temel bir ayar yapalım: ağ adresini ayarlayarak dışarıdan erişime izin verelim (güvenlik duvarı kurallarına dikkat). Dosyayı açın:
sudo nano /etc/elasticsearch/elasticsearch.yml
Şu satırları ekleyin veya düzenleyin:
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node (tek düğüm için)
Not: Üretim ortamında multicast veya unicast discovery kullanmalısınız. Bu örnek test içindir.
4. Elasticsearch'ü Başlatma
Yapılandırmayı kaydedip servisi başlatın:
sudo systemctl start elasticsearch
Servis durumunu kontrol edin: sudo systemctl status elasticsearch. Çalışıyorsa, aşağıdaki komutla Elasticsearch'ün yanıt verdiğini doğrulayın:
curl -X GET "localhost:9200/"
Benzer bir çıktı görmelisiniz:
{"name" : "node-1", "cluster_name" : "elasticsearch", ...}
Kibana Kurulumu
1. Kibana Paketini Kurma
Kibana aynı depodan geldiği için doğrudan kuralım:
sudo apt install kibana -y
Ardından servisi etkinleştirin:
sudo systemctl enable kibana
2. Kibana Yapılandırması
Kibana yapılandırma dosyası /etc/kibana/kibana.yml konumunda. Elasticsearch'e bağlanmak için aşağıdaki ayarları yapın:
sudo nano /etc/kibana/kibana.yml
Şu satırları değiştirin:
server.port: 5601
server.host: "0.0.0.0" (dışarıdan erişim için)
elasticsearch.hosts: ["http://localhost:9200"]
Eğer Elasticsearch farklı bir sunucudaysa, hosts kısmını ona göre güncelleyin.
3. Kibana'yı Başlatma ve Web Arayüzüne Erişim
Servisi başlatın:
sudo systemctl start kibana
Şimdi tarayıcınızdan http://sunucu-ip:5601 adresine gidin. Kibana yüklenirken birkaç saniye sürebilir. İlk defa açtığınızda, size bir token isteyecektir. Bunu için Elasticsearch'ün oluşturduğu enrollment token'ı kullanabilir veya /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana komutuyla yeni bir token oluşturabilirsiniz.
Güvenlik Duvarı Ayarları
Eğer bir güvenlik duvarı kullanıyorsanız, Elasticsearch (9200) ve Kibana (5601) portlarını açmayı unutmayın:
sudo ufw allow 9200
sudo ufw allow 5601
Üretim ortamında daha sıkı kurallar uygulayın.
Son Kontroller
Kurulumun düzgün çalıştığını test etmek için Kibana üzerinden Index Management sayfasına gidin veya Dev Tools'da bir sorgu çalıştırın. Örneğin, Elasticsearch'e bir belge ekleyelim:
curl -X POST "localhost:9200/test/_doc" -H "Content-Type: application/json" -d '{"mesaj":"Merhaba ELK"}'
Ardından Kibana'da Discover bölümünde bu indeksi görebilirsiniz.
Sonuç
Bu adımları takip ederek temel bir ELK Stack kurulumu gerçekleştirdiniz. Artık sistem loglarınızı Elasticsearch'e gönderebilir ve Kibana ile görselleştirebilirsiniz. Logstash eklemek ve daha karmaşık pipeline'lar oluşturmak için bir sonraki yazımızı bekleyin.