Ubuntu 22.04 Üzerine Elasticsearch Kurulumu ve Yapılandırması
Elasticsearch, dağıtılmış, RESTful bir arama ve analiz motorudur. Büyük veri kümeleri üzerinde hızlı arama, analiz ve görselleştirme yetenekleri sunar. Log yönetimi, tam metin arama, güvenlik analizi, iş zekası ve uygulama performans izleme gibi çeşitli alanlarda yaygın olarak kullanılmaktadır. Gelişmiş sorgulama yetenekleri, ölçeklenebilirliği ve JSON tabanlı API’si sayesinde geliştiriciler ve sistem yöneticileri için vazgeçilmez bir araç haline gelmiştir.
Bu kapsamlı teknik makale, Ubuntu 22.04 LTS (Uzun Süreli Destek) sürümü üzerine Elasticsearch’ün en güncel 8.x sürümünün nasıl kurulacağını ve temel düzeyde nasıl yapılandırılacağını adım adım açıklayacaktır. Ubuntu 22.04, kararlılığı ve güncel paket desteği nedeniyle sunucu ortamlarında sıkça tercih edilen bir işletim sistemidir. Elasticsearch 8.x sürümüyle birlikte gelen güvenlik odaklı değişikliklere özellikle dikkat ederek, sisteminizi güvenli ve verimli bir şekilde kurmanıza yardımcı olacağız. Makalenin sonunda, kurulumunuzu doğrulayacak ve olası sorunlara karşı çözüm önerileri sunacağız.
Ön Gereksinimler
Elasticsearch kurulumuna başlamadan önce aşağıdaki ön gereksinimlerin karşılandığından emin olmalısınız:
* İşletim Sistemi: Ubuntu 22.04 LTS kurulu bir sunucu veya sanal makine.
* Kullanıcı Yetkileri: sudo ayrıcalıklarına sahip bir kullanıcı hesabı.
* Sistem Kaynakları:
* RAM: Üretim ortamları için minimum 8 GB RAM önerilir. Test veya geliştirme ortamları için 4 GB RAM yeterli olabilir, ancak performans sınırlamaları yaşanabilir. Elasticsearch heap boyutunu belirlerken bu kritik bir faktördür.
* CPU: En az 2 çekirdekli bir işlemci.
* Disk Alanı: Elasticsearch’ün verilerini depolayacağı yeterli disk alanı. Disk performansı, Elasticsearch performansı için hayati öneme sahiptir. SSD kullanımı şiddetle tavsiye edilir.
* Ağ Bağlantısı: Sunucunun internete erişimi olmalıdır, zira gerekli paketler ve depolar indirilecektir.
* Java Geliştirme Kiti (JDK): Elasticsearch, çalışmak için bir Java Sanal Makinesi (JVM) gerektirir. Elasticsearch 8.x için OpenJDK 17 veya daha yenisi önerilir.
Bu gereksinimler sağlandığında, Elasticsearch kurulumuna güvenle başlayabiliriz.
Sistem Güncelleme ve Gerekli Paketlerin Kurulumu
Kuruluma başlamadan önce, Ubuntu sisteminizin güncel olduğundan ve gerekli temel paketlerin yüklü olduğundan emin olmalıyız.
Sistemi Güncelleme
İlk olarak, paket listesini güncelleyelim ve mevcut paketleri yükseltelim:
sudo apt update
sudo apt upgrade -y
Bu komutlar, sisteminizdeki tüm paketlerin en son sürümlerine güncellenmesini sağlar.
Java Geliştirme Kitini (JDK) Kurma
Elasticsearch, çalışmak için Java’ya ihtiyaç duyar. Elasticsearch 8.x için OpenJDK 17 önerilir. apt-transport-https paketi, HTTPS üzerinden paket depolarına erişim için gereklidir.
sudo apt install apt-transport-https openjdk-17-jdk -y
Kurulum tamamlandıktan sonra, Java’nın doğru bir şekilde kurulup kurulmadığını kontrol edebilirsiniz:
java -version
Çıktı olarak openjdk version "17.0.x" benzeri bir satır görmelisiniz. Bu, Java’nın başarıyla kurulduğunu gösterir.
Elasticsearch APT Deposunu Ekleme
Elasticsearch’ü resmi Elastic deposundan kurmak, en güncel sürümleri ve güvenlik yamalarını almanızı sağlar.
Elasticsearch GPG Anahtarını İçe Aktarma
Depodan indirilen paketlerin bütünlüğünü doğrulamak için Elastic’in GPG anahtarını sisteminize eklemelisiniz. apt-key komutu Ubuntu 22.04’te deprecated olduğu için, anahtarı gpg --dearmor ile /usr/share/keyrings dizinine kaydetme yöntemini kullanacağız:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Bu komut, GPG anahtarını indirir ve güvenli bir şekilde anahtar halkasına ekler.
Elasticsearch Deposunu Kaynak Listesine Ekleme
Şimdi, Elasticsearch 8.x paketlerini içeren depoyu sisteminizin kaynak 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
Bu komut, elastic-8.x.list adında yeni bir dosya oluşturur ve Elasticsearch deposunun adresini bu dosyaya yazar. signed-by parametresi, anahtarın konumunu belirtir.
Depoyu ekledikten sonra, sisteminizin paket önbelleğini güncellemeniz gerekir:
sudo apt update
Bu adım, yeni eklenen depodaki paket bilgilerinin alınmasını sağlar.
Elasticsearch Kurulumu
Tüm ön hazırlıklar tamamlandığına göre, artık Elasticsearch’ü kurabiliriz.
sudo apt install elasticsearch -y
Bu komut, Elasticsearch paketini ve bağımlılıklarını indirip kuracaktır. Kurulum sırasında herhangi bir hata oluşmazsa, Elasticsearch başarıyla sisteminize yüklenmiş demektir.
Elasticsearch Servisini Yönetme
Kurulumdan sonra, Elasticsearch varsayılan olarak otomatik başlatılacak ve çalışır duruma gelecektir. Servisi manuel olarak başlatmak, durdurmak veya durumunu kontrol etmek için aşağıdaki systemctl komutlarını kullanabilirsiniz:
* Elasticsearch servisini başlatma:
sudo systemctl start elasticsearch
* Elasticsearch servisini durdurma:
sudo systemctl stop elasticsearch
* Elasticsearch servisini yeniden başlatma:
sudo systemctl restart elasticsearch
* Elasticsearch servisinin durumunu kontrol etme:
sudo systemctl status elasticsearch
Durum kontrolü çıktısında active (running) ifadesini görmelisiniz.
* Sistem başlangıcında otomatik başlatmayı etkinleştirme: (Bu, apt install ile otomatik olarak yapılır, ancak kontrol etmekte fayda var.)
sudo systemctl enable elasticsearch
Elasticsearch Yapılandırması
Elasticsearch’ün ana yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml konumundadır. Bu dosya, küme adı, düğüm adı, ağ ayarları, veri ve log yolları gibi birçok önemli ayarı içerir. Elasticsearch 8.x ile birlikte güvenlik varsayılan olarak etkinleştirilmiştir, bu da yapılandırma sürecini biraz farklılaştırır.
Yapılandırma Dosyası Konumu
Ana yapılandırma dosyası:
/etc/elasticsearch/elasticsearch.yml
JVM seçenekleri dosyası (heap boyutu gibi):
/etc/elasticsearch/jvm.options
Temel Yapılandırmalar
Yapılandırma dosyasını düzenlemek için bir metin düzenleyici kullanın (örneğin, nano):
sudo nano /etc/elasticsearch/elasticsearch.yml
Aşağıdaki temel ayarları gözden geçirelim ve gerektiğinde değiştirelim:
* cluster.name: Elasticsearch kümenizin adı. Aynı kümede yer alan tüm düğümlerin aynı küme adına sahip olması gerekir. Geliştirme ortamında varsayılan olarak bırakılabilir, ancak üretimde benzersiz bir ad vermeniz önerilir.
cluster.name: my-elastic-cluster
* node.name: Bu düğümün adı. Her düğüm için benzersiz olmalıdır.
node.name: node-1
* path.data: Elasticsearch verilerinin depolanacağı dizin. Varsayılan olarak /var/lib/elasticsearch‘tur. Yüksek performanslı bir diskte olması tavsiye edilir.
path.data: /var/lib/elasticsearch
* path.logs: Elasticsearch loglarının depolanacağı dizin. Varsayılan olarak /var/log/elasticsearch‘tur.
path.logs: /var/log/elasticsearch
* network.host: Elasticsearch’ün hangi ağ arayüzlerinden gelen bağlantıları dinleyeceğini belirler.
* localhost veya 127.0.0.1: Sadece yerel makineden erişilebilir.
* 0.0.0.0: Tüm ağ arayüzlerinden erişilebilir (dikkatli kullanılmalı, güvenlik duvarı ile korunmalı).
* Belirli bir IP adresi: Sadece o IP adresinden erişilebilir.
network.host: 0.0.0.0 # veya sunucunuzun IP adresi
ÖNEMLİ: network.host değerini 0.0.0.0 olarak ayarlarsanız, Elasticsearch’e dışarıdan erişim sağlanacağını unutmayın. Bu durumda güvenlik duvarınızı doğru şekilde yapılandırmanız kritik öneme sahiptir.
* http.port: Elasticsearch’ün HTTP API’si için dinleyeceği port. Varsayılan 9200’dür.
http.port: 9200
* discovery.type: Tek düğümlü bir kurulum yapıyorsanız, küme keşif mekanizmasını single-node olarak ayarlamanız gerekir. Bu, üretimde birden fazla düğüm için geçerli değildir.
discovery.type: single-node
Bu ayar genellikle Elasticsearch’ün ilk kurulumunda otomatik olarak ayarlanır, ancak kontrol etmekte fayda var.
Değişiklikleri kaydettikten sonra (Nano’da Ctrl+O, Enter, Ctrl+X), Elasticsearch servisini yeniden başlatmanız gerekir:
sudo systemctl restart elasticsearch
Elasticsearch 8.x Güvenlik Yapılandırması
Elasticsearch 8.x ile birlikte güvenlik (TLS/SSL ve kimlik doğrulama) varsayılan olarak etkinleştirilmiştir. Bu, ilk kurulumda otomatik olarak bir dizi güvenlik ayarı ve süreci devreye sokar.
Kurulumdan sonra, Elasticsearch size aşağıdaki gibi önemli bilgiler içeren bir çıktı verebilir (veya loglarda bulabilirsiniz):
* elastic kullanıcısının otomatik oluşturulan parolası.
* Kibana’yı Elasticsearch’e bağlamak için kullanılacak bir enrollment token.
* Başka düğümleri kümeye eklemek için kullanılacak enrollment token’lar.
Bu bilgileri kesinlikle kaydetmeli ve güvenli bir yerde saklamalısınız! Eğer kaçırdıysanız, aşağıdaki komutlarla parolaları sıfırlayabilir ve tokenları yeniden oluşturabilirsiniz.
1. elastic Kullanıcısı için Parola Ayarlama/Sıfırlama:
Elasticsearch, elastic adında süper kullanıcı yetkilerine sahip bir kullanıcı oluşturur. Kurulum sırasında otomatik bir parola atanır. Bu parolayı değiştirmek veya ilk kez ayarlamak için aşağıdaki interaktif komutu kullanabilirsiniz:
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
Bu komut, elastic, kibana_system, logstash_system, beats_system, remote_monitoring_user gibi yerleşik kullanıcılar için parola ayarlamanızı isteyecektir. Güçlü parolalar belirlemeye özen gösterin.
2. Enrollment Token Oluşturma (Kibana veya Diğer Düğümler İçin):
Eğer Kibana’yı kurup Elasticsearch’e bağlayacaksanız veya kümeye başka düğümler ekleyecekseniz, enrollment tokenlara ihtiyacınız olacaktır.
* Kibana için enrollment token oluşturma:
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Bu komut, Kibana’nın Elasticsearch’e güvenli bir şekilde bağlanması için kullanılacak bir token üretecektir. Çıktıdaki token’ı kopyalayın.
* Yeni bir Elasticsearch düğümü için enrollment token oluşturma:
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
Bu token, yeni bir düğümün mevcut kümeye katılması için kullanılır.
3. Sertifikalar:
Elasticsearch 8.x, TLS/SSL sertifikalarını da otomatik olarak oluşturur ve kullanır. Bu sertifikalar /etc/elasticsearch/certs dizininde bulunur. Özellikle http_ca.crt dosyası, Elasticsearch ile güvenli bağlantı kurarken (örneğin curl veya Kibana üzerinden) güvenilen CA sertifikası olarak kullanılabilir.
JVM Ayarları (Heap Boyutu)
Elasticsearch’ün performansının önemli bir kısmı, JVM’e ayrılan heap belleğiyle (RAM) ilişkilidir. Heap boyutu, /etc/elasticsearch/jvm.options dosyasında yapılandırılır.
sudo nano /etc/elasticsearch/jvm.options
Aşağıdaki satırları bulmalısınız:
-Xms4g
-Xmx4g
* -Xms: Başlangıç heap boyutu.
* -Xmx: Maksimum heap boyutu.
Bu iki değer genellikle aynı ayarlanır. Kural olarak, sunucunuzdaki toplam RAM’in yarısı kadar, ancak 30.5 GB’ı geçmeyecek şekilde bir değer belirlemelisiniz. Örneğin, 8 GB RAM’e sahip bir sunucu için 4 GB uygun bir değerdir. Eğer 16 GB RAM’iniz varsa, 8 GB ayırabilirsiniz. Eğer 64 GB RAM’iniz varsa, 30.5 GB ayırmanız önerilir (JVM Garbage Collector’ın verimli çalışması için).
Değişiklikleri kaydettikten sonra Elasticsearch servisini yeniden başlatmayı unutmayın.
Swapping’i Devre Dışı Bırakma
Elasticsearch, diskte swap alanı kullanmaktan hoşlanmaz, çünkü bu durum performansı ciddi şekilde düşürür. Swapping’i tamamen devre dışı bırakmak veya minimuma indirmek önemlidir.
Geçici olarak swap’ı kapatmak için:
sudo swapoff -a
Kalıcı olarak swap kullanımını azaltmak için /etc/sysctl.conf dosyasını düzenleyin:
sudo nano /etc/sysctl.conf
Dosyanın sonuna aşağıdaki satırı ekleyin:
vm.swappiness=1
Değişiklikleri uygulamak için:
sudo sysctl -p
Bu ayar, çekirdeğe swap alanını kullanma eğilimini minimuma indirmesini söyler.
Dosya Tanımlayıcı Limitlerini Artırma
Elasticsearch, çok sayıda dosya tanımlayıcıya (file descriptors) ihtiyaç duyar. Varsayılan limitler genellikle yetersizdir. Bu limitleri artırmak için /etc/security/limits.conf dosyasını düzenlemelisiniz:
sudo nano /etc/security/limits.conf
Dosyanın sonuna aşağıdaki satırları ekleyin:
elasticsearch - nofile 65536
elasticsearch - memlock unlimited
* nofile 65536: Elasticsearch kullanıcısı için açılabilir dosya sayısını 65536’ya yükseltir.
* memlock unlimited: Elasticsearch’ün belleği kilitlemesine izin verir, böylece JVM heap’i swap’e yazılamaz. Bu mlockall ayarı için gereklidir ve elasticsearch.yml dosyasında bootstrap.memory_lock: true olarak ayarlanır (varsayılan olarak yorum satırı halindedir). Güvenlik açısından bu ayarı etkinleştirmek faydalı olabilir, ancak önce memlock unlimited ayarını yapmalısınız.
Bu değişikliklerin etkili olması için oturumu kapatıp tekrar açmanız veya sunucuyu yeniden başlatmanız gerekebilir.
Güvenlik Duvarı Yapılandırması (UFW)
Eğer sunucunuzda UFW (Uncomplicated Firewall) etkinse, Elasticsearch’e dışarıdan erişime izin vermek için ilgili portları açmanız gerekir.
* Elasticsearch HTTP Portu (9200):
sudo ufw allow 9200/tcp
* Elasticsearch Transport Portu (9300): Bu port, küme içindeki düğümlerin birbirleriyle iletişim kurması için kullanılır. Tek düğümlü kurulumlarda dışarıdan erişime kapalı olabilir, ancak birden fazla düğümünüz varsa veya gelecekte ekleyecekseniz açmanız gerekir.
sudo ufw allow 9300/tcp
* Kibana Portu (5601 – İleride kuracaksanız):
sudo ufw allow 5601/tcp
* Güvenlik duvarını etkinleştirme (eğer etkin değilse):
sudo ufw enable
* Güvenlik duvarı durumunu kontrol etme:
sudo ufw status
Çıktıda 9200 ve 9300 portlarının (veya açtığınız diğer portların) izinli olduğunu görmelisiniz.
Elasticsearch’ü Test Etme
Tüm yapılandırmalar tamamlandıktan sonra, Elasticsearch’ün düzgün çalışıp çalışmadığını kontrol edebiliriz. Elasticsearch 8.x varsayılan olarak HTTPS ve kimlik doğrulama kullandığı için test komutumuz buna uygun olmalıdır.
Bir terminalden curl komutu ile test edelim:
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic: https://localhost:9200
* --cacert /etc/elasticsearch/certs/http_ca.crt: Elasticsearch’ün otomatik oluşturduğu CA sertifikasını belirtiriz. Bu, curl‘ın sunucunun kimliğini doğrulamasına yardımcı olur.
* -u elastic:: elastic kullanıcısı ve belirlediğiniz parolayı kullanarak kimlik doğrulaması yapar.
* https://localhost:9200: Elasticsearch’ün HTTP API’sine HTTPS üzerinden bağlanır.
Eğer her şey yolundaysa, Elasticsearch düğümünün durumu, sürümü ve diğer bilgileri içeren bir JSON çıktısı almalısınız. Çıktıda cluster_name, cluster_uuid, version gibi alanları görmeniz, Elasticsearch’ün başarıyla çalıştığını gösterir.
{
"name" : "node-1",
"cluster_name" : "my-elastic-cluster",
"cluster_uuid" : "...",
"version" : {
"number" : "8.x.x",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "...",
"build_date" : "...",
"build_snapshot" : false,
"lucene_version" : "...",
"minimum_wire_compatibility_version" : "...",
"minimum_index_compatibility_version" : "..."
},
"tagline" : "You Know, for Search"
}
Bu çıktıyı alıyorsanız, tebrikler! Elasticsearch sunucunuz başarıyla kurulmuş ve yapılandırılmıştır.
Kibana Kurulumu (İsteğe Bağlı ama Şiddetle Tavsiye Edilir)
Kibana, Elasticsearch verilerini görselleştirmek, yönetmek ve analiz etmek için kullanılan açık kaynaklı bir kullanıcı arayüzüdür. Elasticsearch Stack’in önemli bir parçasıdır ve kurulumu oldukça kolaydır.
Kibana Kurulumu
Daha önce Elasticsearch deposunu eklediğimiz için Kibana’yı da aynı depodan kolayca kurabiliriz:
sudo apt install kibana -y
Kurulum tamamlandıktan sonra, Kibana servisini etkinleştirip başlatalım:
sudo systemctl enable kibana
sudo systemctl start kibana
Kibana servisinin durumunu kontrol edelim:
sudo systemctl status kibana
active (running) çıktısını görmelisiniz.
Kibana Yapılandırması
Kibana’nın ana yapılandırma dosyası /etc/kibana/kibana.yml konumundadır.
sudo nano /etc/kibana/kibana.yml
Aşağıdaki temel ayarları gözden geçirelim:
* server.port: Kibana’nın dinleyeceği port. Varsayılan 5601’dir.
server.port: 5601
* server.host: Kibana’nın hangi ağ arayüzlerinden gelen bağlantıları dinleyeceğini belirler. Dışarıdan erişilebilir olması için 0.0.0.0 olarak ayarlayın.
server.host: "0.0.0.0"
* elasticsearch.hosts: Kibana’nın bağlanacağı Elasticsearch örneğinin adresi. Elasticsearch 8.x’te HTTPS kullandığı için https:// ile başlamalıdır.
elasticsearch.hosts: ["https://localhost:9200"]
* Elasticsearch 8.x ile Güvenli Bağlantı:
Kibana’nın Elasticsearch 8.x’e güvenli bir şekilde bağlanması için, elasticsearch.username ve elasticsearch.password yerine genellikle bir enrollment token kullanılır. Ancak, bu ayarlar da kullanılabilir.
Eğer Kibana’yı ilk kez çalıştırıyorsanız ve elasticsearch-create-enrollment-token -s kibana ile bir token oluşturduysanız, Kibana arayüzüne ilk eriştiğinizde bu token’ı girmeniz istenir.
Kibana, Elasticsearch ile güvenli bir şekilde iletişim kurmak için Elasticsearch’ün CA sertifikasını kullanmalıdır. Varsayılan kurulumda bu otomatik olarak yönetilir. Eğer sorun yaşarsanız, elasticsearch.ssl.certificateAuthorities ayarını /etc/elasticsearch/certs/http_ca.crt olarak belirtebilirsiniz.
Yapılandırma dosyasındaki değişiklikleri kaydettikten sonra Kibana servisini yeniden başlatın:
sudo systemctl restart kibana
Kibana için Güvenlik Duvarı Yapılandırması
Eğer UFW kullanıyorsanız, Kibana’ya dışarıdan erişime izin vermek için 5601 portunu açmanız gerekir:
sudo ufw allow 5601/tcp
Kibana’ya Tarayıcıdan Erişim
Artık bir web tarayıcısı açıp sunucunuzun IP adresini ve Kibana portunu kullanarak erişebilirsiniz:
http://:5601
İlk erişimde, Kibana sizden bir enrollment token isteyecektir. Elasticsearch sunucusunda oluşturduğunuz Kibana enrollment token’ını buraya yapıştırın ve devam edin. Ardından, elastic kullanıcısının parolasını girmeniz istenecektir. Başarılı bir şekilde giriş yaptıktan sonra Kibana kontrol paneline erişeceksiniz.
Sık Karşılaşılan Sorunlar ve Çözümleri
Kurulum ve yapılandırma sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri aşağıda listelenmiştir:
* Elasticsearch Başlamıyor (Heap Size Hatası):
* Belirti: sudo systemctl status elasticsearch komutu failed durumunu gösterir ve loglarda OutOfMemoryError veya max virtual memory areas vm.max_map_count [65530] is too low gibi hatalar görürsünüz.
* Çözüm: /etc/elasticsearch/jvm.options dosyasındaki -Xms ve -Xmx değerlerini sunucunuzun RAM’inin yarısı olacak şekilde ayarlayın (maksimum 30.5 GB). Ayrıca, vm.max_map_count hatası için sudo sysctl -w vm.max_map_count=262144 komutunu çalıştırın ve kalıcı hale getirmek için /etc/sysctl.conf dosyasına vm.max_map_count=262144 ekleyin.
* Ağ Bağlantı Sorunları / Dışarıdan Erişilemiyor:
* Belirti: curl veya tarayıcı ile erişmeye çalıştığınızda bağlantı reddediliyor veya zaman aşımına uğruyor.
* Çözüm:
* /etc/elasticsearch/elasticsearch.yml dosyasındaki network.host ayarını kontrol edin. Dışarıdan erişim için 0.0.0.0 veya sunucunuzun dış IP adresini kullanın.
* Güvenlik duvarı (UFW) ayarlarını kontrol edin. sudo ufw status komutu ile 9200 (Elasticsearch) ve 5601 (Kibana) portlarının açık olduğundan emin olun.
* Elasticsearch 8.x Güvenlik Hataları (Kimlik Doğrulama / Sertifika):
* Belirti: curl komutunda Authentication required veya SSL handshake failed gibi hatalar alıyorsunuz. Kibana, Elasticsearch’e bağlanamıyor.
* Çözüm:
* elastic kullanıcısının parolasını doğru girdiğinizden emin olun. Gerekirse sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive ile parolayı sıfırlayın.
* curl komutunda --cacert /etc/elasticsearch/certs/http_ca.crt parametresini kullandığınızdan emin olun.
* Kibana’nın Elasticsearch’e bağlanırken doğru enrollment token’ı veya kimlik bilgilerini kullandığından emin olun.
* Disk Alanı Yetersizliği:
* Belirti: Elasticsearch loglarında disk alanı uyarıları veya yazma hataları görüyorsunuz.
* Çözüm: /var/lib/elasticsearch dizinindeki disk kullanımını kontrol edin (df -h). Gereksiz verileri silin veya Elasticsearch’ün veri yolunu daha geniş bir diske taşıyın.
* Dosya Tanımlayıcı Limitleri Hatası:
* Belirti: Loglarda max file descriptors ile ilgili uyarılar veya hatalar görüyorsunuz.
* Çözüm: /etc/security/limits.conf dosyasında elasticsearch - nofile 65536 ve elasticsearch - memlock unlimited ayarlarının yapıldığından ve oturumu kapatıp tekrar açtığınızdan emin olun.
Herhangi bir sorunla karşılaştığınızda, Elasticsearch’ün log dosyalarını (/var/log/elasticsearch/) kontrol etmek, sorunun kökenini anlamak için en iyi başlangıç noktasıdır.
Sonuç
Bu makalede, Ubuntu 22.04 işletim sistemi üzerine Elasticsearch’ün en güncel 8.x sürümünün nasıl kurulacağını ve temel düzeyde nasıl yapılandırılacağını adım adım ele aldık. Kurulum öncesi ön gereksinimlerden başlayarak, Java’nın yüklenmesi, Elasticsearch deposunun eklenmesi, ana paketin kurulması ve ardından elasticsearch.yml dosyasında temel ağ ve küme ayarlarının nasıl yapılacağını gösterdik. Özellikle Elasticsearch 8.x ile birlikte gelen güvenlik odaklı değişikliklere (varsayılan TLS/SSL ve kimlik doğrulama, enrollment token’lar) vurgu yaparak, güvenli bir kurulumun adımlarını detaylandırdık. Ayrıca, JVM heap ayarları, swap’in devre dışı bırakılması ve dosya tanımlayıcı limitlerinin artırılması gibi performans ve kararlılık için kritik olan sistem seviyesi optimizasyonları da ele aldık. Son olarak, Kibana’nın kurulumunu ve Elasticsearch ile entegrasyonunu açıklayarak, verilerinizi görselleştirmek ve yönetmek için güçlü bir araca sahip olmanızı sağladık.
Artık Ubuntu 22.04 sunucunuzda çalışan güvenli ve yapılandırılmış bir Elasticsearch örneğiniz var. Bu, büyük veri kümeleri üzerinde güçlü arama ve analiz yeteneklerini kullanmaya başlamak için sağlam bir temel oluşturur.
Bir Sonraki Adımlar:
* Veri İndeksleme: Elasticsearch’e veri göndermeyi öğrenin. REST API’si veya çeşitli istemci kütüphaneleri aracılığıyla indeksleme yapabilirsiniz.
* API Kullanımı: Elasticsearch’ün zengin REST API’sini keşfederek sorgulama, indeks yönetimi ve küme sağlığı kontrolü gibi işlemleri yapın.
* Kümeleme: Tek düğümlü kurulumunuzu birden fazla düğüm içeren bir kümeye nasıl dönüştüreceğinizi araştırın.
* Elastic Stack Bileşenleri: Logstash (veri işleme) ve Beats (hafif veri göndericiler) gibi Elastic Stack’in diğer bileşenlerini keşfederek kapsamlı bir veri toplama ve analiz altyapısı kurun.
Elasticsearch’ün gücünü keşfetmeye devam edin ve veri odaklı uygulamalarınızda ve altyapınızda devrim yaratın!