> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Logback

> Logback bağlantı yapılandırması yapar. Logback RollingFileAppender ile API trafiği ve sistem loglarını dosya tabanlı yönetebilir, dönüşümlü dosya yönetimi gerçekleştirebilir

## Genel Bakış

<AccordionGroup>
  <Accordion title="Amacı Nedir?">
    <CardGroup cols={2}>
      <Card title="Merkezi Log Toplama" icon="file-lines">
        Apinizer Gateway üzerindeki API Proxy trafiği için yüksek hacimli logları dosya tabanlı olarak toplar ve operasyon ekiplerine sürekli görünürlük sağlar.
      </Card>

      <Card title="Disk Tüketimi Kontrolü" icon="hard-drive">
        RollingFileAppender parametreleri sayesinde disk tüketimini kontrol eder, günlüklerin günlük/saatlik döngülerle ayrılmasını garanti eder.
      </Card>

      <Card title="Ortam Bazlı Ayrıştırma" icon="code-branch">
        Ortam bazlı log dizinleri tanımlanarak Development/Test/Production ayrışması sağlanır ve insidant analizi hızlanır.
      </Card>

      <Card title="Güvenlik ve İzin Yönetimi" icon="shield">
        Yanlış logPath izinleri hata doğurabileceğinden erişim haklarının OS seviyesinde doğrulanması kritik önem taşır.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Çalışma Prensibi">
    <CardGroup cols={2}>
      <Card title="Bağlantı Başlatma" icon="play">
        Integration Flow veya Connector içerisinden Logback bağlantısı talep edildiğinde, sistem yapılandırılmış connection parametrelerini okur.
      </Card>

      <Card title="Connection Pool Yönetimi" icon="layer-group">
        Logback RollingFileAppender worker node üzerinde dosya tanıtıcılarını reuse ederek aynı log dosyasına eşzamanlı yazım ihtiyacını yönetir.
      </Card>

      <Card title="Kimlik Doğrulama" icon="shield">
        Worker pod'u, seçilen Ortam'a bağlı sistem kullanıcı hesabı ve dosya izinleriyle hedef dosya sistemine erişir; ek Authentication katmanı gerektirmez.
      </Card>

      <Card title="Veri İletişimi" icon="file-text">
        HTTP isteği/yanıtı başlıkları, gövdeleri ve meta verileri belirlenen logPattern ile formatlanır ve File I/O üzerinden belirtilen logPath/logFileName kombinasyonuna yazılır.
      </Card>

      <Card title="Bağlantı Yönetimi" icon="gear">
        İşlem tamamlandıktan sonra bağlantı aynı worker thread içinde açık kalır ve RollingFileAppender buffer'ı flush edilerek yeni talepleri bekler.
      </Card>

      <Card title="Hata Yönetimi" icon="triangle-exclamation">
        Bağlantı hatası, timeout veya authentication hatası durumunda deployment-result dialog'u ayrıntılı hata mesajıyla devreye girer, kullanıcıya log dizini ve yetki kontrollerini gözden geçirmesi önerilir.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Kullanım Alanları">
    <CardGroup cols={2}>
      <Card title="API Proxy Trafik Loglama" icon="file-lines">
        API Proxy trafik loglarını merkezi olarak saklama ve SIEM entegrasyonuna hazırlama.
      </Card>

      <Card title="Request/Response İzleme" icon="search">
        İş kritik entegrasyonlarda ayrıntılı request/response izlerini geriye dönük analiz edebilme.
      </Card>

      <Card title="Log Retention Politikaları" icon="calendar">
        Ortam bazlı log retention politikalarını uygulayarak disk kapasitesini dengede tutma.
      </Card>

      <Card title="Güvenlik İncelemeleri" icon="shield">
        Güvenlik incelemelerinde belirli pod veya endpoint loglarını filtreleyerek dışa aktarma.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Teknik Özellikler ve Yetenekler

<AccordionGroup>
  <Accordion title="Temel Özellikler">
    <CardGroup cols={2}>
      <Card title="Log Dizini Yönetimi" icon="folder">
        logPath alanı ile worker node üstündeki dizin seçilir, hatalı klasörler aktif olarak reddedilir.
      </Card>

      <Card title="Dosya İsimlendirme Desenleri" icon="file-code">
        logFileName ve logFilenamePattern kombinasyonu günlükleri tarih/sıra bazlı böler, kolay arşivlenebilirlik sağlar.
      </Card>

      <Card title="Depolama Limit Kontrolü" icon="hard-drive">
        maxFileSize, maxHistory ve totalSizeCap değerleri ile disk tüketimi kontrol altında tutulur.
      </Card>

      <Card title="Ortam Bazlı Yapılandırma" icon="code-branch">
        Her ortam (Development, Test, Production) için ayrı connection parametreleri tanımlama imkanı.
      </Card>

      <Card title="Enable/Disable Kontrolü" icon="toggle-on">
        Connection'ı aktif veya pasif hale getirme (enable/disable toggle). Pasif durumda bağlantı kullanılamaz ancak yapılandırması saklanır.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İleri Düzey Özellikler">
    <CardGroup cols={2}>
      <Card title="Anlık Test Desteği" icon="flask">
        Test Connection butonu, kaydetmeden önce logPath erişimi ve desen doğrulamasını tetikler.
      </Card>

      <Card title="İsim Çakışması Engeli" icon="shield">
        Name alanı için anlık benzersizlik kontrolü yapılır, çakışma durumunda kayıt engellenir.
      </Card>

      <Card title="Global Taşıma" icon="share">
        Proje bazlı bağlantılar tek tıkla global alana taşınarak çoklu proje kullanımı sağlanır.
      </Card>

      <Card title="Connection Test Özelliği" icon="flask">
        "Test Connection" butonu ile bağlantı parametrelerini kaydetmeden önce doğrulama imkanı.
      </Card>

      <Card title="Export/Import Özelliği" icon="file-export">
        Connection yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
      </Card>

      <Card title="Connection Monitoring" icon="chart-line">
        Bağlantı sağlığı, pool durumu ve performans metriklerini izleme.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Connection Parametreleri

<AccordionGroup>
  <Accordion title="Zorunlu Parametreler">
    <CardGroup cols={2}>
      <Card title="Name" icon="tag">
        **Açıklama:** Connection adı (benzersiz olmalı)\
        **Örnek Değer:** `Production_Logback`\
        **Notlar:** Boşlukla başlamaz, özel karakterler kullanılmamalı
      </Card>

      <Card title="Log Path (logPath)" icon="folder">
        **Açıklama:** Log dosyalarının yazılacağı dizin\
        **Örnek Değer:** `/var/log/apinizer/`\
        **Notlar:** Worker pod'unun yazma izni olmalı, mutlak path önerilir
      </Card>

      <Card title="Log File Name (logFileName)" icon="file-lines">
        **Açıklama:** RollingFileAppender temel dosya adı\
        **Örnek Değer:** `ApinizerApiProxyTraffic`\
        **Notlar:** Harf, rakam ve `_` kullanılması önerilir
      </Card>

      <Card title="Log Filename Pattern (logFilenamePattern)" icon="file-code">
        **Açıklama:** Tarih ve indeks içeren dosya adı deseni\
        **Örnek Değer:** `%d{yyyy-MM-dd}.%i.log`\
        **Notlar:** Logback pattern'leri desteklenir, tarih formatı zorunludur
      </Card>

      <Card title="Log Pattern (logPattern)" icon="code">
        **Açıklama:** Tek satırlık log formatı\
        **Örnek Değer:** `%d{yyyy-MM-dd HH:mm:ss.SSS}[%t]%n`\
        **Notlar:** Tümü Logback conversion pattern'leriyle uyumludur
      </Card>

      <Card title="Max File Size (maxFileSize)" icon="file">
        **Açıklama:** Tek dosyanın MB cinsinden üst limiti\
        **Örnek Değer:** 25\
        **Notlar:** Pozitif tamsayı, 1-1024 MB aralığı önerilir
      </Card>

      <Card title="Max History (maxHistory)" icon="calendar">
        **Açıklama:** Saklanacak döngü dosyası sayısı\
        **Örnek Değer:** 30\
        **Notlar:** 0 sınırsız anlamına gelir ancak disk büyüyebilir
      </Card>

      <Card title="Total Size Cap (totalSizeCap)" icon="hard-drive">
        **Açıklama:** Tüm döngü dosyalarının toplam MB limiti\
        **Örnek Değer:** 1024\
        **Notlar:** 0 ise Logback toplam limit uygulamaz; Production için >512 MB önerilir
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İsteğe Bağlı Parametreler">
    <CardGroup cols={2}>
      <Card title="Description" icon="file-text">
        **Açıklama:** Bağlantının amacı veya kapsamı\
        **Varsayılan Değer:** ''\
        **Önerilen Değer:** İşlevi ve hedef sistemi belirten kısa açıklama
      </Card>

      <Card title="Environment (environmentId)" icon="server">
        **Açıklama:** Yayımlanmış ortam seçimi\
        **Varsayılan Değer:** null\
        **Önerilen Değer:** Her ortam için ayrı değer seçilmesi önerilir
      </Card>

      <Card title="Log Pod Name (logPodName)" icon="server">
        **Açıklama:** Belirli worker pod'una log yönlendirmek için etiket\
        **Varsayılan Değer:** ''\
        **Önerilen Değer:** Multi-node kümelerde sadece hedef pod'a yazmak gerektiğinde kullanın
      </Card>

      <Card title="Deploy To Worker (deployToWorker)" icon="rocket">
        **Açıklama:** Bağlantının worker node'lara dağıtılıp dağıtılmayacağı\
        **Varsayılan Değer:** true\
        **Önerilen Değer:** Sadece yönetim node'unda test amaçlı tutulacaksa false
      </Card>

      <Card title="Enable Status" icon="toggle-on">
        **Açıklama:** Bağlantının aktifliği\
        **Varsayılan Değer:** true\
        **Önerilen Değer:** Production'da her zaman aktif, sorun çözülürken geçici olarak kapatılabilir
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

### Timeout ve Connection Pool Parametreleri

<CardGroup cols={2}>
  <Card title="Connection Timeout" icon="clock">
    **Açıklama:** Bağlantı kurulması için maksimum bekleme süresi\
    **Varsayılan:** Uygulanmaz\
    **Min:** - | **Max:** -\
    **Birim:** milisaniye
  </Card>

  <Card title="Request Timeout" icon="hourglass">
    **Açıklama:** İstek yanıtı için maksimum bekleme süresi\
    **Varsayılan:** Uygulanmaz\
    **Min:** - | **Max:** -\
    **Birim:** milisaniye
  </Card>

  <Card title="Pool Size" icon="layer-group">
    **Açıklama:** Connection pool'daki maksimum bağlantı sayısı\
    **Varsayılan:** Uygulanmaz\
    **Min:** - | **Max:** -\
    **Birim:** adet
  </Card>

  <Card title="Flush Interval" icon="repeat">
    **Açıklama:** Log buffer'ının diske yazım aralığı (Logback internal)\
    **Varsayılan:** 1000\
    **Min:** 250 | **Max:** 5000\
    **Birim:** milisaniye
  </Card>
</CardGroup>

## Kullanım Senaryoları

<CardGroup cols={2}>
  <Card title="API Proxy Trafik İzleme" icon="chart-line">
    **Durum:** Yüksek hacimli trafik analizi gerekir\
    **Çözüm:** logPath=/var/log/apinizer/proxy, maxHistory=30, totalSizeCap=2048\
    **Beklenen Davranış:** Tüm çağrılar 30 günlük geçmişle saklanır, SIEM'e okunabilir
  </Card>

  <Card title="Güvenlik Olay İncelemesi" icon="shield">
    **Durum:** Belirli endpoint logları istenir\
    **Çözüm:** logFilenamePattern=`%d{yyyy-MM-dd}-security.%i.log`\
    **Beklenen Davranış:** Tarih bazlı dosyalar hızlıca filtrelenir, olay süresi içinde inceleme yapılır
  </Card>

  <Card title="Entegrasyon Testleri" icon="flask">
    **Durum:** QA ortamında ayrıntılı log gerekir\
    **Çözüm:** environmentId=Test, maxFileSize=10\
    **Beklenen Davranış:** Test logları küçük dosyalara ayrılır, geliştiriciler kolayca indirir
  </Card>

  <Card title="Pod Bazlı Ayırma" icon="server">
    **Durum:** Belirli worker pod'unda sorun vardır\
    **Çözüm:** logPodName=gateway-worker-2\
    **Beklenen Davranış:** Sadece ilgili pod'dan log alınır, hedef sorun izole edilir
  </Card>

  <Card title="Regülasyon Arşivleme" icon="file-archive">
    **Durum:** KVKK kapsamında log saklama\
    **Çözüm:** maxHistory=0, totalSizeCap=5120\
    **Beklenen Davranış:** Sonsuz döngü yerine toplam kota ile yasal saklama süresi sağlanır
  </Card>

  <Card title="Disaster Recovery" icon="rotate">
    **Durum:** Yedek node'a log kopyalama\
    **Çözüm:** logPath=/mnt/dr/logs, Enable Export All açık\
    **Beklenen Davranış:** Failover senaryosunda tüm loglar paylaşılan depoya yazılır
  </Card>
</CardGroup>

## Connection Yapılandırma

### Yeni Logback Oluşturma

<img src="https://mintcdn.com/apinizer/YX1NcEKlSBeHefxE/images/yonetici/baglantilar/logback-variable-new.png?fit=max&auto=format&n=YX1NcEKlSBeHefxE&q=85&s=5020d60beb80aab5214252fcce7206ea" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/yonetici/baglantilar/logback-variable-new.png" />

<Steps>
  <Step title="Oluşturma Sayfasına Gitme">
    * Sol menüden **Connection → Logback** bölümüne gidin.
    * Sağ üstteki **\[+ Create]** butonuna tıklayın.
  </Step>

  <Step title="Temel Bilgileri Girme">
    **Enable Status (Aktif Durumu):** Toggle ile aktif/pasif durumu ayarlayın. Yeni connection'lar varsayılan olarak aktiftir.

    **Name (İsim) Zorunlu:**
    Örnek: `Production_Logback`

    * Benzersiz isim girin, boşlukla başlamaz.
    * Sistem otomatik kontrol eder. Yeşil tik: kullanılabilir. Kırmızı çarpı: mevcut isim.

    **Description (Açıklama):**
    Örnek: "API proxy trafik logları"

    * Maks. 1000 karakter.
    * Connection'ın amacını açıklayın.

    <Info>
      Sayfanın üst kısmındaki işlem butonları alanında, **\[\<> Variable]** butonunu kullanarak dinamik değer seçebilir, Global variable ifadeleri sayesinde connection parametrelerini sabit değer yerine değişken tabanlı yönetebilirsiniz. Detaylı bilgi için [Dinamik Değişkenler](/tr/concepts/temel-kavramlar/dinamik-degiskenler) sayfasını inceleyebilirsiniz.
    </Info>
  </Step>

  <Step title="Environment (Ortam) Seçimi">
    * Dropdown menüden ortam seçin: **Development**, **Test**, veya **Production**.
    * Her ortam için farklı connection parametreleri tanımlanabilir.
  </Step>

  <Step title="Logback Spesifik Parametreler - Dizin ve Adlandırma">
    * **logPath** alanına worker node'un yazabildiği mutlak dizini girin.
    * **logFileName** ve **logFilenamePattern** alanlarıyla RollingFileAppender dosya döngüsünü belirleyin; tarih ve indeks içermesine dikkat edin.
    * Yetkisiz dizinler deploy aşamasında hata üretir.
  </Step>

  <Step title="Logback Spesifik Parametreler - İçerik ve Format">
    * **logPattern** alanını Logback conversion pattern'leriyle doldurun, gerekirse thread adı veya request-id ekleyin.
    * Eğer belirli pod'a yönlendirme gerekiyorsa **logPodName** alanını kullanın.
  </Step>

  <Step title="Timeout ve Connection Pool Ayarları">
    * Logback dosya yazımı için ayrı timeout yoktur; gerekirse JVM seviyesinde flush interval ayarlarını deployment descriptor üzerinden güncelleyin.
    * Disk kotaları için **maxFileSize**, **maxHistory**, **totalSizeCap** değerlerini operasyon politikalarına uygun şekilde belirleyin.
  </Step>

  <Step title="Güvenlik ve Authentication Ayarları">
    * Worker node kullanıcı hesabının **logPath** üzerinde yazma izni olduğundan emin olun.
    * Gerekiyorsa dosya sistemi ACL'leri veya Kerberos destekli paylaşım noktaları kullanın.
    * Production ortamında paylaşılan dizinlere sadece yetkili servis hesaplarının erişmesine izin verin.
  </Step>

  <Step title="Test Connection">
    * **\[Test Connection]** butonuna tıklayın.
    * Bağlantı parametrelerinin doğru olup olmadığını test edin.
    * Başarılı: Yeşil onay mesajı, Başarısız: Hata detayları gösterilir.
  </Step>

  <Step title="Kaydetme">
    * Sağ üstteki **\[Save and Deploy]** butonuna tıklayın.

    **Kontrol Listesi:** Benzersiz isim. Zorunlu alanlar dolu. Test connection başarılı (önerilir)

    **Sonuç:**

    * Connection listeye eklenir.
    * Integration Flow ve Connector adımlarında kullanılabilir hale gelir.
    * Ortama göre aktif olur.

    <Check>
      Connection başarıyla oluşturuldu! Artık Integration Flow ve Connector adımlarında kullanabilirsiniz.
    </Check>
  </Step>
</Steps>

### Connection'ı Silme

Connection'ı silmek için:

<CardGroup cols={2}>
  <Card title="Yöntem 1: Liste Ekranından" icon="list">
    * Connection listesinde satır sonundaki **⋮** menüsünden **Delete** seçeneğini tıklayın.
    * Onay dialogunda silme işlemini onaylayın.
  </Card>

  <Card title="Silme İpuçları" icon="info-circle">
    **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.
  </Card>

  <Card title="Alternatif: Deaktif Etme" icon="toggle-off">
    * Silmek yerine connection'ın aktif durumunu pasif hale getirin.
    * Connection pasif olur ancak silinmez.
    * Gerektiğinde aktif hale getirerek yeniden kullanabilirsiniz.
  </Card>
</CardGroup>

### Connection'ı Dışa/İçe Aktarma

<Info>
  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.
</Info>

<AccordionGroup>
  <Accordion title="Dışa Aktarma (Export)">
    <CardGroup cols={2}>
      <Card title="Yöntem 1: Liste Ekranından" icon="list">
        * Connection listesinde satır sonundaki **⋮** menüsünden **Export** seçeneğini tıklayın.
        * ZIP dosyası otomatik olarak indirilir.
      </Card>

      <Card title="Dosya Formatı" icon="file-zipper">
        Format: `{Date}-logback-integration-{ConnectionName}-export.zip`\
        Örnek: `13 Nov 2025-logback-integration-Production_Logback-export.zip`
      </Card>

      <Card title="ZIP İçeriği" icon="folder-open">
        * Connection JSON dosyası
        * Metadata bilgileri
        * Bağımlılık bilgileri (örneğin sertifikalar, key store)
      </Card>

      <Card title="Kullanım Alanları" icon="list-check">
        * Yedekleme
        * Ortamlar arası taşıma (Test → Prod)
        * Versiyonlama
        * Ekip veya proje bazlı paylaşım
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İçe Aktarma (Import)">
    <CardGroup cols={2}>
      <Card title="İçe Aktarma Adımları" icon="upload">
        * Ana listede **\[Import Logback]** 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.
      </Card>

      <Card title="İçe Aktarma Senaryoları" icon="info-circle">
        **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.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

### Connection'ın Kullanım Alanları

<CardGroup cols={2}>
  <Card title="Connection Oluşturma ve Aktif Etme" icon="plus-circle">
    **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.
  </Card>

  <Card title="Integration / Connector Adımlarında Kullanım" icon="plug">
    Logback RollingFileAppender ile dosya tabanlı log yazımı gerektiren adımlarda connection seçilir. Örnek: "Logback Appender", "File Logger", "Rolling File Writer" gibi adımlar. Bağlantı seçimi bu adımların yapılandırmasında yer alan Connection alanından yapılır.
  </Card>

  <Card title="Scheduled Job Kullanımı" icon="clock">
    Zamanlanmış görevlerde (ör. belirli aralıklarla log arşivleme, log rotasyonu vb.) bağlantı seçilerek dosya tabanlı log yazımı gerçekleştirilir. Connection değiştiğinde, job çalışma davranışı da buna göre güncellenir.
  </Card>

  <Card title="Test Amaçlı Kullanım" icon="flask">
    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.
  </Card>
</CardGroup>

## Best Practices

<AccordionGroup>
  <Accordion title="Yapılması Gerekenler ve En İyi Uygulamalar">
    <CardGroup cols={2}>
      <Card title="Log Dizini Seçimi" icon="folder">
        **Kötü:** Temp dizinlerini Production'da kullanmak.\
        **İyi:** Ayrı bir `/var/log/apinizer` dizini açmak.\
        **En İyi:** Ayrılmış disk veya mount point üzerinde sadece servis hesabına izin vermek.
      </Card>

      <Card title="Dosya Deseni Yönetimi" icon="file-code">
        **Kötü:** Desende tarih kullanmamak.\
        **İyi:** Günlük tarihli desen kullanmak.\
        **En İyi:** Tarih + indeks ve uygulama adı içeren desenle SIEM uyumluluğu sağlamak.
      </Card>

      <Card title="Depolama Politikası" icon="hard-drive">
        **Kötü:** maxHistory=0 ve totalSizeCap=0 bırakmak.\
        **İyi:** Trafiğe göre makul değerler belirlemek.\
        **En İyi:** Disk kapasitesi, regülasyon ve yedekleme süreçlerine göre otomatik temizleme kuralları koymak.
      </Card>

      <Card title="Pod Bazlı Yönlendirme" icon="server">
        **Kötü:** Tüm pod'ları tek dizine yazdırmak.\
        **İyi:** Sorunlu pod'lar için logPodName kullanmak.\
        **En İyi:** Her pod için ayrı dizin + merkezi toplama pipeline'ı kurmak.
      </Card>

      <Card title="Ortam Yönetimi" icon="server">
        **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
      </Card>

      <Card title="Connection Test" icon="flask">
        **Kötü:** Connection'ı test etmeden kaydetmek ve deployment 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
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Güvenlik En İyi Uygulamaları">
    <CardGroup cols={2}>
      <Card title="Dosya Sistemi Erişim Kontrolü" icon="shield">
        logPath dizinine sadece ilgili worker servis hesaplarının yazabileceği POSIX izinleri tanımlayın, root paylaşımlarını Production'da açmayın
      </Card>

      <Card title="Paylaşılan Depolama Güvenliği" icon="network-wired">
        NFS/Samba gibi paylaşımlarda network segmentini kısıtlayın, erişimlerde IP tabanlı allowlist uygulayın
      </Card>

      <Card title="Log İçeriği Maskeleme" icon="mask">
        logPattern'e kişisel veri yazılmasını engelleyin, gerekirse privacy setting bileşenleriyle hassas alanları anonimleştirin
      </Card>

      <Card title="Kimlik Bilgileri Yönetimi" icon="lock">
        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
      </Card>

      <Card title="SSL/TLS Kullanımı" icon="shield">
        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
      </Card>

      <Card title="Erişim Kontrolü" icon="user-shield">
        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
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Kaçınılması Gerekenler">
    <CardGroup cols={2}>
      <Card title="Paylaşılan Root Dizine Yazmak" icon="exclamation-triangle">
        **Neden kaçınılmalı:** root dizininde log tutmak yanlış izinlere yol açar, diğer servisleri etkiler\
        **Alternatif:** Ayrı mount edilmiş log dizini kullanın
      </Card>

      <Card title="Yanlış Tarih Deseni" icon="calendar">
        **Neden kaçınılmalı:** Tarihsiz dosyalar overwrite olur, log kaybı yaşanır\
        **Alternatif:** `%d` içeren desenler kullanın
      </Card>

      <Card title="Kota Tanımlamamak" icon="hard-drive">
        **Neden kaçınılmalı:** Disk dolduğunda gateway durabilir\
        **Alternatif:** maxFileSize, maxHistory ve totalSizeCap değerlerini sistem kapasitesine göre belirleyin
      </Card>

      <Card title="Production Connection'ı Test Ortamında Kullanma" icon="triangle-exclamation">
        **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\_)
      </Card>

      <Card title="Çok Düşük Timeout Değerleri" icon="clock">
        **Neden kaçınılmalı:** Ağ gecikmelerinde connection sürekli timeout olur, Entegrasyon adımları başarısız olur\
        **Alternatif:** Gerçek kullanım senaryolarına göre timeout değerlerini ayarlayın, network latency'yi ölçün ve timeout'ları buna göre belirleyin
      </Card>

      <Card title="Connection Pool Kullanmama" icon="layer-group">
        **Neden kaçınılmalı:** Her istekte yeni bağlantı açılır, performans düşer, kaynak tüketimi artar, hedef sistem yükü artar\
        **Alternatif:** Connection pool aktif edin, pool size'ı trafik hacmine göre ayarlayın, pool monitoring kurun
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Performans İpuçları">
    <CardGroup cols={2}>
      <Card title="Disk IO Optimizasyonu" icon="hard-drive">
        **Öneri:** SSD tabanlı dizinleri tercih edin, `noatime` mount seçeneği kullanın\
        **Etki:** Yazma gecikmeleri azalır, log kaydı kesintisizleşir
      </Card>

      <Card title="Pattern Minimalizmi" icon="code">
        **Öneri:** logPattern içerisine sadece ihtiyaç duyulan alanları alın, pahalı JSON serileştirmelerden kaçının\
        **Etki:** CPU kullanımı düşer, log throughput artar
      </Card>

      <Card title="Retention Otomasyonu" icon="calendar">
        **Öneri:** maxHistory ve totalSizeCap değerlerini gerçek disk kapasitesiyle eşleştirin, background cleanup scriptleri planlayın\
        **Etki:** Disk doluluk riskleri ortadan kalkar, manuel müdahale ihtiyacı azalır
      </Card>

      <Card title="Connection Pool Optimizasyonu" icon="layer-group">
        **Öneri:** Pool size'ı peak trafiğe göre ayarlayın (önerilen: eşzamanlı istek sayısı × 1.5), idle connection timeout'ları belirleyin, pool health check yapın\
        **Etki:** Bağlantı açma maliyeti %80 azalır, yanıt süreleri düşer, kaynak kullanımı optimize edilir
      </Card>

      <Card title="Timeout Değerleri Optimizasyonu" icon="clock">
        **Öneri:** Gerçek network latency'yi ölçün, timeout değerlerini buna göre ayarlayın, çok düşük veya çok yüksek timeout'lardan kaçının\
        **Etki:** Gereksiz beklemeler önlenir, hızlı fail-over sağlanır, kullanıcı deneyimi iyileşir
      </Card>

      <Card title="Connection Monitoring" icon="chart-bar">
        **Ö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
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Sorun Giderme (Troubleshooting)

<AccordionGroup>
  <Accordion title="Log Dosyası Oluşmuyor">
    <Warning>
      logPath yanlış, worker yazma izni yok veya connection disable durumda olabilir.
    </Warning>

    <Steps>
      <Step title="LogPath Doğrulama">
        logPath değerini doğrulayın.
      </Step>

      <Step title="Kullanıcı İzinleri">
        Worker pod kullanıcı izinlerini kontrol edin.
      </Step>

      <Step title="Enable Durumu">
        Connection enable durumunu açın.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Dosya Boyutu Limitini Aşıyor">
    <Warning>
      maxFileSize düşük, maxHistory=0 veya totalSizeCap=0 olabilir.
    </Warning>

    <Steps>
      <Step title="MaxFileSize Artırma">
        maxFileSize'ı trafiğe göre artırın.
      </Step>

      <Step title="MaxHistory Limit">
        maxHistory'ye limit verin.
      </Step>

      <Step title="TotalSizeCap Tanımlama">
        totalSizeCap tanımlayın ve redeploy edin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Connection Timeout">
    <Warning>
      Network gecikmesi, hedef sistem yavaş yanıt veriyor veya timeout değeri çok düşük olabilir.
    </Warning>

    <Steps>
      <Step title="Network Kontrolü">
        Network connectivity kontrol edin.
      </Step>

      <Step title="Sistem Sağlığı">
        Hedef sistem sağlığını kontrol edin.
      </Step>

      <Step title="Timeout Ayarları">
        Timeout değerlerini artırın.
      </Step>

      <Step title="Log İnceleme">
        Connection loglarını inceleyin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Authentication Failed">
    <Warning>
      Yanlış kullanıcı adı/şifre, expired credentials veya yetki problemi olabilir.
    </Warning>

    <Steps>
      <Step title="Kimlik Bilgileri">
        Kimlik bilgilerini doğrulayın.
      </Step>

      <Step title="Kullanıcı Durumu">
        Hedef sistemde kullanıcının aktif olduğunu kontrol edin.
      </Step>

      <Step title="Yetki Kontrolü">
        Gerekli yetkilerin verildiğini kontrol edin.
      </Step>

      <Step title="Sertifika Kontrolü">
        SSL/TLS sertifikalarını kontrol edin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Pool Exhausted">
    <Warning>
      Pool size çok düşük, connection leak var veya trafik çok yüksek olabilir.
    </Warning>

    <Steps>
      <Step title="Pool Size">
        Pool size'ı artırın.
      </Step>

      <Step title="Connection Kontrolü">
        Connection'ların düzgün kapatıldığını kontrol edin.
      </Step>

      <Step title="Idle Timeout">
        Idle connection timeout'ları ayarlayın.
      </Step>

      <Step title="Metrik İzleme">
        Connection kullanım metriklerini izleyin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Connection Test Başarılı Ama Entegrasyon Akışı Hata Veriyor">
    <Warning>
      Integration/Connector adımında farklı connection seçili olabilir, adım yanlış yapılandırılmış olabilir veya Flow/Job redeploy edilmemiş olabilir.
    </Warning>

    <Steps>
      <Step title="Enable Toggle">
        Connection'ın enable toggle'ının aktif olduğunu kontrol edin.
      </Step>

      <Step title="Connection Seçimi">
        Integration Flow'da doğru connection'ın seçildiğini doğrulayın.
      </Step>

      <Step title="Connection Deploy">
        Connection'ı tekrar deploy edin.
      </Step>

      <Step title="Flow/Job Deploy">
        Integration Flow veya Job'ı redeploy edin.
      </Step>

      <Step title="Log Kontrolü">
        Gateway loglarını kontrol edin.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## Sık Sorulan Sorular (SSS)

<AccordionGroup>
  <Accordion title="Logback Connection için minimum hangi parametreleri girmeliyim?">
    <Info>
      Name, logPath, logFileName, logFilenamePattern, logPattern ve tüm limit alanları doldurulmalıdır; diğerleri isteğe bağlıdır ancak tavsiye edilir.
    </Info>
  </Accordion>

  <Accordion title="Logları aynı anda hem dosyaya hem de harici sisteme aktarabilir miyim?">
    <Check>
      Evet, Logback Connection dosya yazarken Integration Flow'da paralel Connector adımlarıyla REST API veya Message Queue çıkışları tanımlanabilir.
    </Check>
  </Accordion>

  <Accordion title="logPodName değerini boş bırakırsam ne olur?">
    <Info>
      Boş bırakıldığında tüm worker pod'ları aynı logPath altında döner; spesifik pod takibi yapmayacaksanız boş bırakmak güvenlidir.
    </Info>
  </Accordion>

  <Accordion title="maxHistory ile totalSizeCap çelişirse hangisi öncelikli olur?">
    <Info>
      Logback öncelikle maxHistory değerine göre temizler, ardından totalSizeCap aşımı devam ediyorsa en eski dosyaları silmeye devam eder.
    </Info>
  </Accordion>

  <Accordion title="Logları harici SIEM aracına nasıl taşıyabilirim?">
    <Info>
      Rolling dosyalar tamamlandığında external agent'lar veya cron job'lar logPath'i okuyup SIEM'e push edebilir; dosya desenini SIEM beklentisiyle uyumlu tutun.
    </Info>
  </Accordion>

  <Accordion title="Aynı connection'ı birden fazla Integration Flow'da kullanabilir miyim?">
    <Check>
      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.
    </Check>
  </Accordion>

  <Accordion title="Connection pool kullanmak zorunlu mudur?">
    <Info>
      Connection pool kullanımı zorunlu değildir ancak yüksek trafikli sistemlerde şiddetle önerilir. Her istekte yeni bağlantı açmak yerine mevcut bağlantıları yeniden kullanmak performansı önemli ölçüde artırır.
    </Info>
  </Accordion>

  <Accordion title="Test ve Production için farklı connection'lar mı oluşturmalıyım?">
    <Check>
      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.
    </Check>
  </Accordion>

  <Accordion title="Test Connection başarılı ama Integration Flow'da çalışmıyor, neden?">
    <Warning>
      Birkaç neden olabilir:
    </Warning>

    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
  </Accordion>
</AccordionGroup>

## Sonraki Adımlar

<CardGroup cols={2}>
  <Card title="Logback Connector" icon="file-lines" href="/tr/integrations/konnektorler/logback-konnektor">
    Logback Connector kullanımını öğrenin
  </Card>

  <Card title="Connection Types Overview" icon="plug" href="/tr/integrations/baglanti-yonetimi/genel-bakis">
    Bağlantı türleri genel bakış
  </Card>

  <Card title="Syslog Connector" icon="file-lines" href="/tr/integrations/konnektorler/syslog-konnektor">
    Syslog mesajları gönderme
  </Card>
</CardGroup>
