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 olaraklocalhostbırakılabilir. Dışarıdan erişim sağlamak istiyorsanız sunucunuzun IP adresini veya tüm arayüzler için0.0.0.0yazmalı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 olaraklocalhostbırakılabilir. Dışarıdan erişim sağlamak istiyorsanız sunucunuzun IP adresini veya tüm arayüzler için0.0.0.0yazmalısınız.elasticsearch.hosts: Elasticsearch kümenizin adresi. Elasticsearch’ünüzlocalhostü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!
