Veritabanı Yönetimi

    Elasticsearch Kurulumu ve İlk Index

    Elasticsearch 8'i sıfırdan kurup ilk index'i doğru mapping ile oluşturmanın adımları.

    13 dk okuma Güncellendi: 25 Ağustos 2026

    Elasticsearch kurulumu, apt install komutundan ibaret sanıldığı için sıklıkla yarım kalır. Paket kurulur, servis başlar, curl localhost:9200 çalışmaz; ya bağlantı reddedilir, ya sertifika hatası verir, ya da birkaç saat sonra süreç bellek yetersizliğinden ölür. Sebebi şu: Elasticsearch bir JVM uygulamasıdır ve işletim sisteminden birkaç somut şey bekler — ayrılmış bir yığın (heap) boyutu, yüksek bir bellek haritalama sınırı, kapalı bir takas alanı ve 8.x sürümlerinde varsayılan olarak açık gelen TLS güvenlik katmanı.

    Bu rehberde tek düğümlü ama üretime hazır bir Elasticsearch kurulumunu baştan sona yapacağız: önce çekirdek ve JVM ön koşullarını ayarlayacak, sonra resmî depodan kuracak, otomatik üretilen parola ve sertifikayla ilk bağlantıyı kuracak, elasticsearch.yml dosyasını anlamlı biçimde düzenleyecek, ilk index'i doğru bir mapping ve Türkçe metin analiziyle oluşturacak, toplu belge yükleyip ilk aramayı çalıştıracağız. Sonda da kümeyi izlemenin yolları ve en sık yapılan hatalar var.

    Sunucu Ön Koşulları: Bellek, JVM ve Çekirdek Ayarları#

    Elasticsearch'ün en sevmediği şey bellek belirsizliğidir. Kurulumdan önce üç ayarı yapın; bunlar atlandığında ortaya çıkan hatalar, sebebi anlaşılmadığı için saatler kaybettirir.

    Birincisi bellek haritalama sınırı. Lucene, index dosyalarını bellek haritalarıyla okur ve varsayılan çekirdek sınırı buna yetmez. Ayarlanmadığında servis, max virtual memory areas vm.max_map_count is too low hatasıyla başlamayı reddeder:

    # Kalıcı olarak ayarla
    echo 'vm.max_map_count=262144' | sudo tee /etc/sysctl.d/99-elasticsearch.conf
    sudo sysctl --system
    
    # Doğrula
    sysctl vm.max_map_count
    # vm.max_map_count = 262144
    

    İkincisi takas alanı. Yığının diske takas edilmesi, çöp toplama duraklamalarını saniyelere çıkarır ve düğümü kümeden düşürür. En temiz çözüm takası tamamen kapatmaktır:

    sudo swapoff -a
    # /etc/fstab içindeki swap satırını yorum satırı yapın ki yeniden başlatmada geri gelmesin
    sudo sed -i '/\sswap\s/s/^/#/' /etc/fstab
    free -h
    

    Üçüncüsü yığın boyutu. İki kural vardır ve ikisi de kesindir: yığın, toplam belleğin yarısını geçmemelidir (kalan yarı, Lucene'in dosya sistemi önbelleği için gereklidir ve arama hızını asıl belirleyen odur) ve yaklaşık 31 GB'ın üstüne çıkmamalıdır (bu eşiğin üzerinde JVM sıkıştırılmış işaretçileri kapatır, yani daha fazla bellek verdiğinizde etkin kapasite düşer).

    # 16 GB RAM'li bir sunucuda 8 GB yığın
    sudo tee /etc/elasticsearch/jvm.options.d/heap.options > /dev/null << 'JVM'
    -Xms8g
    -Xmx8g
    JVM
    

    -Xms ve -Xmx değerlerinin aynı olması önemlidir; JVM'in yığını çalışırken büyütüp küçültmesi, tam olarak istemediğiniz duraklamaları üretir.

    Sunucu RAMÖnerilen yığınNot
    4 GB2 GBGeliştirme, küçük index
    8 GB4 GBKüçük üretim
    16 GB8 GBYaygın başlangıç
    32 GB16 GBRahat üretim
    64 GB ve üzeri31 GBÜstüne çıkmayın

    Elasticsearch 8'i Depodan Kurmak#

    Resmî depoyu ekleyip kurun. Dağıtımın kendi deposundaki paketler çoğu zaman eskidir, Elastic'in kendi deposunu kullanın:

    sudo apt install -y apt-transport-https gnupg curl
    
    # İmzalama anahtarı
    curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch \
      | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch.gpg
    
    # Depo tanımı
    echo 'deb [signed-by=/usr/share/keyrings/elasticsearch.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
    sudo apt install -y elasticsearch
    

    Kurulum çıktısına dikkatle bakın. Elasticsearch 8, güvenliği varsayılan olarak açık kurar ve elastic süper kullanıcısının parolasını kurulum sırasında bir kez yazdırır. Bu satırı kaçırdıysanız panik yapmayın, sıfırlayabilirsiniz:

    sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
    # Yeni parola ekranda görünür; güvenli bir yere kaydedin
    

    Servisi etkinleştirip başlatın:

    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch
    sudo systemctl start elasticsearch
    sudo systemctl status elasticsearch --no-pager
    
    # İlk açılış birkaç dakika sürebilir; günlüğü izleyin
    sudo journalctl -u elasticsearch -f
    

    Yığın kilitleme kullanacaksanız systemd tarafında da izin vermeniz gerekir, aksi hâlde bootstrap.memory_lock ayarı sessizce başarısız olur:

    sudo systemctl edit elasticsearch
    
    [Service]
    LimitMEMLOCK=infinity
    

    İlk Bağlantı, Parola ve Sertifika#

    Elasticsearch 8'de HTTP katmanı TLS ile şifrelidir ve sertifika, kurulum sırasında üretilen kendi imzalı CA'ya dayanır. Bu yüzden düz curl http://localhost:9200 çalışmaz. CA sertifikası şu yolda durur:

    ls -l /etc/elasticsearch/certs/http_ca.crt
    
    # CA'yı vererek doğru şekilde bağlan
    curl --cacert /etc/elasticsearch/certs/http_ca.crt \
         -u elastic \
         'https://localhost:9200/?pretty'
    

    Çıktıda sürüm bilgisi ve küme adını görüyorsanız kurulum başarılıdır:

    {
      "name" : "es-node-1",
      "cluster_name" : "firmaniz-arama",
      "version" : { "number" : "8.x.y" },
      "tagline" : "You Know, for Search"
    }
    

    Uygulama sunucunuz farklı bir makinedeyse http_ca.crt dosyasını oraya kopyalayıp istemci kütüphanenize tanıtmanız gerekir. Sertifika doğrulamasını -k ile atlamak yalnızca hızlı bir test için kabul edilebilir; üretim kodunda asla kapatmayın, çünkü o durumda TLS'in sağladığı kimlik doğrulaması tamamen anlamsızlaşır.

    Uygulamalarınız için elastic süper kullanıcısını kullanmayın; dar yetkili bir kullanıcı oluşturun:

    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X POST 'https://localhost:9200/_security/user/uygulama?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "password" : "UygulamaParolasi123",
      "roles" : [ "arama_kullanicisi" ],
      "full_name" : "Uygulama Servis Hesabi"
    }'
    

    elasticsearch.yml: Tek Düğüm ve Küme Ayarları#

    Yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml içindedir. Tek düğümlü bir kurulum için gerekli minimum şudur:

    # /etc/elasticsearch/elasticsearch.yml
    cluster.name: firmaniz-arama
    node.name: es-node-1
    
    path.data: /var/lib/elasticsearch
    path.logs: /var/log/elasticsearch
    
    # Yalnızca yerel ve özel ağ arayüzünden dinle. 0.0.0.0 YAZMAYIN.
    network.host: 127.0.0.1
    http.port: 9200
    
    # Tek düğümlü kurulumda seçim mekanizmasını devre dışı bırakır
    discovery.type: single-node
    
    # Yığını belleğe kilitle (systemd tarafında LimitMEMLOCK gerekir)
    bootstrap.memory_lock: true
    

    Birden fazla düğüm kuracaksanız discovery.type satırını kaldırıp keşif ayarlarını verirsiniz:

    network.host: 185.12.34.56
    discovery.seed_hosts: ["es1.firmaniz.com", "es2.firmaniz.com", "es3.firmaniz.com"]
    cluster.initial_master_nodes: ["es-node-1", "es-node-2", "es-node-3"]
    

    cluster.initial_master_nodes yalnızca kümenin ilk açılışında kullanılır; küme bir kez oluştuktan sonra bu satırı kaldırmak iyi bir alışkanlıktır, çünkü unutulduğunda ileride yanlışlıkla ikinci bir küme oluşmasına yol açabilir. Güvenlik duvarında 9200 (HTTP) ve 9300 (düğümler arası taşıma) portlarını yalnızca gerekli adreslere açın:

    sudo ufw allow from 10.0.0.7 to any port 9200 proto tcp   # uygulama sunucusu
    sudo ufw allow from 185.12.34.57 to any port 9300 proto tcp  # diğer düğüm
    

    İlk Index'i Oluşturmak: Mapping ve Türkçe Analyzer#

    Elasticsearch, index'e ilk belgeyi attığınızda alan tiplerini kendisi tahmin eder. Bu "dinamik mapping" hızlı başlamak için iyidir ama üretimde sorun çıkarır: tarih sanılan bir metin, keyword olması gereken bir kimlik alanı ya da analiz edilmemesi gereken bir kod, sonradan düzeltilemez — mapping değiştirmek için index'i yeniden oluşturmanız gerekir. O yüzden index'i baştan tanımlayın.

    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X PUT 'https://localhost:9200/urunler?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 0,
        "analysis": {
          "analyzer": {
            "turkce": {
              "type": "turkish"
            }
          }
        }
      },
      "mappings": {
        "properties": {
          "baslik":   { "type": "text", "analyzer": "turkce" },
          "aciklama": { "type": "text", "analyzer": "turkce" },
          "kategori": { "type": "keyword" },
          "stokKodu": { "type": "keyword" },
          "fiyat":    { "type": "scaled_float", "scaling_factor": 100 },
          "stokta":   { "type": "boolean" },
          "eklenme":  { "type": "date", "format": "strict_date_optional_time" }
        }
      }
    }'
    

    Bu tanımdaki üç karar önemli. text ile keyword ayrımı en kritik olanıdır: text alanlar analiz edilir, yani kelimelere bölünür ve serbest metin aramasında kullanılır; keyword alanlar olduğu gibi saklanır ve filtreleme, gruplama, sıralama için kullanılır. Stok kodunu text yaparsanız tam eşleşme aramanız beklenmedik sonuçlar döner.

    Türkçe analyzer, dilin eklerini ayıklar. Böylece "sunucular" araması "sunucu" içeren belgeleri de bulur. Yerleşik turkish analiz zinciri, Türkçe küçültme (ki bu I ve İ ayrımı yüzünden özel bir iştir), durak kelime listesi ve gövdeleme adımlarını içerir.

    Replika sayısı tek düğümde 0 olmalıdır. Varsayılan 1'dir ve tek düğümlü bir kümede kopyalanacak başka düğüm olmadığı için küme sağlığı sonsuza kadar yellow kalır. Bu, kurulum sonrası "kümem neden sarı" sorusunun bir numaralı cevabıdır.

    Tek bir alanı hem arama hem filtreleme için kullanmanız gerekiyorsa çok alanlı (multi-field) tanım yapın:

    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X PUT 'https://localhost:9200/urunler/_mapping?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "properties": {
        "marka": {
          "type": "text",
          "analyzer": "turkce",
          "fields": { "ham": { "type": "keyword" } }
        }
      }
    }'
    

    Artık marka ile serbest arama, marka.ham ile tam eşleşme ve gruplama yapabilirsiniz. Yeni alan eklemek mevcut mapping'i bozmaz; var olan bir alanın tipini değiştirmek ise mümkün değildir.

    Belge Ekleme, Toplu Yükleme ve İlk Arama#

    Tek belge eklemek basittir; kimliği siz verirseniz aynı kimlikle tekrar gönderdiğinizde belge güncellenir:

    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X PUT 'https://localhost:9200/urunler/_doc/1001?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "baslik": "Sunucu Raf Kiti 1U",
      "aciklama": "19 inç kabinler için ayarlanabilir raylı montaj kiti",
      "kategori": "aksesuar",
      "stokKodu": "RK-1U-01",
      "fiyat": 1249.90,
      "stokta": true,
      "eklenme": "2026-08-25T09:30:00Z"
    }'
    

    Binlerce belge yükleyecekseniz tek tek göndermeyin; _bulk uç noktası aynı işi kat kat hızlı yapar. Biçim satır tabanlıdır: bir satır işlem tanımı, bir satır belge, ve dosya mutlaka boş bir satırla bitmelidir.

    cat > /tmp/urunler.ndjson << 'NDJSON'
    {"index":{"_index":"urunler","_id":"1002"}}
    {"baslik":"Kabin Fanı 120mm","kategori":"aksesuar","stokKodu":"FN-120","fiyat":349.00,"stokta":true,"eklenme":"2026-08-20T10:00:00Z"}
    {"index":{"_index":"urunler","_id":"1003"}}
    {"baslik":"Yedek Güç Kablosu","kategori":"kablo","stokKodu":"PW-C13","fiyat":89.50,"stokta":false,"eklenme":"2026-08-21T11:00:00Z"}
    
    NDJSON
    
    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X POST 'https://localhost:9200/_bulk?pretty' \
      -H 'Content-Type: application/x-ndjson' \
      --data-binary @/tmp/urunler.ndjson
    

    Toplu yüklemenin yanıtında "errors": false görmelisiniz. true ise her belgenin kendi hata nesnesine bakmanız gerekir; toplu istek kısmen başarılı olabilir ve HTTP durum kodu yine 200 döner — bu, gözden kaçan bir tuzaktır.

    Yeni yazılan belgeler varsayılan olarak yaklaşık bir saniye içinde aranabilir hâle gelir. Testte hemen görmek isterseniz index'i elle tazeleyin:

    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X POST 'https://localhost:9200/urunler/_refresh'
    
    # İlk arama: serbest metin + filtre
    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X GET 'https://localhost:9200/urunler/_search?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "query": {
        "bool": {
          "must":   [ { "match": { "baslik": "kabin fanları" } } ],
          "filter": [ { "term": { "stokta": true } } ]
        }
      },
      "size": 10
    }'
    

    must içine koyduğunuz sorgular alaka puanını etkiler, filter içindekiler etkilemez ve önbelleklenir — bu ayrım performans için çok önemlidir ve ayrıntısını Elasticsearch arama optimizasyonu yazısında bulabilirsiniz.

    Takma Adlar ve Index Şablonları#

    Kurulumun hemen ardından yapmanız gereken ve çoğu kişinin aylar sonra pişmanlıkla öğrendiği bir şey var: uygulamanızı index adına değil, takma ada (alias) bağlayın. Mapping'i değiştirmek için index'i yeniden oluşturmak zorunda kalacağınızı yukarıda söylemiştim; takma ad kullanıyorsanız bu işlem kullanıcıya hiç yansımaz. Yeni index'i arka planda doldurur, hazır olduğunda takma adı tek atomik işlemle çevirirsiniz.

    # Gerçek index'e bir takma ad ver
    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X POST 'https://localhost:9200/_aliases?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "actions": [ { "add": { "index": "urunler-v1", "alias": "urunler" } } ]
    }'
    
    # Yeni sürüm hazır olduğunda takma adı tek işlemde taşı (kesintisiz geçiş)
    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X POST 'https://localhost:9200/_aliases?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "actions": [
        { "remove": { "index": "urunler-v1", "alias": "urunler" } },
        { "add":    { "index": "urunler-v2", "alias": "urunler" } }
      ]
    }'
    

    İki eylemi aynı istekte göndermek önemlidir: Elasticsearch bunları tek bir işlem olarak uygular, dolayısıyla arada takma adın hiçbir index'i göstermediği bir an oluşmaz. Ayrı ayrı gönderirseniz o birkaç milisaniyede gelen sorgular hata alır.

    İkinci alışkanlık index şablonlarıdır. Günlük ya da olay verisi gibi tarihe göre bölünen index'ler kullanıyorsanız, her yeni index'i elle tanımlamak yerine bir şablon yazın; ada uyan her yeni index otomatik olarak doğru ayar ve mapping ile doğar:

    curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic \
      -X PUT 'https://localhost:9200/_index_template/loglar-sablonu?pretty' \
      -H 'Content-Type: application/json' -d '
    {
      "index_patterns": ["loglar-*"],
      "template": {
        "settings": { "number_of_shards": 1, "number_of_replicas": 0 },
        "mappings": {
          "properties": {
            "zaman":  { "type": "date" },
            "seviye": { "type": "keyword" },
            "mesaj":  { "type": "text", "analyzer": "standard" }
          }
        }
      }
    }'
    

    Şablon yalnızca yeni oluşturulan index'lere uygulanır; var olanları geriye dönük değiştirmez. Bu yüzden şablonu, veri akmaya başlamadan önce tanımlamak gerekir. Eski index'leri belli bir süre sonra otomatik silmek istiyorsanız index yaşam döngüsü politikaları (ILM) devreye girer; disk dolmasını önlemenin en temiz yolu budur ve zamanla büyüyen log index'lerinde neredeyse zorunludur.

    İzleme, Sağlık Durumu ve Sık Yapılan Hatalar#

    Elasticsearch'ün _cat uç noktaları, terminalde okunabilir tablolar döner ve günlük teşhisin en pratik aracıdır:

    ES='curl -s --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic'
    
    $ES 'https://localhost:9200/_cluster/health?pretty'
    $ES 'https://localhost:9200/_cat/indices?v&s=store.size:desc'
    $ES 'https://localhost:9200/_cat/nodes?v&h=name,heap.percent,ram.percent,cpu,load_1m'
    $ES 'https://localhost:9200/_cat/shards/urunler?v'
    

    Küme sağlığı üç renkten biridir ve anlamlarını karıştırmayın:

    RenkAnlamıYapılacak
    greenTüm birincil ve replika parçalar atanmışBir şey yok
    yellowBirincil parçalar tamam, replikalar eksikTek düğümde normal; replika sayısını 0 yapın
    redEn az bir birincil parça atanamamışAcil; veri erişilemez durumda

    Sık yapılan hataları sıralayayım. Birincisi, yığını sunucu belleğinin tamamına yakın vermek. Lucene'in dosya sistemi önbelleğine yer kalmaz ve arama hızı düşer; yarıdan fazlasını asla vermeyin. İkincisi, tek düğümde replika sayısını 1 bırakıp sağlık renginin sarı olmasına şaşırmak. Üçüncüsü, network.host değerini 0.0.0.0 yapıp Elasticsearch'ü internete açmak; 8.x'te kimlik doğrulama açık olsa bile bu kabul edilemez, çünkü servisi keşfedilebilir hâle getirir ve sürüm zafiyetlerine karşı savunmasız bırakır. Dışa açık bir uç noktaya ihtiyacınız varsa önüne bir ters vekil ve WAF katmanı koyun.

    Dördüncüsü, gereğinden fazla parça (shard) oluşturmak. Her parça, bellek ve dosya tanıtıcısı tüketen ayrı bir Lucene index'idir; birkaç gigabaytlık veri için otuz parça açmak, kümeyi yavaşlatmaktan başka işe yaramaz. Küçük index'ler için tek parça yeterlidir. Beşincisi, disk doluluk eşiğini göz ardı etmek: disk yüzde 85'i geçtiğinde Elasticsearch yeni parça atamayı durdurur, yüzde 95'te index'leri salt okunur yapar. Disk kullanımını izlemeyi ihmal etmeyin.

    # Disk eşikleri ve düğüm başına kullanım
    $ES 'https://localhost:9200/_cat/allocation?v'
    

    Sıkça Sorulan Sorular#

    Elasticsearch için ne kadar RAM gerekir#

    Geliştirme için 4 GB yeterlidir ama üretimde başlangıç noktası genellikle 16 GB'dır. Kural şudur: JVM yığınına toplam belleğin en fazla yarısını verin, kalan yarı Lucene'in dosya sistemi önbelleği için kalsın — arama hızını asıl belirleyen bu önbellektir. Yığın 31 GB'ı geçmemelidir, çünkü bu eşiğin üstünde JVM sıkıştırılmış işaretçileri kapatır ve daha fazla bellek verdiğiniz hâlde etkin kapasite düşer.

    Kümem neden yellow durumda#

    Tek düğümlü bir kurulumda bu neredeyse her zaman replika ayarından kaynaklanır. Varsayılan replika sayısı 1'dir ve kopyayı yerleştirecek ikinci bir düğüm olmadığı için replika parçalar atanamaz, küme de sarı kalır. Index ayarlarında number_of_replicas değerini 0 yaparsanız renk yeşile döner. Çok düğümlü bir kümede sarı görüyorsanız, bir düğümün düşmüş olup olmadığını kontrol edin.

    Mapping'i sonradan değiştirebilir miyim#

    Yeni alan eklemek serbesttir, ancak var olan bir alanın tipini ya da analyzer'ını değiştirmek mümkün değildir. Bunun için doğru mapping ile yeni bir index oluşturup _reindex API'siyle veriyi taşımanız gerekir. Kesintisiz geçiş için takma ad (alias) kullanmak iyi bir alışkanlıktır: uygulama her zaman takma ada bağlanır, siz de yeni index hazır olduğunda takma adı tek işlemle yeni index'e çevirirsiniz.

    Türkçe arama için ek eklenti kurmam gerekir mi#

    Hayır, Elasticsearch'ün yerleşik turkish analiz zinciri gövdeleme, durak kelime elemesi ve Türkçeye özgü küçük harfe çevirme adımlarını içerir; çoğu proje için yeterlidir. Aksan ve harf normalizasyonunda daha titiz sonuç istiyorsanız ICU eklentisi kurabilirsiniz. Yerleşik analyzer'ı özelleştirmek de mümkündür: kendi durak kelime listenizi ya da eş anlamlı sözlüğünüzü ekleyerek sonuç kalitesini belirgin biçimde artırabilirsiniz.

    Elasticsearch'ü veritabanı olarak kullanabilir miyim#

    Kullanmamanızı öneririm. Elasticsearch arama ve toplama (analitik) için tasarlanmıştır; işlem (transaction) desteği, ilişkisel bütünlük ve ana kayıt (source of truth) garantileri sunmaz. Yaygın ve sağlıklı mimari, asıl veriyi ilişkisel bir veritabanında ya da MongoDB'de tutup arama için gereken alanları Elasticsearch'e kopyalamaktır. Böylece index'i istediğiniz zaman yeniden inşa edebilirsiniz.

    Kurulumdan sonra dışarıdan nasıl erişirim#

    Doğrudan açmayın. network.host değerini yalnızca özel ağ arayüzüne verin, 9200 portunu güvenlik duvarında sadece uygulama sunucularına açın. Tarayıcıdan erişim gerekiyorsa önüne kimlik doğrulaması yapan bir ters vekil koyun ve TLS sertifikasını orada sonlandırın. Elasticsearch'ün 8.x sürümlerinde HTTP katmanı zaten şifrelidir; CA sertifikasını istemcilere dağıtmayı ve doğrulamayı kapatmamayı unutmayın.

    Kapanış#

    Elasticsearch kurulumunda başarıyı belirleyen şey paket yöneticisi değil, kurulumdan önce yaptığınız hazırlıktır. Aklınızda kalması gereken dört alışkanlık: yığını belleğin yarısıyla ve 31 GB tavanıyla sınırlayın, vm.max_map_count ile takas ayarlarını kurulum öncesinde halledin, index'i dinamik mapping'e bırakmadan text/keyword ayrımını bilinçli yaparak kendiniz tanımlayın ve tek düğümlü kurulumda replika sayısını 0'a çekerek kümeyi yeşile alın. Bir de _cat uç noktalarını günlük rutininize ekleyin; sorunları büyümeden görmenin en ucuz yolu budur.

    Elasticsearch bellek ve disk açısından cömert bir sunucu ister; paylaşımlı ortamda çalışması pratik değildir. Tam kaynak garantisiyle kurmak için VDS ve bulut sunucu paketlerimize, yüksek hacimli index'ler için dedicated sunucu seçeneğine bakabilirsiniz. Kurulum, sıkılaştırma ve izleme yükünü devretmek isterseniz sunucu yönetimi hizmetimiz bu işi üstlenir.

    ElasticsearchAramaKurulum

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.