Building a Production-Ready Elasticsearch Cluster (Installation & Configuration)
Elasticsearch kurulumunda en büyük hata, cluster yapısını sadece “çalışıyor mu?” seviyesinde ele almaktır.
Building a Production-Ready Elasticsearch Cluster (Installation & Configuration)

Elasticsearch kurulumunda en büyük hata, cluster yapısını sadece “çalışıyor mu?” seviyesinde ele almaktır.
Oysa production ortamında asıl kritik konu, bir node’un ayağa kalkması değil; cluster’ın güvenli, kararlı, ölçeklenebilir ve doğru tasarlanmış şekilde çalışmasıdır.
Bu dokümanda, sıfırdan secure ve production-ready bir Elasticsearch cluster nasıl kurulur, adım adım anlatıyorum.
Bu içerik basit bir kurulum rehberi değildir. Odak noktası doğrudan production yaklaşımıdır:
- multi-node cluster mimarisi
- secure by default yaklaşımı
- TLS (HTTP + Transport)
- authentication ve authorization
- certificate-based trust
- doğru node discovery ve cluster formation
- sistem seviyesi hazırlıklar
- doğrulama ve troubleshooting
En kritik nokta şudur:
Cluster doğru kurulmazsa, üstüne inşa edilen her şey yanlış olur.
Why Secure by Default?
Elasticsearch kurulumu teknik olarak birkaç komutla ayağa kaldırılabilir. Ama production ortamında “ayağa kalkması” yeterli değildir.
Aşağıdaki yapı production için kabul edilemez:
- authentication olmadan erişim
- TLS olmadan veri transferi
- node’lar arası şifresiz iletişim
- certificate doğrulaması olmadan cluster communication
Bu yüzden bu çalışma, secure cluster-first yaklaşımıyla tasarlanmıştır.
Yani security sonradan eklenen bir katman değil, cluster tasarımının doğrudan parçasıdır.
Production’da doğru yaklaşım şudur:
- önce secure cluster kurulur
- sonra index, ingestion, search ve analytics katmanları bunun üzerine inşa edilir
Architecture Overview
Bu çalışmada kullanılan yapı şu şekildedir:
- 3 node Elasticsearch cluster
- node’lar:
es01,es02,es03 - Docker-based deployment
- certificate generation için ayrı bir
setupcontainer - HTTP layer’da TLS
- transport layer’da TLS
- authenticated access
- node başına ayrı data volume
Bu yapı sayesinde aşağıdaki production beklentileri karşılanır:
- distributed çalışma modeli
- horizontal scalability
- high availability
- node-to-node secure communication
- certificate-based trust model
Why 3 Nodes?
Production ortamında minimum önerilen Elasticsearch cluster yapısı 3 node’dur.
Bunun nedeni yalnızca “çok node olsun” yaklaşımı değildir. Asıl sebep, cluster davranışının güvenli ve dayanıklı hale gelmesidir.
3 node sayesinde:
- primary shard’lar dağıtılabilir
- replica shard’lar farklı node’lara yerleştirilebilir
- query load node’lar arasında paylaşılabilir
- tek node kaybında cluster tamamen servis dışı kalmaz
- cluster formation ve master election daha sağlıklı yürür
Kısacası:
Single node Elasticsearch = risk Multi-node cluster = production gerekliliği
Özellikle secure ve gerçekçi bir demo ya da production benzeri test ortamı kurulacaksa, tek node yaklaşımı eksik kalır.
Environment Variables
Cluster konfigürasyonu için .env dosyası kullanıyoruz.
Bu yaklaşım şu nedenlerle önemlidir:
- compose dosyasını sade tutar
- versiyon ve cluster adı gibi değerleri dışarı alır
- şifre gibi bilgilerin merkezi yönetimini kolaylaştırır
- aynı yapının farklı ortamlarda tekrar kullanılmasını kolaylaştırır
.env dosyası:
cat > .env <<EOF
STACK_VERSION=8.12.0
CLUSTER_NAME=prod-secure-cluster
ELASTIC_PASSWORD=StrongPass123!
EOF
Buradaki değişkenlerin amacı:
STACK_VERSION: Elasticsearch image versiyonuCLUSTER_NAME: cluster adıELASTIC_PASSWORD: built-inelastickullanıcısının şifresi
System Preparation
Elasticsearch kurulmadan önce sistem tarafında iki kritik hazırlık yapılmalıdır:
vm.max_map_count- swap disable
Bu adımlar atlanırsa container çalışıyor görünse bile Elasticsearch node’ları sağlıklı başlamayabilir.
Kernel Parameter: vm.max_map_count
Elasticsearch, Lucene tabanlı yapısı nedeniyle yoğun memory mapping kullanır.
Bu yüzden Linux tarafında vm.max_map_count değeri yeterli seviyede olmalıdır.
Geçici olarak ayarlamak için:
sudo sysctl -w vm.max_map_count=262144
Kontrol etmek için:
sysctl vm.max_map_count
Kalıcı hale getirmek için:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
Production ve test ortamlarında bu ayarın eksik olması en sık görülen startup problemlerinden biridir.
Swap Disable (Critical)
Elasticsearch için swap açık olması önerilmez.
Bunun temel nedenleri:
- GC latency artar
- response time bozulur
- memory davranışı öngörülemez hale gelir
- node stabilitesi olumsuz etkilenir
Swap kapatmak için:
sudo swapoff -a
Öncesinde kontrol etmek için:
swapon --show
Sonrasında tekrar kontrol edebilirsiniz:
swapon --show
Kalıcı hale getirmek için:
sudo sed -i '/\sswap\s/s/^/#/' /etc/fstab
Production’da swap açık Elasticsearch node’u, teoride çalışsa bile pratikte risk üretir.
Certificate Design
Secure Elasticsearch cluster kurulumunun temel taşı certificate yönetimidir.
Burada amaç yalnızca HTTPS açmak değildir. Asıl amaç:
- her node’un kimliğini tanımlamak
- node’lar arasında güven ilişkisi kurmak
- transport layer communication’ı güvence altına almak
- sahte veya yetkisiz node katılımını engellemek
Bu amaçla instances.yml dosyası kullanılır:
instances:
- name: es01
dns:
- es01
- localhost
ip:
- 127.0.0.1
- name: es02
dns:
- es02
- localhost
ip:
- 127.0.0.1
- name: es03
dns:
- es03
- localhost
ip:
- 127.0.0.1
Bu dosya sayesinde her node için certificate üretimi sırasında:
- node name
- DNS identity
- IP bilgisi
tanımlanmış olur.
Bu da hem HTTP hem transport layer TLS tarafında doğru trust model kurulmasını sağlar.
Docker Compose Configuration
Aşağıdaki yapı, 3 node secure Elasticsearch cluster kurulumunu tanımlar.
Bu konfigürasyonda:
setupcontainer ile CA ve node certificate üretimi yapılır- her node için HTTP TLS aktiftir
- her node için transport TLS aktiftir
- authentication aktiftir
- her node ayrı volume kullanır
- node’lar host üzerinden ayrı portlarla erişilebilir durumdadır
version: "3.8"
services:
setup:
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es_setup_secure
user: "0"
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- ./instances.yml:/usr/share/elasticsearch/config/instances.yml
command: >
bash -c '
if [ ! -f config/certs/ca.zip ]; then
bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;
unzip config/certs/ca.zip -d config/certs;
fi;
if [ ! -f config/certs/certs.zip ]; then
bin/elasticsearch-certutil cert --silent --pem \
--in config/instances.yml \
--out config/certs/certs.zip \
--ca-cert config/certs/ca/ca.crt \
--ca-key config/certs/ca/ca.key;
unzip config/certs/certs.zip -d config/certs;
fi;
chown -R 1000:0 config/certs;
find config/certs -type d -exec chmod 750 {} \;
find config/certs -type f -exec chmod 640 {} \;
'
es01:
depends_on:
- setup
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es01_secure
environment:
- node.name=es01
- cluster.name=${CLUSTER_NAME}
- discovery.seed_hosts=es01,es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
- xpack.security.http.ssl.key=certs/es01/es01.key
- xpack.security.http.ssl.certificate=certs/es01/es01.crt
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
- xpack.security.transport.ssl.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.key=certs/es01/es01.key
- xpack.security.transport.ssl.certificate=certs/es01/es01.crt
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- esdata01:/usr/share/elasticsearch/data
ports:
- "9201:9200"
- "9301:9300"
ulimits:
memlock:
soft: -1
hard: -1
es02:
depends_on:
- setup
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es02_secure
environment:
- node.name=es02
- cluster.name=${CLUSTER_NAME}
- discovery.seed_hosts=es01,es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
- xpack.security.http.ssl.key=certs/es02/es02.key
- xpack.security.http.ssl.certificate=certs/es02/es02.crt
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
- xpack.security.transport.ssl.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.key=certs/es02/es02.key
- xpack.security.transport.ssl.certificate=certs/es02/es02.crt
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- esdata02:/usr/share/elasticsearch/data
ports:
- "9202:9200"
- "9302:9300"
ulimits:
memlock:
soft: -1
hard: -1
es03:
depends_on:
- setup
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es03_secure
environment:
- node.name=es03
- cluster.name=${CLUSTER_NAME}
- discovery.seed_hosts=es01,es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
- xpack.security.http.ssl.key=certs/es03/es03.key
- xpack.security.http.ssl.certificate=certs/es03/es03.crt
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
- xpack.security.transport.ssl.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.key=certs/es03/es03.key
- xpack.security.transport.ssl.certificate=certs/es03/es03.crt
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- esdata03:/usr/share/elasticsearch/data
ports:
- "9203:9200"
- "9303:9300"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
esdata01:
esdata02:
esdata03:
Networking Model
Bu yapıdaki node’lar Docker network üzerinden kendi aralarında haberleşir.
Ek olarak her node host üzerinde ayrı portlara açılmıştır:
9201 / 9202 / 9203→ HTTP erişimi9301 / 9302 / 9303→ transport portları
Bu yaklaşım özellikle şu senaryolarda çok kullanışlıdır:
- local test
- node bazlı doğrulama
- troubleshooting
- TLS ve authentication testleri
- her node’a ayrı erişimle davranış gözlemi
Burada önemli bir not var:
Production ortamında transport portları genellikle dışarı açılmaz.
Bu örnekte port exposure yapılmasının sebebi, doğrulama ve gözlem kolaylığıdır.
Step-by-Step Installation
Şimdi kurulum adımlarını sıfırdan, düzenli şekilde ele alalım.
1. Prerequisites
Makine üzerinde şunlar kurulu olmalı:
- Docker
- Docker Compose v2
- curl
- unzip
- tercihen jq
Önce kontrol edelim:
docker --version
docker compose version
curl --version
unzip -v
jq --version

Eğer jq yoksa:
sudo apt update
sudo apt install -y jq
2. Create the Working Directory
mkdir -p ~/elasticsearch-secure-cluster
cd ~/elasticsearch-secure-cluster
Kontrol etmek için:
pwd
ls -la

3. Create the .env File
cat > .env <<'EOF'
STACK_VERSION=8.12.0
CLUSTER_NAME=prod-secure-cluster
ELASTIC_PASSWORD=StrongPass123!
EOF
Kontrol:
cat .env
Beklenen çıktı:
STACK_VERSION=8.12.0
CLUSTER_NAME=prod-secure-cluster
ELASTIC_PASSWORD=StrongPass123!
4. Create the instances.yml File
cat > instances.yml <<'EOF'
instances:
- name: es01
dns:
- es01
- localhost
ip:
- 127.0.0.1
- name: es02
dns:
- es02
- localhost
ip:
- 127.0.0.1
- name: es03
dns:
- es03
- localhost
ip:
- 127.0.0.1
EOF
Kontrol:
cat instances.yml
5. Create the docker-compose.yml File
cat > docker-compose.yml <<'EOF'
version: "3.8"
services:
setup:
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es_setup_secure
user: "0"
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- ./instances.yml:/usr/share/elasticsearch/config/instances.yml
command: >
bash -c '
if [ ! -f config/certs/ca.zip ]; then
bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;
unzip config/certs/ca.zip -d config/certs;
fi;
if [ ! -f config/certs/certs.zip ]; then
bin/elasticsearch-certutil cert --silent --pem --in config/instances.yml --out config/certs/certs.zip --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;
unzip config/certs/certs.zip -d config/certs;
fi;
chown -R 1000:0 config/certs;
find config/certs -type d -exec chmod 750 {} \;
find config/certs -type f -exec chmod 640 {} \;
'
es01:
depends_on:
- setup
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es01_secure
environment:
- node.name=es01
- cluster.name=${CLUSTER_NAME}
- discovery.seed_hosts=es01,es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
- xpack.security.http.ssl.key=certs/es01/es01.key
- xpack.security.http.ssl.certificate=certs/es01/es01.crt
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
- xpack.security.transport.ssl.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.key=certs/es01/es01.key
- xpack.security.transport.ssl.certificate=certs/es01/es01.crt
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- esdata01:/usr/share/elasticsearch/data
ports:
- "9201:9200"
- "9301:9300"
ulimits:
memlock:
soft: -1
hard: -1
es02:
depends_on:
- setup
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es02_secure
environment:
- node.name=es02
- cluster.name=${CLUSTER_NAME}
- discovery.seed_hosts=es01,es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
- xpack.security.http.ssl.key=certs/es02/es02.key
- xpack.security.http.ssl.certificate=certs/es02/es02.crt
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
- xpack.security.transport.ssl.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.key=certs/es02/es02.key
- xpack.security.transport.ssl.certificate=certs/es02/es02.crt
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- esdata02:/usr/share/elasticsearch/data
ports:
- "9202:9200"
- "9302:9300"
ulimits:
memlock:
soft: -1
hard: -1
es03:
depends_on:
- setup
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
container_name: es03_secure
environment:
- node.name=es03
- cluster.name=${CLUSTER_NAME}
- discovery.seed_hosts=es01,es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
- xpack.security.http.ssl.key=certs/es03/es03.key
- xpack.security.http.ssl.certificate=certs/es03/es03.crt
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
- xpack.security.transport.ssl.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.key=certs/es03/es03.key
- xpack.security.transport.ssl.certificate=certs/es03/es03.crt
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
volumes:
- ./certs:/usr/share/elasticsearch/config/certs
- esdata03:/usr/share/elasticsearch/data
ports:
- "9203:9200"
- "9303:9300"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
esdata01:
esdata02:
esdata03:
EOF
YAML doğrulaması için:
docker compose config
Bu komut hata vermiyorsa compose dosyası doğru parse edilmiştir.
6. Apply System Settings
6.1 Set vm.max_map_count
sudo sysctl -w vm.max_map_count=262144
Kontrol:
sysctl vm.max_map_count
Beklenen:
vm.max_map_count = 262144
Kalıcı hale getirmek için:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
6.2 Disable Swap
Önce kontrol edin:
swapon --show
Sonra kapatın:
sudo swapoff -a
Tekrar kontrol edin:
swapon --show
Kalıcı hale getirmek için:
sudo sed -i '/\sswap\s/s/^/#/' /etc/fstab
7. Start the Cluster
docker compose up -d
Container durumlarını kontrol edin:
docker compose ps
Beklenen olarak şu container’lar görünmelidir:

8. Check the Logs
İlk kurulumda en kritik kontrollerden biri log’lardır.
Setup container log:
docker logs es_setup_secure
Elasticsearch node log’ları:
docker logs es01_secure
docker logs es02_secure
docker logs es03_secure
Canlı izlemek için:
docker logs -f es01_secure
Burada özellikle şu noktaları kontrol edin:
- fatal error olmaması
- SSL/certificate kaynaklı hata olmaması
- node started mesajları
- cluster formation sürecinin normal tamamlanması
9. Verify the Generated Certificates
find certs -type f | sort
Beklenen olarak benzer dosyalar oluşmalıdır:
certs/ca/ca.crt
certs/ca/ca.key
certs/es01/es01.crt
certs/es01/es01.key
certs/es02/es02.crt
certs/es02/es02.key
certs/es03/es03.crt
certs/es03/es03.key
10. Test Anonymous Access
İlk güvenlik doğrulaması anonymous access testidir.
curl -k https://localhost:9201
Beklenen sonuç:
- HTTP 401
security_exceptionmissing authentication credentials

Bu hatayı görmek iyidir. Bu, security katmanının aktif olduğunu gösterir.
11. Test Authenticated Access
Önce .env dosyasını shell’e alalım:
source .env
Cluster health
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} \
https://localhost:9201/_cluster/health?pretty
Beklenen:
status: "green"- kısa süreli
yellowgörülmesi ilk startup anında normal olabilir number_of_nodes: 3

Node listesi
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} \
https://localhost:9201/_cat/nodes?v
Burada 3 node görünmelidir:
es01es02es03

Her node’a tek tek erişim testi
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} https://localhost:9201
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} https://localhost:9202
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} https://localhost:9203
node1:

node2:

Üçü de cevap veriyorsa node bazlı doğrulama tamamdır.
12. Final Verification
Aşağıdaki üç komut temiz çalışıyorsa cluster kurulumu başarılıdır:
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} \
https://localhost:9201/_cluster/health?pretty
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} \
https://localhost:9201/_cat/nodes?v
curl --cacert certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} \
https://localhost:9201/_cat/indices?v
İlk aşamada _cat/indices çıktısı boş olabilir.
Bu normaldir. Henüz index oluşturulmamıştır.
Common Issues You Will Most Likely See
1. vm.max_map_count too low
Belirti:
- container çalışır gibi görünür
- Elasticsearch node ayağa kalkmaz
Kontrol:
sysctl vm.max_map_count
2. Swap is enabled
Belirti:
- performans kararsızlığı
- uyarılar
- öngörülemeyen davranışlar
Kontrol:
swapon --show
3. Certificate permission problem
Belirti:
- SSL key/certificate okunamıyor
- startup sırasında TLS hataları
Kontrol:
docker logs es01_secure
4. YAML parse error
Belirti:
- compose başlamaz
Kontrol:
docker compose config
5. Port conflict
Belirti:
9201,9202,9203,9301,9302,9303portları kullanımda olabilir
Kontrol:
ss -lntp | egrep '9201|9202|9203|9301|9302|9303'
Clean Reset
Her şeyi silip temizden başlamak gerekirse:
docker compose down -v
rm -rf certs
docker volume ls | grep esdata
Sonra yeniden başlatın:
docker compose up -d
Bu işlem:
- cert dosyalarını sıfırlar
- data volume’leri kaldırır
- cluster’ı temiz kurulum noktasına getirir
Key Takeaways
Bu kurulumdan çıkarılması gereken ana sonuçlar şunlardır:
- secure cluster başlangıç noktasıdır
- TLS hem HTTP hem transport layer’da aktif olmalıdır
- certificate management cluster tasarımının bir parçasıdır
- 3 node minimum production standardıdır
- swap ve sistem ayarları kritik önemdedir
- authentication olmadan Elasticsearch production’da kullanılmamalıdır
Conclusion
Bu bölümde production’a uygun bir Elasticsearch cluster yapısını sıfırdan kurduk.
Bu süreçte:
- secure cluster yapısı oluşturuldu
- TLS hem HTTP hem transport layer’da aktif edildi
- authesntication etkinleştirildi
- certificate-based trust modeli kuruldu
- node discovery ve cluster formation doğru yapılandırıldı
- temel doğrulama ve troubleshooting adımları tamamlandı
Bu noktadan sonra cluster artık şu katmanlar için sağlam bir temel sunar:
- index design
- ingestion
- search
- aggregations
- analytics
- monitoring
- failover testing
- role-based access control
Başka bir deyişle, artık sadece çalışan değil, üzerine güvenle inşa edilebilecek bir Elasticsearch cluster elde edilmiş oldu.
메타데이터
- post_id
- d9fa5a12ddad
- slug
- building-a-production-ready-elasticsearch-cluster-installation-configuration-d9fa5a12ddad
- url
- https://medium.com/@muratculum/building-a-production-ready-elasticsearch-cluster-installation-configuration-d9fa5a12ddad
- canonical_url
- https://medium.com/@muratculum/building-a-production-ready-elasticsearch-cluster-installation-configuration-d9fa5a12ddad
- author_url
- https://medium.com/@muratculum
- status
- ok
- fetched_at
- 2026-06-09 15:37:30