Elasticsearch
Son Güncelleme: 15 Kasım 2025
Hedef Kitle: Sistem Yöneticileri, Backend Geliştiriciler, DevOps Mühendisleri, Entegrasyon Uzmanları
| Alan | Değer |
|---|---|
| Connection Adı | Elasticsearch Connection (Bağlantı) |
| Özet | REST tabanlı Elasticsearch cluster erişimi ve log indeks otomasyonunu yönetir |
| Kategori | Database |
| Protocol | REST |
| Desteklenen Ortamlar | Development, Test, Production |
Genel Bakış
Amacı Nedir?
Connection (Bağlantı) Integration Flow veya Connector adımlarının log, metrik ve arama verilerini merkezi Elasticsearch cluster'ına iletir.
Çoklu host (HTTP/HTTPS) tanımıyla yüksek erişilebilirlik sağlayan REST isteklerini yönetir.
Index Template ve Index Lifecycle Policy (ILM) otomasyonuyla cluster yönetişimini standartlaştırır.
Rollover, template oluşturma ve policy senkronizasyonu gibi bakım görevlerini tek tuşla tetikler.
Çalışma Prensibi
Bağlantı Başlatma: Integration Flow veya Connector içerisinden Elasticsearch Connection (Bağlantı) talep edildiğinde, sistem yapılandırılmış connection parametrelerini okur.
Connection Pool Yönetimi: HTTP client, kod içinde sabit değerlerle çalışan bir bağlantı havuzu kullanır (host başına 20 eşzamanlı bağlantı, toplamda 20 × host sayısı); bu havuz büyüklüğü connection formundan ayarlanamaz.
Kimlik Doğrulama: Basic Authentication sağlandığında kullanıcı adı/şifre gönderilir; aksi halde anonim erişim veya IP tabanlı güvenlik kullanılır.
Veri İletişimi: REST endpoint'lerine HTTP/HTTPS üzerinden JSON gövdeli CRUD istekleri gönderilir; keep-alive süresi sabit 30 saniyedir (ayrı bir "Socket Keep Alive" veya "Socket Reuse Address" alanı yoktur).
Bağlantı Yönetimi: İşlem tamamlanınca bağlantı pool'a geri döner; inaktivite sonrası doğrulama süresi 10 saniye, bağlantı yaşam süresi (TTL) 3 dakikadır (bunlar da sabit değerlerdir).
Hata Yönetimi: Bağlantı hatası, timeout veya authentication hatasında Apinizer Message Service bilgilendirme üretir; deployment result diyalogunda detay gösterilir. Log yazımı sırasında Worker'da oluşan hatalar (bkz. "Asenkron Yazım ve Failover Davranışı" bölümü) failover connector'ı tetikler.
Kullanım Alanları
- Gateway loglarını merkezi Elasticsearch indekslerine yazmak
- Arama/raporlama amacıyla okuma-only cluster'lara erişmek
- ILM ve template otomasyonu gerektiren yüksek hacimli log kümelerini yönetmek
- Disaster recovery veya geo-yedekli Elasticsearch kümelerine trafik yönlendirmek
Teknik Özellikler ve Yetenekler
Temel Özellikler
Çoklu Host Yönetimi: HTTP/HTTPS scheme, host ve port kombinasyonları ile cluster node'ları arasında yük dağıtımı sağlar.
Index Şablonu Otomasyonu: Shard/replica sayıları ve refresh interval değerleri UI üzerinden yönetilir.
İdari İşlemler: Administrate seçeneği açıkken Index Template, ILM Policy oluşturma ve rollover tetikleme butonları etkinleşir. Bağlantı listesinde ILM Policy, Index Template ve Data Stream durumunu gösteren göstergeler ile bu durumu Elasticsearch üzerinden sorgulayan Live Check butonu bulunur (bkz. "Bağlantı Listesindeki Durum Göstergeleri ve Canlı Durum Kontrolü").
Ortam Bazlı Yapılandırma: Her ortam (Development, Test, Production) için ayrı connection parametreleri tanımlama imkanı.
Enable/Disable Kontrolü: Connection'ı aktif veya pasif hale getirme (enable/disable toggle). Pasif durumda bağlantı kullanılamaz ancak yapılandırması saklanır.
İleri Düzey Özellikler
İndeks Yaşam Döngüsü Düzenleyicisi: Hot/Warm/Cold/Delete fazları için yaş, boyut ve replikasyon e şikleri modal üzerinden kontrol edilir.
TLS Sertifika Esnekliği: PKCS#12 veya PEM tabanlı CA/keystore dosyaları yüklenerek SSL/TLS iletişimi güvenceye alınır.
Okuma/Yazma Modu: READ_WRITE modunda administrate işlemleri aktif, READ modunda yalnızca sorgu yapılır.
Connection Test Özelliği: "Test Connection" butonu ile bağlantı parametrelerini kaydetmeden önce doğrulama imkanı.
Export/Import Özelliği: Connection yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
Connection Monitoring: Bağlantı sağlığı, pool durumu ve performans metriklerini izleme.
Connection Parametreleri
Zorunlu Parametreler
| Parametre | Açıklama | Örnek Değer | Notlar |
|---|---|---|---|
| Name | Connection adı (benzersiz olmalı) | Production_ElasticLog | Boşlukla başlamaz, özel karakterler kullanılmamalı |
| Index Name | Logların yazılacağı indeks adı | apinizer-log-apiproxy-default | Administrate açıkken otomatik oluşturulur; çakışmalar kontrol edilir |
| Elastic Host (Host & Port) | Her host için scheme/host/port | HTTPS : es-prod-01 : 9243 | En az bir host zorunlu; host ve port alanları boş bırakılamaz |
| Connection Timeout (ms) | Bağlantı kurulumu için bekleme süresi — aynı değer yanıt bekleme ve havuzdan bağlantı alma süresi için de kullanılır (bkz. "Asenkron Yazım ve Failover Davranışı") | 5000 | UI'da yalnızca zorunluluk (required) doğrulaması vardır; ayrı bir min/max sınırı yoktur |
| Connection Type | READ_WRITE veya READ modu | READ_WRITE | READ seçilirse administrate devre dışı kalır |
| Elasticsearch Major Version | Bağlanılan cluster'ın major sürümü | AUTO_DETECT | Zorunlu alan; AUTO_DETECT veya boş bırakılırsa client varsayılan olarak ES 7 sürüm davranışına düşer |
İsteğe Bağlı Parametreler
| Parametre | Açıklama | Varsayılan Değer | Önerilen Değer |
|---|---|---|---|
| Description | Connection amacı açıklaması | Boş | Operasyonel bilgi içeren kısa metin |
| Authenticate | Basic Authentication aç/kapa | true | Kimlik doğrulama gerekmiyorsa kapatılabilir |
| Elastic Username | Kullanıcı adı | Boş | Authentication aktifse zorunlu |
| Elastic Password | Parola | Boş | Secret manager üzerinden girilmesi önerilir |
| Administrate | Template/ILM yönetimi | true (READ_WRITE) | Harici ekip yönetiyorsa kapatılabilir |
| Disable Hostname Verification | TLS hostname doğrulaması | Alan boş (null) bırakılır; sistem bunu etkin varsayılan true (doğrulama kapalı/gevşetilmiş) olarak yorumlar | Production'da bilinçli olarak false seçilmelidir |
Index Template Parametreleri
| Parametre | Açıklama | Varsayılan | Nerede |
|---|---|---|---|
| Index Template Name | Oluşturulacak index template'in adı | apinizer-log-apiproxy-template-default | UI; Administrate açıkken zorunlu |
| indexTemplateNumberOfShards | Template'teki shard sayısı | 1 | UI |
| indexTemplateNumberOfReplicas | Template'teki replica sayısı | 0 | UI |
| indexTemplateRefreshInterval | Template'in refresh interval değeri | "5s" | UI |
| Sabit Bitset Filtrelerini Önceden Yükle | Nested alanların üst kayıt bitset'lerinin bellekte önceden tutulup tutulmayacağı. Kapatmak Elasticsearch düğümlerinin heap kullanımını düşürür. | Açık | UI |
Timeout Parametresi — Gerçek Davranış
Apinizer, bağlantı kurma / yanıt bekleme / havuzdan bağlantı alma için ayrı ayrı timeout alanları sunmaz. Tek bir Connection Timeout değeri, HTTP Client 5 üzerinde üç ayrı timeout ayarına birden uygulanır:
| Parametre | Açıklama | Varsayılan | Birim |
|---|---|---|---|
| Connection Timeout (connectionTimeoutInMs) | Bağlantı kurma (connect), yanıt bekleme (response) ve havuzdan bağlantı alma (connection request) sürelerinin üçünde birden kullanılan tek değer | 5000 | milisaniye |
Davranışla ilgili bilinmesi gerekenler:
- Ayrı bir "Request Timeout" alanı yoktur — yanıtı bekleme süresi de Connection Timeout ile aynı değeri kullanır.
- Milisaniye cinsinden girilen değer saniyeye çevrilirken tam sayı bölmesi uygulanır (
connectionTimeoutInMs / 1000). - Bölme sonucu
0veya daha küçükse (yani 1000 ms'nin altındaki her değer — 0 ve negatif değerler dahil), saniye değeri otomatik olarak 5'e (5000 ms) sabitlenir. Bu bir form doğrulaması değil, tam sayı bölmesi ve kod içindeki>0kontrolünün bir yan etkisidir — dolayısıyla 1000 ms altı bir değer girmenin pratik bir etkisi yoktur.
Sabit (Ayarlanamaz) Connection Pool Değerleri
Aşağıdaki değerler kod içinde sabittir; bu connection formu üzerinden değiştirilemez:
| Değer | Sabit Ayar | Açıklama |
|---|---|---|
| Host başına maksimum bağlantı | 20 | setMaxConnPerRoute(20) |
| Toplam bağlantı havuzu | 20 × host sayısı | setMaxConnTotal(...) |
| Inaktivite sonrası doğrulama | 10 saniye | Havuzdan alınan bağlantı bu süreden uzun beklemişse yeniden doğrulanır |
| Bağlantı yaşam süresi (TTL) | 3 dakika | Bu sürenin sonunda bağlantı havuzdan atılır |
| Keep-alive stratejisi | 30 saniye | Sabit; ayrı bir "Socket Keep Alive"/"Socket Reuse Address" alanı yoktur |
Yalnızca APIops İle Ayarlanabilen Parametreler
Aşağıdaki üç alan Connection UI formunda yer almaz; yalnızca APIops (Connection DTO) üzerinden ayarlanabilir ve asenkron log yazım kuyruğunun davranışını belirler:
| Parametre | Açıklama | Varsayılan |
|---|---|---|
| bulkBufferCapacity | Asenkron yazım kuyruğunun (bellek içi, ArrayBlockingQueue) kapasitesi | 50000 |
| bulkFlushIntervalMs | Kuyruğun Elasticsearch'e ne sıklıkla flush edileceği | 100 (ms) |
| bulkMaxBatchSize | Tek bir _bulk çağrısında gönderilecek maksimum kayıt sayısı | 2500 |
Asenkron Yazım ve Failover Davranışı
Elasticsearch connection'ı log yazarken istek iş parçacığını bekletmez; yazım tamamen asenkron ilerler:
index*metodları, kaydı kapasitesibulkBufferCapacityolan bellek içi bir kuyruğa (ArrayBlockingQueue) bırakıp hemen döner — isteği işleyen thread Elasticsearch'in yanıtını beklemez.- Kuyruktaki kayıtlar, adı
es-bulk-flusher-ile başlayan ayrı bir zamanlanmış thread havuzu tarafından herbulkFlushIntervalMsmilisaniyede bir, en fazlabulkMaxBatchSizekayıtlık_bulkçağrılarıyla Elasticsearch'e gönderilir. - Bu flusher yalnızca Worker sürecinde başlar. Manager sürecinde asenkron log yazımı yoktur; Manager'ın Elasticsearch çağrıları (rapor/sorgu ekranları) tamamen senkrondur ve Connection Timeout bu sorguların üst sınırını doğrudan belirler.
- Sonuç olarak Connection Timeout, log yazan istek thread'ini değil; Worker'daki flusher thread'ini veya Manager'daki rapor sorgusunu bağlar.
- Failover: Bulk çağrısı herhangi bir nedenle başarısız olursa (bağlantı kurulamaması, yanıt timeout'u, kuyruğun dolması vb.) kayıt otomatik olarak yapılandırılmış failover connector'a gönderilir. Failover yalnızca "hiç bağlanamama" durumunda değil, timeout dahil her hata türünde tetiklenir.
Kullanım Senaryoları
| Senaryo | Durum | Çözüm (Connection Yapılandırması) | Beklenen Davranış / Sonuç |
|---|---|---|---|
| Yüksek Hacimli Log Yazımı | Dakikada milyonlarca log girişi | READ_WRITE, administrate açık, APIops ile bulkBufferCapacity ve bulkMaxBatchSize trafiğe göre artırılır, ILM rollover eşikleri sıkılaştırılır | Asenkron kuyruk taşmadan işlenir, ILM otomatik rollover yapar; kuyruk yine de dolarsa kayıtlar failover connector'a düşer |
| Raporlama Kümesi | Salt okuma sorguları | READ, administrate kapalı, authentication=true | Cluster sadece sorgu alır, yönetim işlemleri engellenir |
| Çoklu Host Failover | İki veri merkezi | İki HTTPS host, encrypt communication + PKCS#12 CA | Trafik otomatik olarak sağlıklı host'a yönelir |
| Şema Güncellemesi | Yeni alanlar eklendi | Template adı ve shard/replica güncellenip "Create Index Template" çalıştırılır | Yeni indexler güncel şema ile açılır |
| Veri Saklama Politikası | 90 gün üstü loglar silinecek | ILM delete fazı aktif, minAgeOfDelete=90 | Eski indexler otomatik temizlenir |
| Güvenli Tünel | TLS zorunlu, internal CA | Encrypt communication açık, CA_IN_PEM_FILE yüklenir | Sertifikalarla güvenli bağlantı sağlanır |
Connection Yapılandırma
Bu adımda, kullanıcı yeni bir connection oluşturabilir ya da mevcut connection parametrelerini yapılandırarak bağlantı kurallarını belirleyebilir. Tanımlanan parametreler, connection'ın çalışma şeklini doğrudan etkiler ve Integration Flow veya Connector adımlarında kullanılabilir hale gelir.
Yeni Elasticsearch Connection Oluşturma
Yapılandırma Adımları
- Sol menüden Connection → Elasticsearch bölümüne gidin.
- Sağ üstteki [+ Create] butonuna tıklayın.
- Yeni Elasticsearch Connection oluşturma formu açılır.
Enable Status (Aktif Durumu) Ayarlama:
- Formun üst kısmında Enable Status toggle'ını bulun.
- Toggle'ı Aktif konumuna getirin (varsayılan olarak aktif gelir).
- Connection'ı pasif yapmak isterseniz toggle'ı Pasif konumuna getirin.
- Pasif connection'lar Integration Flow'larda kullanılamaz ancak yapılandırmaları saklanır.
Name (İsim) - Zorunlu Alan:
- Name alanına benzersiz bir connection adı girin.
- İsim örnekleri:
`Production_ElasticLog`,`Test_ElasticConnection`,`Dev_ElasticSearch` - İsim kuralları:
- Boşlukla başlamamalı
- Özel karakterler kullanılmamalı (önerilen: harf, rakam, alt çizgi)
- Maksimum 255 karakter
- İsim yazdıkça sistem otomatik kontrol eder:
- Yeşil tik işareti: İsim kullanılabilir
- Kırmızı çarpı işareti: İsim zaten mevcut, farklı bir isim seçin
Description (Açıklama) - İsteğe Bağlı:
- Description alanına connection'ın amacını açıklayan bir metin girin.
- Örnek açıklamalar:
- "Gateway loglarını production cluster'a yazar"
- "Production ortamı Elasticsearch bağlantısı"
- "Test ortamı için dummy Elasticsearch bağlantısı"
- Maksimum 1000 karakter sınırı vardır.
- Bu alan boş bırakılabilir.
- Environment dropdown menüsünü bulun.
- Dropdown menüyü açın ve aşağıdaki seçeneklerden birini seçin:
- Development: Geliştirme ortamı için
- Test: Test ortamı için
- Production: Üretim ortamı için
- Her ortam için farklı connection parametreleri tanımlanabilir.
- Ortam seçimi, connection'ın hangi ortamda aktif olacağını belirler.
- Aynı isimde connection'lar farklı ortamlar için ayrı ayrı oluşturulabilir.
Scheme Seçimi:
- Her host için Scheme seçin: HTTP veya HTTPS
- HTTPS seçildiğinde Encrypt Communication otomatik açılır.
Host/Port - Zorunlu:
- Host alanına Elasticsearch node'unun adresini girin.
- Port alanına port numarasını girin (varsayılan: 9200).
- Host formatı:
- FQDN (Fully Qualified Domain Name):
`es-prod-01.company.com` - IP adresi:
`192.168.1.100` - Birden fazla host ekleyerek cluster erişimini yedekleyin.
- En az bir host zorunludur.
Connection Type Seçimi:
- Connection Type dropdown menüsünden seçim yapın:
- READ_WRITE: Okuma ve yazma işlemleri için (administrate işlemleri aktif)
- READ: Sadece okuma işlemleri için (administrate devre dışı)
- Connection type seçimi, administrate davranışını belirler.
Index Name - Zorunlu:
- Index Name alanına logların yazılacağı indeks adını girin.
- Örnek:
`apinizer-log-apiproxy-default` - Administrate açıkken otomatik oluşturulur; çakışmalar kontrol edilir.
Administrate Ayarlama:
- Administrate toggle'ını bulun.
- Template ve ILM yönetimi için toggle'ı Aktif konumuna getirin.
- Administrate aktifse aşağıdaki alanlar görünür hale gelir:
- Template adı
- Shard sayısı
- Replica sayısı
- Refresh interval
- Sabit bitset filtrelerini önceden yükleme tercihi
ILM Policy Yapılandırması:
- Edit ILM Policy butonuna tıklayın.
- Açılan modalda hot/warm/cold/delete faz eşiklerini ayarlayın.
- Policy adının benzersiz olduğunu doğrulayın.
- İlk deployment öncesi policy adını kontrol edin.
Data Stream Oluşturma:
- ILM Policy ve Index Template başarıyla oluşturulduktan sonra, ilgili indeks adı için data stream Save and Deploy sırasında otomatik olarak oluşturulur.
- Data stream zaten mevcutsa tekrar oluşturulmaya çalışılmaz.
- Oluşturma başarısız olursa, deploy sonucu diyalogunda hata detayı gösterilir.
Connection Timeout:
- Connection Timeout (ms) alanına bağlantı kurulumu için bekleme süresini girin.
- Varsayılan: 5000 milisaniye.
- Form yalnızca alanın doldurulmuş olmasını zorunlu kılar; ayrı bir minimum/maksimum sınır doğrulaması yoktur.
- Bu tek değer üç ayrı süreyi birden belirler: bağlantı kurma (connect), Elasticsearch yanıtını bekleme (response) ve havuzdan bağlantı alma (connection request). Ayrı bir "Request Timeout" alanı yoktur.
- 1000 ms'nin altındaki değerler (0 ve negatif dahil) tam sayı bölmesi nedeniyle otomatik olarak 5000 ms'ye döner — bu nedenle çok düşük bir değer girmenin pratik bir etkisi olmaz.
Connection Pool (Sabit Değerler):
- Bu formda ayarlanabilir bir "IO Threads", "Max Connection Per Host" veya "Max Connection Total" alanı yoktur.
- Bağlantı havuzu kod içinde sabittir: host başına 20 eşzamanlı bağlantı, toplamda 20 × host sayısı.
- Keep-alive süresi sabit 30 saniyedir; ayrı bir "Socket Keep Alive" veya "Socket Reuse Address" toggle'ı yoktur.
Asenkron Yazım Ayarları (yalnızca APIops):
bulkBufferCapacity,bulkFlushIntervalMsvebulkMaxBatchSizealanları bu UI formunda görünmez; yalnızca APIops üzerinden ayarlanabilir.- Bu değerler, log kayıtlarının Worker'da asenkron olarak Elasticsearch'e nasıl toplu (bulk) gönderileceğini belirler (bkz. "Asenkron Yazım ve Failover Davranışı" bölümü).
Authentication Ayarlama:
- Authenticate toggle'ını bulun.
- Elasticsearch cluster'ınız kimlik doğrulama gerektiriyorsa toggle'ı Aktif konumuna getirin.
- Çoğu production ortamında kimlik doğrulama gerektirir.
Username ve Password:
- Authenticate toggle'ı aktifse Elastic Username alanı görünür hale gelir.
- Elasticsearch hesabınızın kullanıcı adını girin.
- Elastic Password alanına şifreyi girin.
- Şifre güvenlik nedeniyle maskelenmiş görünecektir.
- Hassas bilgiler için secret manager kullanımı önerilir.
Encrypt Communication (TLS):
- En az bir host HTTPS seçildiğinde Encrypt Communication bölümü görünür.
- TLS tipi seçin:
- PKCS#12 CA: PKCS#12 formatında CA dosyası
- PEM CA: PEM formatında CA dosyası
- PKCS#12 cert+key: PKCS#12 formatında sertifika ve anahtar dosyası
- Gerekli dosyaları yükleyin.
- Eksik dosyalarda form hata verir ve kayda izin vermez.
Disable Hostname Verification:
- Disable Hostname Verification toggle'ını bulun.
- Production'da false olarak değiştirin (varsayılan: true).
- Test ortamında true bırakılabilir.
- Formun alt kısmında veya sağ üst köşede [Test Connection] butonunu bulun.
- Butona tıklayın.
- Sistem bağlantı parametrelerini test eder:
- Elasticsearch cluster'ına bağlantı kurulur
- Kimlik doğrulama yapılır (Authentication aktifse)
- TLS handshake yapılır (Encrypt Communication aktifse)
- Cluster sağlığı kontrol edilir
- Test sonucu:
- Başarılı: Yeşil onay mesajı görüntülenir, "Connection test successful" gibi bir mesaj
- Başarısız: Kırmızı hata mesajı görüntülenir, hata detayları gösterilir
- Hata durumunda:
- Hata mesajını okuyun
- İlgili parametreleri kontrol edin (Host, Port, Username, Password)
- Firewall ve network ayarlarını kontrol edin
- Elasticsearch cluster sağlığını kontrol edin
- Test başarılı olana kadar parametreleri düzeltin ve tekrar test edin.
- Tüm zorunlu alanların doldurulduğundan emin olun.
- Test connection'ın başarılı olduğunu doğrulayın (önerilir).
- Formun sağ üst köşesinde bulunan [Save and Deploy] butonuna tıklayın.
- Sistem connection'ı kaydeder ve seçilen ortama deploy eder.
- Başarılı kayıt sonrası:
- Connection listesi sayfasına yönlendirilirsiniz
- Yeni connection listede görünür
- Connection Enabled durumda olur
- Integration Flow ve Connector adımlarında kullanılabilir hale gelir
Kontrol Listesi (Kaydetmeden Önce):
- Name alanı benzersiz ve geçerli
- En az bir Host ve Port alanları doldurulmuş
- Index Name doldurulmuş
- Connection Type seçilmiş
- Authentication aktifse Username ve Password doldurulmuş
- Environment seçilmiş
- Test Connection başarılı (önerilir)
- Zorunlu alanların hepsi doldurulmuş
Sonuç:
- Connection başarıyla oluşturulur ve kaydedilir
- Seçilen ortamda aktif hale gelir
- Integration Flow ve Connector adımlarında connection seçimi yapılabilir
- Connection listesinde görüntülenir ve yönetilebilir
Bağlantı Listesindeki Durum Göstergeleri ve Canlı Durum Kontrolü
Administrate aktif ve Connection Type değeri READ_WRITE olan bağlantılarda, bağlantı listesinde üç durum göstergesi görüntülenir. Ayrıca her satırda, Administrate ayarından bağımsız olarak bir Live Check butonu bulunur.
| Gösterge / Buton | Görünürlük | Açıklama |
|---|---|---|
| ILM Policy Göstergesi | Administrate aktif + Connection Type = READ_WRITE | Yeşil onay: policy Elasticsearch'te oluşturulmuş; kırmızı: oluşturulmamış. Tıklanarak yeniden oluşturma denenebilir |
| Index Template Göstergesi | Administrate aktif + Connection Type = READ_WRITE | Yeşil onay: template Elasticsearch'te oluşturulmuş; kırmızı: oluşturulmamış. Tıklanarak yeniden oluşturma denenebilir |
| Data Stream Göstergesi | Administrate aktif + Connection Type = READ_WRITE | Yeşil onay: data stream Elasticsearch'te oluşturulmuş; kırmızı: oluşturulmamış. Tıklanamaz — ILM Policy ve Index Template hazır olduğunda data stream Save and Deploy sırasında otomatik oluşturulur |
| Live Check Butonu | Her satırda (Administrate ayarından bağımsız) | Tıklandığında ILM Policy, Index Template ve Data Stream'in Elasticsearch cluster'ında gerçekten var olup olmadığı sorgulanır; bağlantı kaydı bu gerçek durumla güncellenir, son kontrol zamanı butonun altında görüntülenir. Bağlantı pasif (Disabled) durumdayken çalıştırılamaz |
Live Check çalıştırılmadan önce göstergeler yalnızca Apinizer'ın kendi kaydını yansıtır; bağlantı farklı bir Elasticsearch cluster'ına yönlendirildiğinde eski durum ekranda kalabilir.
Live Check tamamlanamazsa (örneğin cluster'a erişilemiyorsa) hata mesajı gösterilir, ancak kayıtlı göstergeler ve son kontrol zamanı değiştirilmez — erişilemeyen bir cluster "yok" anlamına gelmez.
Connection'ı Silme
| Bölüm / Adım | Açıklama ve İşlevler |
|---|---|
| Silme İşlemi | Satır sonundaki ⋮ menüsünden Delete seçin veya connection detay sayfasında [Delete] butonuna tıklayın |
| Silme İpuçları | Silmeden Önce Kontrol Edin: Integration Flow veya Connector adımlarında kullanılıyor olabilir. Gerekirse alternatif bir connection atayın. Silmeden önce Export ile yedek alın |
| Alternatif: Deaktif Etme | Silmek yerine Disable seçeneğini kullanın. Connection pasif olur ancak silinmez. Gerektiğinde yeniden etkinleştirilebilir |
Connection'ı Dışa/İçe Aktarma
Bu adımda kullanıcı, mevcut connection'ları yedekleme, farklı ortamlara taşıma veya paylaşma amacıyla dışa aktarabilir (export) ya da daha önce dışa aktarılmış bir connection'ı tekrar içe aktarabilir (import). Bu işlem, sürüm yönetimi, test ve üretim ortamları arasında geçiş veya ekipler arası paylaşım süreçlerinde veri bütünlüğünü korumak için kullanılır.
| Bölüm / Adım | Açıklama ve İşlevler |
|---|---|
| Dışa Aktarma (Export) | Yöntem 1: Eylem menüsünden ⋮ → Export seçin. ZIP dosyası otomatik indirilir. Yöntem 2: Connection detay sayfasında [Export] butonuna tıklayın. ZIP dosyası indirilir |
| Dosya Formatı | Format: Tarih-connection-ConnectionAdı-export.zip. Örnek: `13 Nov 2025-connection-Production_ElasticLog-export.zip` |
| ZIP İçeriği | Connection JSON dosyası, Metadata bilgileri, Bağımlılık bilgileri (örneğin sertifikalar, key store) |
| Kullanım Alanları | Yedekleme, Ortamlar arası taşıma (Test → Prod), Versiyonlama, Ekip veya proje bazlı paylaşım |
| İçe Aktarma (Import) | Ana listede [Import Elasticsearch] butonuna tıklayın. İndirilen ZIP dosyasını seçin. Sistem kontrolleri: Format geçerli mi? İsim çakışması var mı? Bağımlılıklar mevcut mu? Ardından [Import] butonuna tıklayın |
| İçe Aktarma Senaryoları | Senaryo 1: İsim Çakışması → Eski connection'ın üzerine yazın veya yeni bir isimle oluşturun. Senaryo 2: Eksik Bağımlılıklar → Eksik sertifikaları veya key store'ları önce oluşturun veya import sırasında çıkarın |
Connection'ın Kullanım Alanları
Bu adımda kullanıcı, oluşturduğu Elasticsearch connection'ını sistemin farklı bileşenlerinde kullanabilir. Connection'lar Integration Flow, Connector adımları veya Scheduled Job'larda seçilerek kullanılır.
| Kullanım Yeri | Açıklama ve İşlevler |
|---|---|
| Connection Oluşturma ve Aktif Etme | Adımlar: 1. Connection'ı oluşturun. 2. Test Connection ile bağlantıyı doğrulayın. 3. Save and Deploy ile kaydedin ve etkinleştirin. 4. Connection'ın Enabled durumda olduğundan emin olun |
| Integration / Connector Adımlarında Kullanım | Elasticsearch log, metrik ve arama verilerini gerektiren adımlarda connection seçilir. Örnek: "Elasticsearch Index", "Elasticsearch Query", "Elasticsearch Bulk" gibi adımlar. Bağlantı seçimi bu adımların yapılandırmasında yer alan Connection alanından yapılır |
| Scheduled Job Kullanımı | Zamanlanmış görevlerde (ör. belirli aralıklarla mesaj gönderme, dosya işleme vb.) bağlantı seçilerek dış sistemlere erişim sağlanır. Connection değiştiğinde, job çalışma davranışı da buna göre güncellenir |
| Test Amaçlı Kullanım | Connection Test özelliği ile bağlantının doğruluğu Integration Flow'dan bağımsız olarak kontrol edilebilir. Bu test hata ayıklama sürecinde kritik önem taşır |
Best Practices
Yapılması Gerekenler ve En İyi Uygulamalar
| Kategori | A çıklama / Öneriler |
|---|---|
| Index İsimlendirme | Kötü: index1. İyi: log-prod. En İyi: `prod-apiproxy-log-{yyyy.MM.dd}` |
| ILM Politikaları | Kötü: Varsayılanları değiştirmemek. İyi: Günlük veri büyüklüğüne göre max size ayarlamak. En İyi: Hem boyut hem yaş eşiği ayarlayıp rollover butonunu düzenli kullanmak |
| TLS Sertifika Yönetimi | Kötü: Tüm ortamda aynı sertifikayı paylaşmak. İyi: Ortam bazlı sertifika yüklemek. En İyi: Sertifika rotasyonunu otomasyonla planlamak ve expiration alarmları kurmak |
| Connection Türü Seçimi | Kötü: Okuma-only cluster'a READ_WRITE vermek. İyi: Yetki gereksinimine göre seçim yapmak. En İyi: Cluster rolü değişirse connection tipini güncellemek |
| Ortam Yönetimi | Kötü: Tüm ortamlarda aynı connection parametrelerini kullanmak. İyi: Her ortam için ayrı connection oluşturmak. En İyi: Environment seçeneğini kullanarak tek connection'da tüm ortamları yönetmek, ortamlar arası geçişte sadece environment değiştirmek |
| Connection Test | Kötü: Connection'ı test etmeden kaydetmek ve deploy etmek. İyi: Kaydetmeden önce Test Connection ile doğrulamak. En İyi: Her parametre değişikliğinden sonra test etmek, production'a geçmeden önce test ortamında tam entegrasyon testi yapmak |
Güvenlik En İyi Uygulamaları
| Güvenlik Alanı | Açıklama / Uyarılar |
|---|---|
| Erişim Segmentasyonu | Production cluster için ayrı connection ve RBAC kullanıcıları oluşturun; erişim tokenlarını paylaşmayın |
| Dosya Yükleri | PKCS#12/PEM dosyalarını versiyon kontrolüne koymayın; secret storage üzerinden yükleyin |
| Hostname Doğrulama | Disable Hostname Verification yalnızca test için kullanılmalı; production'da false bırakılması önerilir |
| Kimlik Bilgileri Yönetimi | Kullanıcı adı ve şifre gibi hassas bilgileri environment variable veya secret manager kullanarak saklayın. Kimlik bilgilerini kod veya konfigürasyon dosyalarına hardcode etmeyin. Periyodik olarak şifreleri güncelleyin |
| SSL/TLS Kullanımı | Production ortamında mutlaka SSL/TLS aktif edin. Self-signed sertifikalar sadece development ortamında kullanın. Sertifika expiration tarihlerini takip edin ve zamanında yenileyin |
| Erişim Kontrolü | Connection yapılandırmasını sadece yetkili kullanıcıların değiştirmesine izin verin. Connection değişiklik loglarını saklayın. Kritik connection'lar için değişiklik approval süreci uygulayın |
Kaçınılması Gerekenler
| Kategori | Açıklama / Uyarılar |
|---|---|
| İndex Adı Yeniden Kullanımı | Neden kaçınılmalı: Aynı template'i paylaşan indekslerde çakışma yaratır. Alternatif: Proje bazlı prefix kullanın |
| Eksik Host Tanımı | Neden kaçınılmalı: Tek host arızasında tüm akış durur. Alternatif: En az iki host girin, health check izleyin |
| İzin Verilmeyen TLS Tipleri | Neden kaçınılmalı: Yanlış dosya tipi handshake başarısızlığına yol açar. Alternatif: HTTPS seçimine uygun sertifika paketini kullanın |
| Production Connection'ı Test Ortamında Kullanma | Neden kaçınılmalı: Test verileri production sistemine yazılabilir, gerçek kullanıcılar etkilenebilir, güvenlik riski oluşur. Alternatif: Her ortam için ayrı connection oluşturun, environment parametresini kullanın, connection isimlerini ortama göre prefix ekleyerek ayırın (Test_, Prod_) |
| Çok Düşük Timeout Değerleri | Neden kaçınılmalı: 1000 ms altındaki değerler zaten otomatik olarak 5000 ms'ye döner (bkz. Timeout bölümü); asıl risk normal aralıkta ama gerçek ağ gecikmesine göre çok düşük seçilen bir değerin yavaş ağlarda sürekli timeout üretmesidir. Alternatif: Gerçek network latency'yi ölçün ve Connection Timeout'u buna göre belirleyin; bu değerin aynı zamanda yanıt bekleme süresini de kapsadığını unutmayın |
| Asenkron Yazım Kuyruğunu Trafiğe Göre Ayarlamamak | Neden kaçınılmalı: bulkBufferCapacity trafiğe göre düşük kalırsa yoğun anlarda kuyruk dolar ve kayıtlar hedef indekse değil failover connector'a yazılır. Alternatif: APIops üzerinden bulkBufferCapacity/bulkMaxBatchSize/bulkFlushIntervalMs değerlerini trafik hacmine göre ayarlayın, failover connector'a düşen kayıtları izleyin |
Performans İpuçları
| Kriter | Öneri / Etki |
|---|---|
| Shard/Replica Planlaması | Öneri: Günlük kayıt hacmine göre shard sayısını belirleyin, replica sayısını cluster kapasitesine göre ayarlayın. Etki: Arama performansı artar, disk kullanımı dengelenir |
| ILM Faz Süreleri | Öneri: Hot fazı kısa, cold fazı uzun tutarak depolama maliyetini azaltın. Etki: Pahalı düğümlerde gereksiz veri tutulmaz |
| Thread Pool İzleme | Öneri: Monitor ekranının Thread Pools sekmesinden Elasticsearch node'larının bulk/search queue uzunluklarını ve rejected sayılarını takip edin; kuyruk sürekli doluyorsa cluster kapasitesini artırın veya APIops ile bulkMaxBatchSize/bulkFlushIntervalMs değerlerini trafiğe göre ayarlayın. Etki: Kuyrukta bekleyen istek sayısı azalır |
| Connection Pool | Not: Bağlantı havuzu (host başına 20, toplam = 20 × host sayısı) koddan gelen sabit değerlerdir ve bu formdan değiştirilemez. Yüksek hacimli yazımda gerçek performans kaldıracı, APIops ile ayarlanan bulkBufferCapacity/bulkMaxBatchSize/bulkFlushIntervalMs değerleridir. Etki: Asenkron kuyruk trafiğe göre boyutlandırılır, taşma riski azalır |
| Timeout Değeri Optimizasyonu | Öneri: Gerçek network latency'yi ölçün, Connection Timeout değerini buna göre ayarlayın; bu tek değerin bağlantı kurma, yanıt bekleme ve havuzdan bağlantı alma sürelerinin üçünde birden kullanıldığını unutmayın. Etki: Gereksiz beklemeler önlenir, hızlı failover sağlanır, kullanıcı deneyimi iyileşir |
| Connection Monitoring | Öneri: Connection pool kullanımını izleyin, timeout oranlarını takip edin, connection health check yapın, alerting kurun. Etki: Sorunlar proaktif tespit edilir, performans darboğazları erken belirlenir, kesinti süresi azalır |
Sorun Giderme (Troubleshooting)
| Problem | Olası Nedenler | Çözüm Adımları |
|---|---|---|
| Index Template Oluşmuyor | Administrate kapalı, Template adı çakışıyor, Elasticsearch kullanıcı yetkisi yetersiz | 1. Administrate'i etkinleştirin. 2. Template adını değiştirin. 3. Kullanıcıya manage_index_templates yetkisi verin |
| ILM Policy Kaydedilmiyor | Policy adı mevcut, Hot phase devre dışı, UI modalı kapatılmamış | 1. Policy adını benzersiz yapın. 2. Hot fazı etkinleştirin. 3. Modalda Save'e basıp tekrar deneyin |
| Connection Timeout | Network gecikmesi, Hedef sistem yavaş yanıt veriyor, Timeout değeri çok düşük (unutmayın: aynı değer bağlantı kurma + yanıt bekleme + havuzdan bağlantı alma için birden kullanılır) | 1. Network connectivity kontrol edin. 2. Hedef sistem sağlığını kontrol edin. 3. Connection Timeout değerini artırın (1000 ms altı değerlerin otomatik 5000 ms'ye döndüğünü unutmayın). 4. Connection loglarını inceleyin |
| Authentication Failed | Yanlış kullanıcı adı/şifre, Expired credentials, Yetki problemi | 1. Kimlik bilgilerini doğrulayın. 2. Hedef sistemde kullan ıcının aktif olduğunu kontrol edin. 3. Gerekli yetkilerin verildiğini kontrol edin. 4. SSL/TLS sertifikalarını kontrol edin |
| Asenkron Yazım Kuyruğu Doluyor | bulkBufferCapacity trafiğe göre düşük kalmış, Elasticsearch cluster yavaş yanıt veriyor, Flusher kuyruğa yetişemiyor | 1. APIops ile bulkBufferCapacity/bulkMaxBatchSize değerlerini artırın. 2. Elasticsearch cluster sağlığını ve yanıt sürelerini kontrol edin. 3. Kayıtların failover connector'a düştüğünü doğrulayın (kuyruk dolması da failover'ı tetikler). 4. apinizer_es_log_buffer_size / apinizer_es_log_buffer_capacity metriklerini izleyin |
| Connection Test Başarılı Ama Entegrasyon Akışı Hata Veriyor | Integration/Connector adımında farklı connection seçili olabilir, Adım yanlış yapılandırılmış olabilir, Flow/Job redeploy edilmemiş olabilir | 1. Connection'ın enable toggle'ının aktif olduğunu kontrol edin. 2. Integration Flow'da doğru connection'ın seçildiğini doğrulayın. 3. Connection'ı tekrar deploy edin. 4. Integration Flow veya Job'ı redeploy edin. 5. Gateway loglarını kontrol edin |
Sık Sorulan Sorular (SSS)
| Kategori | Soru (S) | Cevap (C) |
|---|---|---|
| Genel | İki farklı ortam için tek connection kullanabilir miyim? | Ortam dropdown'ı sayesinde aynı connection içinde Development/Test/Production değerleri tutulabilir; ancak erişim politikaları için ayrı connection oluşturmak daha güvenlidir |
| Genel | Rollover butonu ne yapar? | Belirtilen connection'ın aktif indeksini manuel olarak rollover eder; ILM eşiği dolmadan önce acil durumlarda kullanılabilir |
| Teknik | HTTPS host olmadan Encrypt Communication açılabilir mi? | Hayır, en az bir host HTTPS seçilmedikçe TLS alanları görünmez; güvenlik gereksinimi için host scheme'i güncelleyin |
| Teknik | ILM politikası tüm indekslere uygulanır mı? | Aynı template ve policy adıyla oluşturulan indeksler etkilenir; farklı adlar kullanırsanız manuel atama gerekir |
| Kullanım | Monitor ekranındaki thread pool verileri neyi gösterir? | Elasticsearch node'larının bulk/search/ingest queue uzunluklarını, rejection sayılarını ve aktif thread sayısını gösterir; performans tuning için kullanılır |
| Genel | Aynı connection'ı birden fazla Integration Flow'da kullanabilir miyim? | Evet, aynı connection birden fazla Integration Flow veya Connector adımında kullanılabilir. Bu merkezi yönetim sağlar ve konfigürasyon tutarlılığını garanti eder. Ancak connection'da yapılan değişiklikler tüm kullanım yerlerini etkileyeceği için dikkatli olunmalıdır |
| Teknik | Connection pool'u kapatabilir miyim? | Hayır. Elasticsearch connection'ı için bağlantı havuzu her zaman aktiftir ve kod içinde sabit değerlerle çalışır (host başına 20 bağlantı, toplam = 20 × host sayısı); kullanıcı tarafından kapatılamaz veya bu formdan değiştirilemez |
| Kullanım | Test ve Production için farklı connection'lar mı oluşturmalıyım? | Evet, her ortam için ayrı connection oluşturmanız önerilir. Alternatif olarak environment parametresini kullanarak tek connection içinde tüm ortamları yönetebilirsiniz. Bu yaklaşım daha kolay yönetim ve daha az hata riski sağlar |
| Teknik | Test Connection başarılı ama Integration Flow'da çalışmıyor, neden? | Birkaç neden olabilir: 1) Connection enable toggle'ı pasif olabilir, 2) Integration adımında farklı bir connection seçili olabilir, 3) Connection deploy edilmemiş olabilir, 4) Integration Flow henüz redeploy edilmemiş olabilir |
| Teknik | Live Check butonu ne işe yarar? | ILM Policy, Index Template ve Data Stream'in Elasticsearch cluster'ında gerçekten var olup olmadığını sorgular ve bağlantı kaydını bu gerçek durumla senkronlar; bağlantı farklı bir Elasticsearch cluster'ına yönlendirildiğinde göstergelerin eski cluster'a ait durumu göstermeye devam etmesini önler |
| Teknik | Live Check hata verdi, durum göstergelerim sıfırlandı mı? | Hayır. Kontrol sırasında cluster'a erişilemezse hata mesajı gösterilir, ancak önceden kayıtlı göstergeler ve son kontrol zamanı değiştirilmeden kalır; erişilemiyor olmak "yok" anlamına gelmez |
| Teknik | Data Stream göstergesine tıklayarak data stream oluşturabilir miyim? | Hayır. ILM Policy ve Index Template göstergelerinin aksine Data Stream göstergesi yalnızca durumu gösterir, tıklanamaz. Data stream, ILM Policy ve Index Template hazır olduğunda Save and Deploy sırasında otomatik oluşturulur; mevcut durumu görmek için Live Check butonu kullanılabilir |