Elasticsearch ve Kibana (ELK Stack) Kurulumu

📅 4 Ocak 2026Emre Karabulut
⏱️ Yaklaşık 8 dakikalık okuma süresi

Elbette, uzman bir sistem yöneticisi bakış açısıyla Elasticsearch ve Kibana kurulumunu detaylandıran teknik bir blog yazısı aşağıdadır:

Merhaba değerli okuyucularım,

Modern uygulama ve altyapı yönetiminde merkezi loglama, izleme ve veri analizi vazgeçilmez bir hale gelmiştir. Bu ihtiyaçları karşılayan en popüler çözümlerden biri de Elastic Stack (eski adıyla ELK Stack) olarak bilinen Elasticsearch, Logstash ve Kibana üçlüsüdür. Bu blog yazısında, bir sistem yöneticisi perspektifinden, Elastic Stack’in kalbi olan Elasticsearch ve görselleştirme arayüzü Kibana’nın Ubuntu/Debian tabanlı sistemlere nasıl kurulacağını adım adım ele alacağız.

ELK Stack Nedir?

ELK Stack, açık kaynak kodlu üç güçlü bileşenden oluşan bir bütündür:

  • Elasticsearch: Ölçeklenebilir, gerçek zamanlı bir arama ve analiz motorudur. Tüm verilerinizi depolar ve indeksler.
  • Kibana: Elasticsearch’teki verileri keşfetmek, analiz etmek ve görselleştirmek için kullanılan güçlü bir web arayüzüdür.
  • Logstash: Çeşitli kaynaklardan (log dosyaları, metrikler, webhook’lar vb.) veri toplamak, dönüştürmek ve Elasticsearch’e göndermek için kullanılan bir veri işleme pipeline’ıdır. (Bu yazıda kurulumuna değinmeyeceğiz.)

Bu rehberde, en güncel ve kararlı sürüm olan Elastic Stack 8.x serisinin kurulumunu göstereceğiz.

Ön Koşullar

Kuruluma başlamadan önce aşağıdaki maddelerin hazır olduğundan emin olun:

  • Ubuntu 20.04+ veya Debian 11+ gibi 64-bit bir işletim sistemi çalıştıran bir sunucu.
  • Minimum 4GB RAM (üretim ortamları için 8GB+ önerilir).
  • `sudo` yetkilerine sahip bir kullanıcı.
  • İnternet bağlantısı.
  • Java Runtime Environment (JRE) 17 veya üzeri (Elasticsearch 8.x için gereklidir).

Java Kurulumu

Eğer sunucunuzda Java yüklü değilse, aşağıdaki komutlarla OpenJDK 17’yi kurabilirsiniz:

sudo apt update
sudo apt install openjdk-17-jre -y

Kurulumu doğrulamak için:

java -version

Çıktı, Java 17 sürümünü göstermelidir.

Elasticsearch Kurulumu

Elasticsearch’ü resmi Elastic deposundan kurmak en iyi yöntemdir. Bu sayede güncellemeleri kolayca alabiliriz.

Adım 1: Elastic GPG Anahtarını ve Depoyu Ekleme

Öncelikle Elastic’in GPG anahtarını indirip sisteme eklememiz ve ardından depoyu tanımlamamız gerekiyor:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo apt install apt-transport-https -y
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

Depoyu ekledikten sonra paket listesini güncelleyin:

sudo apt update

Adım 2: Elasticsearch’i Kurma

Şimdi Elasticsearch paketini kurabiliriz:

sudo apt install elasticsearch -y

Adım 3: Elasticsearch Yapılandırma

Elasticsearch’ün temel yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml‘dir. Bu dosyada bazı önemli ayarları düzenlememiz gerekecek:

sudo nano /etc/elasticsearch/elasticsearch.yml

Aşağıdaki satırları bulun ve düzenleyin (veya ekleyin):

  • network.host: Elasticsearch’ün hangi ağ arayüzünde dinleyeceğini belirtir. Güvenlik nedeniyle varsayılan olarak localhost bırakılabilir. Dışarıdan erişim sağlamak istiyorsanız sunucunuzun IP adresini veya tüm arayüzler için 0.0.0.0 yazmalısınız (üretim ortamlarında güvenlik duvarı ile kısıtlayın).
  • http.port: Elasticsearch’ün dinleyeceği HTTP portu (varsayılan 9200).
  • discovery.seed_hosts: Küme keşfi için kullanılır. Tek düğümlü bir kurulumda ["localhost"] olarak bırakılabilir.
# network.host: 192.168.1.10
network.host: localhost

# http.port: 9200
http.port: 9200

# Tek düğümlü kurulum için
discovery.seed_hosts: ["localhost"]

Bellek Tahsisi (Heap Size)

Elasticsearch, Java sanal makinesi (JVM) üzerinde çalıştığı için bellek tahsisi çok önemlidir. Heap boyutu, sunucunuzun toplam RAM’inin yaklaşık yarısı kadar olmalıdır (ancak 32GB’ı asla geçmeyin). Bu ayarı /etc/elasticsearch/jvm.options dosyasında yaparız:

sudo nano /etc/elasticsearch/jvm.options

-Xms ve -Xmx satırlarını bulun ve örneğin 8GB RAM’e sahip bir sunucu için 4GB olarak ayarlayın:

-Xms4g
-Xmx4g

Dosyayı kaydedip kapatın.

Adım 4: Elasticsearch’i Başlatma ve Etkinleştirme

Yapılandırma değişikliklerinden sonra, Elasticsearch hizmetini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Servis durumunu kontrol etmek için:

sudo systemctl status elasticsearch

Durumun `active (running)` olduğunu görmelisiniz.

Adım 5: Kurulumu Doğrulama

Elasticsearch’ün çalışıp çalışmadığını bir `curl` komutu ile doğrulayabiliriz:

curl -X GET "localhost:9200"

Başarılı bir kurulumda, Elasticsearch kümesi hakkında bilgi içeren bir JSON çıktısı almalısınız. Elasticsearch 8.x ile varsayılan olarak güvenlik etkin olduğu için, çıktıda bir sertifika uyarısı görebilirsiniz, bu normaldir.

Kibana Kurulumu

Kibana, Elasticsearch verilerinizi görselleştirmek ve yönetmek için kullanacağımız web arayüzüdür.

Adım 1: Depoyu Ekleme (Zaten Yapıldıysa Atlayabilirsiniz)

Elasticsearch için depoyu zaten eklediğimizden, bu adımı atlayabilirsiniz. Ancak, emin olmak için veya farklı bir senaryoda bu adım tekrarlanabilir:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
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
sudo apt update

Adım 2: Kibana’yı Kurma

Şimdi Kibana paketini kurabiliriz:

sudo apt install kibana -y

Adım 3: Kibana Yapılandırma

Kibana’nın temel yapılandırma dosyası /etc/kibana/kibana.yml‘dir. Bu dosyada bazı önemli ayarları düzenlememiz gerekecek:

sudo nano /etc/kibana/kibana.yml

Aşağıdaki satırları bulun ve düzenleyin (veya ekleyin):

  • server.port: Kibana’nın dinleyeceği port (varsayılan 5601).
  • server.host: Kibana’nın hangi ağ arayüzünde dinleyeceğini belirtir. Varsayılan olarak localhost bırakılabilir. Dışarıdan erişim sağlamak istiyorsanız sunucunuzun IP adresini veya tüm arayüzler için 0.0.0.0 yazmalısınız.
  • elasticsearch.hosts: Elasticsearch kümenizin adresi. Elasticsearch’ünüz localhost üzerinde çalışıyorsa varsayılan ["http://localhost:9200"] yeterlidir.
# server.port: 5601
server.port: 5601

# server.host: "your-hostname"
server.host: "localhost" # veya "0.0.0.0" dışarıdan erişim için

# elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.hosts: ["http://localhost:9200"]

Dosyayı kaydedip kapatın.

Adım 4: Kibana’yı Başlatma ve Etkinleştirme

Yapılandırma değişikliklerinden sonra, Kibana hizmetini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl daemon-reload
sudo systemctl enable kibana
sudo systemctl start kibana

Servis durumunu kontrol etmek için:

sudo systemctl status kibana

Durumun `active (running)` olduğunu görmelisiniz.

Adım 5: Kurulumu Doğrulama ve Güvenlik Yapılandırması

Web tarayıcınızı açın ve Kibana arayüzüne erişin:

http://localhost:5601

Eğer Kibana’yı 0.0.0.0 üzerinde dinleyecek şekilde yapılandırdıysanız ve sunucuya dışarıdan erişiyorsanız, http://<sunucu_ip_adresi>:5601 adresini kullanın.

Elasticsearch 8.x ile birlikte varsayılan olarak güvenlik etkin gelir. Kibana’ya ilk eriştiğinizde sizden bir enrollment token isteyecektir. Bu tokenı Elasticsearch sunucusunda aşağıdaki komutu çalıştırarak alabilirsiniz:

sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

Bu komutun çıktısını kopyalayın ve Kibana arayüzündeki ilgili alana yapıştırın. Ardından Kibana sizi Elasticsearch’e bağlayacaktır. Bağlandıktan sonra, Kibana sizden bir kullanıcı adı ve şifre isteyebilir. Bu genellikle elastic kullanıcısı için otomatik oluşturulan şifredir.

Elasticsearch Kullanıcı Şifrelerini Yönetme

Eğer `elastic` veya diğer dahili kullanıcıların şifrelerini bilmenizi veya sıfırlamanızı gerektiren bir durum olursa, aşağıdaki komutu kullanabilirsiniz:

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

Bu komut size `elastic` kullanıcısı için yeni bir şifre sağlayacaktır. Diğer dahili kullanıcılar (kibana_system, logstash_system vb.) için de şifreleri değiştirebilirsiniz.

Kibana’yı Güvenli Hale Getirme

Eğer Kibana’yı dışarıdan erişime açtıysanız (server.host: "0.0.0.0"), sunucunuzun güvenlik duvarında (örn. UFW) sadece gerekli IP adreslerinden 5601 portuna erişime izin verdiğinizden emin olun:

sudo ufw allow 5601/tcp
sudo ufw enable

Sonuç

Bu kapsamlı rehberde, Elasticsearch ve Kibana’yı Ubuntu/Debian tabanlı bir sunucuya başarıyla kurdunuz ve temel güvenlik adımlarını tamamladınız. Artık merkezi loglama ve veri analizi yeteneklerinizin temelini attınız. Bir sonraki adımlar, Logstash veya Elastic Beats (Filebeat, Metricbeat vb.) kullanarak veri kaynaklarınızdan logları ve metrikleri Elasticsearch’e göndermek, ardından Kibana’da güçlü panolar ve görselleştirmeler oluşturmaktır.

Herhangi bir sorunla karşılaştığınızda, Elastic’in resmi dokümantasyonuna başvurmaktan çekinmeyin. İyi çalışmalar!

Emre Karabulut
📊 Bu yazı 4 kez okundu.