Elasticsearch Kurulumu — Linux, Docker, Cloud
Linux, Docker, Cloud — Adım Adım
Bir aracı kullanmadan önce onu eline alman, çalıştırman, sesini duyman lazım. Teoriyi bırak, pratik zamanı. Bu derste Elasticsearch'ü üç farklı yöntemle kuracağız: Docker (en hızlı), Linux (en öğretici) ve Cloud (en kolay production). Hangisini seçersen seç, ders sonunda çalışan bir Elasticsearch'ün olacak.
Benim tavsiyem: Docker ile başla. 5 dakikada hazır. Öğrenme aşamasında en az sürtünme ile başlamak önemli.
Yöntem 1: Docker ile Kurulum (Önerilen)
Ön Gereksinimler
Docker ve Docker Compose kurulu olmalı
Minimum 4GB RAM (Elasticsearch 2GB + Kibana 1GB + sistem)
Docker kurulu mu kontrol et:
docker --version
# Docker version 24.0.7, build afdd53b
docker compose version
# Docker Compose version v2.23.3Tek Komutla Elasticsearch
En hızlı başlangıç:
# Elasticsearch'ü başlat (single-node, güvenlik kapalı)
docker run -d \
--name elasticsearch \
-p 9200:9200 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
docker.elastic.co/elasticsearch/elasticsearch:8.17.030-60 saniye bekle, sonra test et:
curl http://localhost:9200
# Yanıt:
{
"name" : "a1b2c3d4e5f6",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "abc123...",
"version" : {
"number" : "8.17.0",
"build_flavor" : "default",
"build_type" : "docker",
"lucene_version" : "9.12.0",
...
},
"tagline" : "You Know, for Search"
}"You Know, for Search" gördüysen tebrikler, Elasticsearch çalışıyor!
Docker Compose ile Elasticsearch + Kibana
Gerçekçi bir geliştirme ortamı için Elasticsearch ve Kibana'yı birlikte çalıştır:
# docker-compose.yml
version: "3.8"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- es-data:/usr/share/elasticsearch/data
networks:
- elastic
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"]
interval: 10s
timeout: 5s
retries: 10
kibana:
image: docker.elastic.co/kibana/kibana:8.17.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
networks:
- elastic
depends_on:
elasticsearch:
condition: service_healthy
volumes:
es-data:
driver: local
networks:
elastic:
driver: bridgeÇalıştır:
# Başlat (arka planda)
docker compose up -d
# Logları izle
docker compose logs -f
# Durum kontrolü
docker compose ps
# Elasticsearch hazır mı?
curl http://localhost:9200/_cluster/health?pretty
# Kibana hazır mı? (1-2 dk sürebilir)
curl http://localhost:5601/api/statusKibana hazır olduğunda tarayıcıda http://localhost:5601 adresine git. Dev Tools'u sol menüden bul — kurs boyunca en çok kullanacağın yer orası.
Docker Compose — Gelişmiş (3 Node Cluster)
Production'a yakın bir test ortamı istiyorsan:
# docker-compose-cluster.yml
version: "3.8"
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
volumes:
- es01-data:/usr/share/elasticsearch/data
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- es02-data:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: es03
environment:
- node.name=es03
- cluster.name=es-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- es03-data:/usr/share/elasticsearch/data
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana:8.17.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://es01:9200
ports:
- "5601:5601"
networks:
- elastic
depends_on:
- es01
- es02
- es03
volumes:
es01-data:
es02-data:
es03-data:
networks:
elastic:
driver: bridgedocker compose -f docker-compose-cluster.yml up -d
# Cluster durumunu kontrol et
curl http://localhost:9200/_cat/nodes?v
# Beklenen çıktı:
# ip heap.percent ram.percent cpu load_1m node.name
# 172.18.0.2 35 78 2 0.15 es01
# 172.18.0.3 28 78 1 0.15 es02
# 172.18.0.4 31 78 1 0.15 es03⚠️ Dikkat: 3 node cluster minimum 6GB RAM gerektirir. Geliştirme için single-node yeterli.
Docker — Sık Kullanılan Komutlar
# Elasticsearch loglarını gör
docker logs elasticsearch -f
# Container'a bağlan (debug için)
docker exec -it elasticsearch bash
# Elasticsearch'ü durdur
docker compose down
# Verileri de silerek durdur
docker compose down -v
# Tekrar başlat
docker compose up -d
# Sadece Elasticsearch'ü yeniden başlat
docker compose restart elasticsearchYöntem 2: Linux'a Doğrudan Kurulum
Docker kullanamıyorsan veya production ortamı kuruyorsan, doğrudan Linux'a kurulum yapabilirsin.
Ön Gereksinimler
Java: Elasticsearch 8.x kendi JDK'sını içerir — ayrıca Java kurmana gerek yok
RAM: Minimum 2GB, önerilen 4GB+
Disk: SSD önerilir (HDD ile çalışır ama yavaş olur)
OS: Ubuntu 20.04+, CentOS 7+, Debian 10+
Ubuntu/Debian Kurulumu
# 1. Elastic GPG key'ini ekle
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
# 2. APT repository ekle
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
# 3. Paket listesini güncelle ve kur
sudo apt update
sudo apt install elasticsearch
# 4. İlk kurulumda güvenlik bilgileri görüntülenir — KAYDET!
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# ✅ Elasticsearch security features are enabled
# ℹ️ Password for the elastic user: <PAROLA_BURADA>
# ℹ️ HTTP CA certificate SHA-256 fingerprint: <FINGERPRINT>
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 5. Servisi başlat
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
# 6. Test et (güvenlik açıksa)
curl -k -u elastic:<PAROLA> https://localhost:9200
# Güvenliği kapatmak istiyorsan (sadece geliştirme):
# sudo nano /etc/elasticsearch/elasticsearch.yml
# xpack.security.enabled: false
# sudo systemctl restart elasticsearch
# curl http://localhost:9200CentOS/RHEL Kurulumu
# 1. RPM repository ekle
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
# 2. Kur
sudo yum install elasticsearch
# 3. Başlat
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearchKibana Kurulumu (Linux)
# Ubuntu/Debian
sudo apt install kibana
# CentOS/RHEL
sudo yum install kibana
# Ayarla
sudo nano /etc/kibana/kibana.yml
# server.port: 5601
# server.host: "0.0.0.0"
# elasticsearch.hosts: ["http://localhost:9200"]
# Başlat
sudo systemctl enable kibana
sudo systemctl start kibanaÖnemli Dosya Konumları (Linux)
/etc/elasticsearch/ → Konfigürasyon dosyaları
├── elasticsearch.yml → Ana ayar dosyası
├── jvm.options → JVM (heap size) ayarları
└── log4j2.properties → Log ayarları
/var/lib/elasticsearch/ → Veri dizini (index'ler burada)
/var/log/elasticsearch/ → Log dosyaları
/usr/share/elasticsearch/ → Binary ve plugin'lerTemel Konfigürasyon (elasticsearch.yml)
# /etc/elasticsearch/elasticsearch.yml
# Cluster adı — aynı ağdaki aynı isimli node'lar otomatik cluster olur
cluster.name: my-cluster
# Node adı
node.name: node-1
# Veri dizini
path.data: /var/lib/elasticsearch
# Log dizini
path.logs: /var/log/elasticsearch
# Ağ ayarları
network.host: 0.0.0.0 # Tüm interface'lerden erişim (prod'da dikkatli ol!)
http.port: 9200 # REST API portu
# Cluster discovery
discovery.seed_hosts: ["host1", "host2"]
cluster.initial_master_nodes: ["node-1"]
# Tek node kurulum için:
discovery.type: single-nodeJVM Heap Ayarı
# /etc/elasticsearch/jvm.options.d/heap.options
# (veya doğrudan jvm.options dosyasında)
# Heap boyutu — toplam RAM'in yarısı, max 32GB
-Xms4g
-Xmx4g⚠️ Kritik Kural: -Xms ve -Xmx aynı olmalı! Farklı değerler performans sorunlarına yol açar.
💡 İpucu: Heap size toplam RAM'in yarısını geçmemeli. Kalan yarı, Lucene'in dosya sistemi cache'i için lazım. 64GB RAM varsa → 32GB heap, 32GB OS cache. Heap 32GB'ı geçerse JVM compressed oops devre dışı kalır ve performans düşer.
Linux Sistem Ayarları
Elasticsearch'ün düzgün çalışması için bazı sistem ayarları gerekir:
# 1. Virtual memory (mmap)
sudo sysctl -w vm.max_map_count=262144
# Kalıcı yapmak için:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
# 2. File descriptors
# /etc/security/limits.conf
elasticsearch - nofile 65535
# 3. Processes
# /etc/security/limits.conf
elasticsearch - nproc 4096
# 4. Swap'ı kapat (önerilen)
sudo swapoff -a
# veya elasticsearch.yml'de:
# bootstrap.memory_lock: trueBu ayarları Docker kullanıyorsan host makinede yapman gerekir (container içinde değil):
# Docker host'ta vm.max_map_count ayarı
sudo sysctl -w vm.max_map_count=262144Yöntem 3: Elastic Cloud (Yönetilen Servis)
En hızlı production yolu. Sunucu yönetimi yok, güncelleme yok, yedekleme otomatik.
Adım Adım Cloud Kurulum
1. https://cloud.elastic.co adresine git
2. Ücretsiz hesap oluştur (kredi kartı gerekebilir, deneme ücretsiz)
3. "Create deployment" tıkla
4. Deployment ismi ver: "my-first-cluster"
5. Cloud provider seç: AWS / Azure / GCP
6. Region seç: Sana yakın bir bölge (eu-west-1 gibi)
7. Hardware profile: "Storage Optimized" (genel amaç)
8. "Create deployment" tıkla
9. elastic kullanıcı parolasını KAYDET
10. 3-5 dakika bekle — hazır!Cloud deployment'ından bir endpoint alırsın:
# Cloud endpoint'ine erişim
curl -u elastic:<PAROLA> https://my-deployment-abc123.es.europe-west1.gcp.cloud.es.io:9243
# Veya Kibana'ya tarayıcıdan:
# https://my-deployment-abc123.kb.europe-west1.gcp.cloud.es.io:9243Cloud Avantajları
5 dakikada hazır — sunucu kurma derdi yok
Otomatik yedekleme — snapshot'lar otomatik alınır
Otomatik güncelleme — tek tıkla versiyon yükselt
Monitoring — Stack Monitoring built-in
Güvenlik — TLS, kimlik doğrulama varsayılan açık
Ölçekleme — slider ile kaynak artır/azalt
Cloud Dezavantajları
Maliyet — self-hosted'dan pahalı
Vendor lock-in — Elastic Cloud'a bağımlılık
Sınırlı kontrol — JVM ayarları, plugin'ler sınırlı
Ağ gecikmesi — local development için ideal değil
Kurulum Doğrulama
Hangi yöntemle kurmuş olursan ol, şu kontrolleri yap:
1. Elasticsearch Çalışıyor mu?
# Temel bilgi
curl http://localhost:9200
# "tagline": "You Know, for Search" görmelisin
# Cluster sağlığı
curl http://localhost:9200/_cluster/health?pretty
# "status": "green" veya "yellow" (tek node'da yellow normaldir)
# Node bilgileri
curl http://localhost:9200/_cat/nodes?v
# Node listesini gösterir2. Kibana Çalışıyor mu?
# Kibana durumu
curl http://localhost:5601/api/status
# "overall": {"level": "available"} görmelisinTarayıcıda http://localhost:5601 aç → Dev Tools'a git → Şunu yaz:
GET /Ctrl+Enter (veya yeşil oynat butonu) ile çalıştır. Elasticsearch bilgilerini görmelisin.
3. İlk Veri Testi
Dev Tools'ta veya cURL ile:
// 1. Bir döküman ekle
POST /test-index/_doc
{
"message": "Merhaba Elasticsearch!",
"timestamp": "2025-01-15T10:00:00Z",
"user": "öğrenci"
}
// 2. Ara
GET /test-index/_search
{
"query": {
"match": {
"message": "merhaba"
}
}
}
// 3. Temizle
DELETE /test-index# cURL versiyonu:
# 1. Döküman ekle
curl -X POST "localhost:9200/test-index/_doc" -H 'Content-Type: application/json' -d'
{
"message": "Merhaba Elasticsearch!",
"timestamp": "2025-01-15T10:00:00Z",
"user": "öğrenci"
}'
# 2. Ara
curl -X GET "localhost:9200/test-index/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"message": "merhaba"
}
}
}'
# 3. Temizle
curl -X DELETE "localhost:9200/test-index"Güvenlik Ayarları
Elasticsearch 8.x'te güvenlik varsayılan olarak açık gelir. Öğrenme aşamasında kapatabilirsin, ama production'da kesinlikle açık olmalı.
Güvenliği Kapatma (Sadece Development)
# elasticsearch.yml
xpack.security.enabled: falseGüvenliği Açık Tutarak Çalışma
# Parola sıfırlama
docker exec -it elasticsearch bin/elasticsearch-reset-password -u elastic -i
# Token oluştur (Kibana enrollment için)
docker exec -it elasticsearch bin/elasticsearch-create-enrollment-token -s kibana
# HTTPS ile erişim
curl -k -u elastic:changeme https://localhost:9200Docker'da Güvenlikli Kurulum
# docker-compose-secure.yml
version: "3.8"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- ELASTIC_PASSWORD=MySecurePassword123
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=false # HTTP SSL kapalı (dev için)
ports:
- "9200:9200"
volumes:
- es-data:/usr/share/elasticsearch/data
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana:8.17.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=MySecurePassword123
ports:
- "5601:5601"
networks:
- elastic
depends_on:
- elasticsearch
volumes:
es-data:
networks:
elastic:# kibana_system kullanıcısının parolasını ayarla
curl -u elastic:MySecurePassword123 -X POST "localhost:9200/_security/user/kibana_system/_password" -H 'Content-Type: application/json' -d'
{
"password": "MySecurePassword123"
}'Sık Karşılaşılan Kurulum Sorunları
Sorun 1: "max virtual memory areas vm.max_map_count [65530] is too low"
# Çözüm (Linux/macOS):
sudo sysctl -w vm.max_map_count=262144
# Kalıcı çözüm:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Docker Desktop (Windows/Mac):
# Docker Desktop → Settings → Resources → Advanced
# veya WSL2'de: wsl -d docker-desktop sysctl -w vm.max_map_count=262144Sorun 2: "Java heap space" / OutOfMemoryError
# Heap size'ı artır
# Docker'da:
docker run ... -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" ...
# Linux'ta:
# /etc/elasticsearch/jvm.options.d/heap.options
-Xms2g
-Xmx2gSorun 3: Elasticsearch başlamıyor — "disk watermark exceeded"
Disk %85'ten fazla doluysa Elasticsearch yeni shard allocate etmez, %90'da readonly moda geçer.
# Disk durumunu kontrol et
df -h
# Watermark'ları değiştir (geçici çözüm)
curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.disk.watermark.low": "90%",
"cluster.routing.allocation.disk.watermark.high": "95%",
"cluster.routing.allocation.disk.watermark.flood_stage": "97%"
}
}'
# Gerçek çözüm: Disk alanı temizle!Sorun 4: Kibana "Kibana server is not ready yet"
# Elasticsearch'ün tamamen başlamasını bekle
curl http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=60s
# Kibana'yı yeniden başlat
docker restart kibana
# Kibana loglarını kontrol et
docker logs kibana -fSorun 5: Docker'da "Exited (137)" — Container kill ediliyor
Bu genellikle yetersiz RAM demektir. Container, OOM Killer tarafından öldürülüyor.
# Docker Desktop'ta RAM limitini artır
# Docker Desktop → Settings → Resources → Memory → 4GB+
# Veya Elasticsearch heap'i düşür
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"Sorun 6: Port çakışması
# 9200 portu zaten kullanılıyorsa
# Linux:
sudo lsof -i :9200
# macOS:
lsof -i :9200
# Farklı port kullan
docker run ... -p 9201:9200 ...
# Artık localhost:9201 üzerinden erişeceksinGeliştirme Ortamı Tavsiyeleri
Benim Önerim: Bu Kurs İçin
# docker-compose.yml — Kurs boyunca kullanacağın setup
version: "3.8"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: es
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ports:
- "9200:9200"
volumes:
- es-data:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:8.17.0
container_name: kb
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
volumes:
es-data:Bu setup:
Güvenlik kapalı (geliştirme için)
Tek node (yeterli)
1GB heap (normal iş yükleri için yeterli)
Volume ile veri kalıcı (container silinse bile veri korunur)
Günlük İş Akışı
# Sabah: Ortamı başlat
docker compose up -d
# Çalış...
# Kibana Dev Tools: http://localhost:5601/app/dev_tools
# Akşam: Ortamı durdur (veri korunur)
docker compose down
# Sıfırdan başlamak istersen (veriyi sil):
docker compose down -vElasticsearch'e Programatik Erişim
Java Client Bağlantısı
import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
class Main {
public static void main(String[] args) throws Exception {
// Bağlantı kur
RestClient restClient = RestClient.builder(
new HttpHost("localhost", 9200, "http")
).build();
ElasticsearchClient client = new ElasticsearchClient(
new RestClientTransport(restClient, new JacksonJsonpMapper())
);
// Bağlantıyı test et
boolean ping = client.ping().value();
System.out.println("Elasticsearch bağlantısı: " + (ping ? "✅ Başarılı" : "❌ Başarısız"));
// Cluster bilgisi
var info = client.info();
System.out.println("Cluster: " + info.clusterName());
System.out.println("Version: " + info.version().number());
restClient.close();
}
}Maven Bağımlılıkları
<!-- pom.xml -->
<dependencies>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.17.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
</dependencies>Python ile Hızlı Test
# pip install elasticsearch
from elasticsearch import Elasticsearch
es = Elasticsearch("http://localhost:9200")
# Bağlantı testi
print(es.info())
# Döküman ekle
es.index(index="test", document={"message": "Merhaba!", "lang": "tr"})
# Ara
result = es.search(index="test", query={"match": {"message": "merhaba"}})
print(result["hits"]["hits"])Best Practices
✅ Docker ile başla — En az sürtünme, en hızlı başlangıç
✅ Versiyon sabitle — elasticsearch:latest yerine elasticsearch:8.17.0 kullan
✅ Volume kullan — Verinin container silindiğinde kaybolmaması için Docker volume
✅ Heap size ayarla — Varsayılan 1GB genelde yeterli, ama bilinçli ol
✅ vm.max_map_count ayarla — Linux/Docker'da bu ayarı unutma
✅ Güvenliği production'da aç — Development'ta kapatabilirsin ama production'da kesinlikle açık olmalı
Yaygın Hatalar
❌ "Docker volume kullanmadım, container'ı sildim, verim gitti"
Volume (-v es-data:/usr/share/elasticsearch/data) her zaman kullan. Docker volume olmadan container silinince veri de gider.
❌ "Heap size'ı çok yüksek ayarladım"
Toplam RAM'in yarısından fazla heap verme. Kalan yarı, Lucene file system cache için gerekli. 8GB RAM → max 4GB heap.
❌ "Production'da single-node kullanıyorum"
Tek node'da replica oluşturulamaz. Node çökerse veri kaybı riski var. Production'da minimum 3 node.
❌ "Swap açık bıraktım"
Elasticsearch ve swap iyi anlaşmaz. JVM garbage collection sırasında swap kullanılırsa performans felaket olur. swapoff -a veya bootstrap.memory_lock: true kullan.
❌ "latest tag kullanıyorum"
latest tag'i her pull'da farklı versiyon getirebilir. Versiyon uyumsuzluğu, konfigürasyon farkları derken kabus başlar. Her zaman spesifik versiyon belirt.
Özet
Docker ile kurulum en hızlı ve en az sorunlu yöntemdir —
docker compose up -dile 2 dakikada hazırLinux kurulumu daha fazla kontrol sağlar ama sistem ayarları (vm.max_map_count, heap, swap) gerektirir
Elastic Cloud production için en kolay yoldur — sunucu yönetimi gerektirmez
Elasticsearch 8.x'te güvenlik varsayılan açık — development'ta kapatabilirsin
JVM heap toplam RAM'in yarısını geçmemeli,
-Xmsve-Xmxaynı olmalıKurulumu doğrulamak için
curl localhost:9200ve_cluster/healthendpoint'lerini kullan
Bir sonraki derste Elasticsearch ile ilk adımlarımızı atacağız — REST API'yi, cURL kullanımını ve Kibana Dev Tools'u öğreneceğiz!
AI Asistan
Sorularını yanıtlamaya hazır