Elasticsearch günlük işletim ve arıza senaryoları (8.x / 9.x)
ElasticsearchSeviye: İleriSüre: 5 dk (kontrol) – saatler (reindex, node boşaltma)Kurulum değil: kurulu bir Elasticsearch 8.x / 9.x cluster'ını günlük olarak yönetmek ve bozulduğunda kurtarmak için senaryo bazlı runbook. Sağlık ve allocation explain, atanmamış shard çözümü (disk, filtering, retry_failed, replica, son çare stale/empty primary), disk watermark, read_only_allow_delete bloğu, node ekleme ve güvenli çıkarma, alias ile kesintisiz reindex, ILM ve rollover, _shrink / _split, snapshot'tan tek index'i yeni adla geri getirme. Ne yapacağınızı bilmiyorsanız sağlık kontrolüyle başlayın. Snapshot repository kurulumu ve SLM, güvenlik sıkılaştırması ve sürüm yükseltme ayrı Elasticsearch rehberlerindedir.
Yapı: Elasticsearch 8.x / 9.x cluster (1–N node), TLS ve kimlik doğrulama açık
Senaryolar
- Cluster sağlığı: status, node'lar, atanmamış shard'lar, disk — Salt-okur: green/yellow/red, node listesi, atanmamış (UNASSIGNED) shard'lar ve nedeni (allocation explain), disk kullanımı ve watermark, bekleyen görevler. Ne yapacağınızdan emin değilseniz buradan başlayın.
- Atanmamış (UNASSIGNED) shard'ı çöz (explain'e göre) — Cluster yellow ya da red ve shard'lar atanmıyor: allocation explain nedenine göre disk, allocation filtering, deneme sınırı (retry_failed), replica sayısı ya da son çare olarak eski kopyadan primary.
- Disk watermark ayarını gör / değiştir — Disk doluluğu yüzünden shard'lar taşınıyor ya da atanmıyor; watermark eşikleri (low / high / flood_stage) geçici olarak ya da kalıcı olarak değiştirilecek veya varsayılana döndürülecek.
- Index salt okunur oldu: read_only_allow_delete bloğunu kaldır — Yazmalar 'FORBIDDEN/12/index read-only / allow delete (api)' ya da 'TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark' ile reddediliyor: önce disk açılır, sonra blok kaldırılır.
- Cluster'a node ekle (enrollment token) — Kapasite gerekiyor: yeni sunucuya Elasticsearch kuruldu, enrollment token ile cluster'a katılır; shard'lar kendiliğinden dengelenir. Kesinti yok.
- Node'u güvenle çıkar (exclude, boşalt, kapat) — Bir node emekliye ayrılıyor ya da donanımı değişecek: allocation exclude ile shard'ları diğer node'lara taşınır, boşaldığı doğrulanır, master-eligible ise voting exclusion verilir, sonra kapatılır.
- Reindex: mapping/ayar değişikliği için yeni index ve alias ile kesintisiz geçiş — Mapping alan türü değişecek, analyzer ya da shard sayısı değişecek: yeni index oluşturulur, veri _reindex ile kopyalanır, alias atomik olarak yeni index'e çevrilir.
- Index lifecycle (ILM) ve rollover kur / sorun gider — Log/zaman serisi index'leri büyüyor ya da silinmiyor: ILM politikası (rollover + delete), index template ve ilk index (write alias) kurulur; mevcut politikanın neden ilerlemediği explain ile görülür.
- Shard sayısını düzelt: _shrink (azalt) / _split (artır) — Index'in shard sayısı yanlış seçilmiş: çok küçük shard'lar (aşırı shard) _shrink ile birleştirilir, çok büyük shard'lar _split ile bölünür; alias ile geçiş yapılır.
- Snapshot'tan tek index'i yeni adla geri getir — Bir index silindi ya da bozuldu: snapshot repository'den yalnız o index, canlı index'e dokunmadan yeni adla (rename) geri yüklenir; doğrulama sonrası alias ile devreye alınır.
Başlamadan önce
- … (…) üzerinde root yetkisi, curl ve cluster'ın HTTP CA sertifikası (…) var; elastic kullanıcısının (ya da manage + index yetkili bir kullanıcının) parolası elinizde. API çağrıları HTTPS ile bu node'a yapılır.
- Değişiklik kaydı açıldı, uygulama ekibi bilgilendirildi. Shard taşıma, reindex ve resize işlemleri disk, ağ ve CPU yükü yaratır; yoğun saat dışında yapın. Geri alınamaz adımlardan (silme, stale/empty primary) önce güncel bir snapshot olmalı: Snapshot.
- Yeni sunucu cluster kurulum rehberindeki işletim sistemi hazırlığı ve yazılım kurulumu aşamalarıyla hazır: aynı Elasticsearch sürümü, vm.max_map_count, heap, swap kapalı, firewall'da 9200/9300 açık; servis hiç başlatılmadı (enrollment ancak ilk başlatmadan önce yapılabilir).
Rehberin aşamaları
- API erişimi — API için geçici kimlik dosyası
- Durum: sağlık, node'lar, shard'lar, disk (salt-okur) — Cluster sağlığı, node'lar ve atanmamış shard'lar · Atanmamış shard'ın nedenini sor (allocation explain) · Disk kullanımı ve watermark · Bekleyen görevler ve sonucu yorumla
- 1. Teşhis: shard neden atanmıyor? — Index'in shard'ları ve explain kararı
- 2. Uygulama — Başarısız atamaları yeniden dene (retry_failed) · Replica sayısını node sayısına uygun yap · Allocation filtering'i kaldır · Disk engeline yönlen · Eski kopyadan primary ata (allocate_stale_primary) · Boş primary ata (allocate_empty_primary)
- 3. Doğrulama — Shard'ların başladığını izle
- 1. Teşhis — Disk kullanımı ve mevcut eşikler
- 2. Uygulama — …Eşikleri değiştir…Eşikleri varsayılana döndür…
- 1. Teşhis: blok ve disk — Bloklu index'leri ve diski gör · Disk açma seçenekleri
- 2. Uygulama — Bloğu kaldır
- 3. Doğrulama — Yazmanın çalıştığını dene
- 1. Teşhis — Cluster'ın durumunu gör
- 2. Uygulama: enrollment ve katılım — Node enrollment token'ı oluştur · Yeni node'u token ile yapılandır · node.name ve ağ ayarını kontrol et · Servisi başlat
- 3. Doğrulama — Node'un katıldığını ve shard aldığını doğrula
- 1. Teşhis — Node'un shard'larını ve rolünü gör
- 2. Uygulama: boşalt ve kapat — Shard'ları node'dan taşı (allocation exclude) · Node'un boşalmasını bekle · Master-eligible node'u oylamadan çıkar · Node'u durdur · Exclude ve voting exclusion'ı kaldır
- 3. Doğrulama — Cluster sağlığını doğrula
- 1. Teşhis ve hazırlık — Kaynak index'i ve alias'ı gör · Yeni index'i yeni mapping/ayarlarla oluştur
- 2. Uygulama: kopyala ve alias'ı çevir — Veriyi kopyala (_reindex, arka planda) · Görevi izle · Yeni index'i hazırla ve sayıları karşılaştır · Alias'ı atomik olarak yeni index'e çevir
- 3. Sonrası — Eski index'i kapat (sonra sil)
- 1. ILM politikası, template ve ilk index — ILM politikasını oluştur · Index template'i oluştur · İlk index'i yazma alias'ıyla oluştur
- Teşhis: ILM neden ilerlemiyor? — ILM durumunu ve hatalı index'leri gör · Hatalı adımı yeniden dene
- Elle rollover — Alias'ı hemen rollover et
- 1. Teşhis — Index'in shard sayısı ve boyutu
- 3. Uygulama — …Shrink…Split…: … → … (… shard) · Alias'ı yeni index'e çevir
- 4. Sonrası — Kaynak index'i kapat (sonra sil)
- 1. Teşhis: snapshot'ta index var mı? — Snapshot'ları ve içindeki index'i gör
- 2. Uygulama: yeni adla geri yükle — Index'i …… adıyla geri yükle · Doğrula ve devreye al
- Temizlik — Kimlik dosyasını sil