Elasticsearch ve Kibana (ELK Stack) Kurulumu

Merhaba değerli okuyucularım,

Bugün, modern altyapı yönetiminin vazgeçilmez araçlarından biri haline gelen ELK Stack’in (Elasticsearch, Logstash, Kibana) temelini oluşturan Elasticsearch ve Kibana’nın kurulum adımlarını detaylıca inceleyeceğiz. Bu rehber, bir sistem yöneticisi perspektifinden, stabil ve güvenilir bir kurulum sağlamayı hedeflemektedir.


Elasticsearch ve Kibana (ELK Stack) Kurulumu: Adım Adım Rehber

ELK Stack, log yönetimi, arama ve analitik alanında güçlü bir çözümdür. Elasticsearch, verilerin depolanması ve aranması için dağıtık, RESTful bir arama ve analiz motorudur. Kibana ise Elasticsearch’teki verileri görselleştirmek ve keşfetmek için kullanılan açık kaynaklı bir platformdur. Bu rehberde Ubuntu 22.04 LTS tabanlı bir sistemi kullanacağız, ancak adımlar çoğu Debian tabanlı Linux dağıtımı için benzerdir.

Ön Gereksinimler

  • Minimum 4GB RAM (üretim ortamları için daha fazlası önerilir)
  • Minimum 2 CPU çekirdeği
  • Sudo yetkilerine sahip bir kullanıcı
  • Güvenilir bir internet bağlantısı

Adım 1: Java (JDK) Kurulumu

Elasticsearch, Java sanal makinesi (JVM) üzerinde çalışır. Bu nedenle, Elasticsearch’ü kurmadan önce Java Development Kit (JDK) kurmamız gerekmektedir. Elasticsearch 7.x ve üzeri için OpenJDK 11 veya üzeri önerilir.

Sistem Paketlerini Güncelleme

sudo apt update
sudo apt upgrade -y

OpenJDK 11 Kurulumu

sudo apt install openjdk-11-jdk -y

Java Sürümünü Doğrulama

java -version

Çıktı olarak OpenJDK 11’i görmelisiniz.

Adım 2: Elasticsearch Kurulumu

Elasticsearch’ü resmi Elastic deposunu kullanarak kurmak, en güncel sürümü ve otomatik güncellemeleri almanızı sağlar.

Elasticsearch GPG Anahtarını Ekleme

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Elasticsearch Deposunu Ekleme

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

Yeni Depoyu Algılamak için Paket Listesini Güncelleme

sudo apt update

Elasticsearch Kurulumu

sudo apt install elasticsearch -y

Elasticsearch Yapılandırması

Elasticsearch’ün ana yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml konumundadır. Temel olarak aşağıdaki ayarları yapmamız gerekmektedir:

  • network.host: Elasticsearch’ün hangi IP adreslerinden erişilebilir olacağını belirler. Genellikle 0.0.0.0 (tüm arayüzler) veya sunucunuzun özel IP adresi olarak ayarlanır.
  • http.port: Elasticsearch’ün HTTP isteklerini dinleyeceği port (varsayılan 9200).
  • cluster.name: Kümenizin benzersiz adı.

Yapılandırma dosyasını bir metin düzenleyici ile açın:

sudo nano /etc/elasticsearch/elasticsearch.yml

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

#cluster.name: my-application
#node.name: node-1
#network.host: 192.168.1.1
#http.port: 9200

Örnek yapılandırma:

cluster.name: my-elk-cluster
node.name: node-1
network.host: 0.0.0.0 # Veya sunucunuzun özel IP adresi, örn: 192.168.1.10
http.port: 9200

Önemli Not: Elasticsearch’ün 8.x sürümleri varsayılan olarak güvenlik (TLS ve kimlik doğrulama) ile gelir. Bu ilk kurulumda kolaylık sağlamak için network.host: 0.0.0.0 ayarladığınızda güvenlik uyarıları alabilirsiniz. Üretim ortamlarında güvenlik ayarlarını (HTTPS, kullanıcı kimlik doğrulama) mutlaka yapılandırmalısınız.

Kernel Parametresi Ayarlaması

Elasticsearch’ün düzgün çalışabilmesi için vm.max_map_count kernel parametresinin en az 262144 olarak ayarlanması gerekmektedir.

sudo sysctl -w vm.max_map_count=262144

Bu ayarın kalıcı olması için /etc/sysctl.conf dosyasına ekleyin:

echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Elasticsearch Servisini Başlatma ve Etkinleştirme

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Elasticsearch Durumunu Kontrol Etme

sudo systemctl status elasticsearch

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

Elasticsearch’e Erişimi Doğrulama

Bir terminalden aşağıdaki komutu çalıştırarak Elasticsearch’ün çalışıp çalışmadığını kontrol edebilirsiniz:

curl -X GET "localhost:9200"

JSON formatında Elasticsearch hakkında bilgiler içeren bir çıktı almalısınız.

Adım 3: Kibana Kurulumu

Kibana, Elasticsearch’ten gelen verileri görselleştirmemizi sağlayan arayüzdür. Aynı Elastic deposundan kurulur.

Kibana Kurulumu

sudo apt install kibana -y

Kibana Yapılandırması

Kibana’nın ana yapılandırma dosyası /etc/kibana/kibana.yml konumundadır. Aşağıdaki ayarları kontrol edin ve düzenleyin:

  • server.port: Kibana’nın HTTP isteklerini dinleyeceği port (varsayılan 5601).
  • server.host: Kibana’ya hangi IP adreslerinden erişilebileceğini belirler. Genellikle 0.0.0.0 veya sunucunuzun özel IP adresi olarak ayarlanır.
  • elasticsearch.hosts: Kibana’nın bağlanacağı Elasticsearch ana bilgisayarlarının listesi.

Yapılandırma dosyasını bir metin düzenleyici ile açın:

sudo nano /etc/kibana/kibana.yml

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

#server.port: 5601
#server.host: "localhost"
#elasticsearch.hosts: ["http://localhost:9200"]

Örnek yapılandırma:

server.port: 5601
server.host: "0.0.0.0" # Veya sunucunuzun özel IP adresi
elasticsearch.hosts: ["http://localhost:9200"] # Veya Elasticsearch'ün IP adresi

Eğer Elasticsearch 8.x ile güvenlik aktifse, Kibana’nın Elasticsearch’e bağlanabilmesi için ek güvenlik ayarları (örneğin kimlik doğrulama tokenları veya sertifikalar) yapmanız gerekebilir. Bu rehberin kapsamı dışında olup, ileri düzey güvenlik yapılandırmaları için Elastic dokümantasyonuna bakmanız önerilir.

Kibana Servisini Başlatma ve Etkinleştirme

sudo systemctl start kibana
sudo systemctl enable kibana

Kibana Durumunu Kontrol Etme

sudo systemctl status kibana

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

Adım 4: Güvenlik Duvarı (Firewall) Yapılandırması

Eğer sunucunuzda bir güvenlik duvarı (örn. UFW) etkinse, Elasticsearch (9200) ve Kibana (5601) portlarına dışarıdan erişime izin vermeniz gerekmektedir.

UFW Kurulumu (Gerekliyse)

sudo apt install ufw -y
sudo ufw enable

Gerekli Portları Açma

sudo ufw allow 9200/tcp comment "Elasticsearch HTTP"
sudo ufw allow 5601/tcp comment "Kibana Web UI"
sudo ufw reload

Açık Portları Kontrol Etme

sudo ufw status

Adım 5: Kibana Web Arayüzüne Erişim

Artık Kibana’ya web tarayıcınızdan erişebilirsiniz. Tarayıcınızı açın ve aşağıdaki adrese gidin:

http://<sunucu_IP_adresi_veya_domaininiz>:5601

Kibana giriş ekranını görmelisiniz. Eğer Elasticsearch 8.x’in varsayılan güvenlik ayarları aktifse, sizden bir token isteyebilir. Bu token’ı Elasticsearch kurulumu sırasında konsolda verilen talimatları izleyerek alabilirsiniz.

Son Kontroller ve İlk Adımlar

Kurulumu başarıyla tamamladınız. Artık Elasticsearch verilerinizi depolamaya ve Kibana bu verileri görselleştirmeye hazır.

  • Veri Enjeksiyonu: Logstash, Filebeat, Metricbeat gibi Elastic Stack bileşenlerini kullanarak loglarınızı, metriklerinizi ve diğer verilerinizi Elasticsearch’e gönderebilirsiniz.
  • Kibana Keşfet: Kibana arayüzünde “Discover” sekmesini kullanarak Elasticsearch’teki verileri sorgulayabilir ve inceleyebilirsiniz.
  • Kibana Panoları: Verilerinizi görselleştirmek için panolar (dashboards) ve görselleştirmeler (visualizations) oluşturabilirsiniz.

Sonuç

Bu rehberde, bir sistem yöneticisi olarak Elasticsearch ve Kibana’yı Ubuntu tabanlı bir sisteme nasıl kuracağınızı adım adım öğrendiniz. Artık log yönetimi, uygulama performansı izleme veya herhangi bir veri analizi ihtiyacınız için güçlü bir temeliniz var. Unutmayın, üretim ortamlarında güvenlik, yedekleme ve performans optimizasyonu gibi konulara daha fazla dikkat etmeniz gerekecektir. Elastic’in kapsamlı dokümantasyonu, bu ileri düzey konular için değerli bir kaynaktır.

Başarılar dilerim!