> ## 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.

# Graylog

> GELF log olaylarını Graylog cluster'ına güvenli TCP/UDP ile iletir. GELF formatında merkezi log toplama ve TCP/UDP ile iletim gerçekleştirebilir

## Genel Bakış

<AccordionGroup>
  <Accordion title="Amacı Nedir?">
    <CardGroup cols={2}>
      <Card title="Merkezi Log Toplama" icon="archive">
        Apinizer log olaylarını GELF formatında tek bir merkezde toplamayı sağlar
      </Card>

      <Card title="Trafik Yönetimi" icon="chart-line">
        Trafik yoğunluğunu kuyruk ve sıkıştırma ayarlarıyla yöneterek log teslim sürekliliği sunar
      </Card>

      <Card title="Güvenlik" icon="shield">
        TLS/sertifika doğrulama seçenekleriyle log kanalı üzerinden gönderilen veriyi güvence altına alır
      </Card>

      <Card title="Ortam Yönetimi" icon="server">
        Ortam bazlı parametrelerle Development/Test/Production ayrımını koruyarak yönetim maliyetini düşürür
      </Card>
    </CardGroup>
  </Accordion>

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

      <Card title="Connection Pool Yönetimi" icon="database">
        maxInflightSends ve queueSize değerlerine göre asenkron gönderim kuyruğu bağlantı havuzundan iş parçacıkları ayırır
      </Card>

      <Card title="Kimlik Doğrulama" icon="shield-alt">
        TLS aktifse mutual TLS ve sertifika zinciri doğrulaması uygulanır; aksi halde ağ seviyesinde IP whitelisting kullanılır
      </Card>

      <Card title="Veri İletişimi" icon="network-wired">
        GELF mesajları seçilen transportType (TCP veya UDP) üzerinden sıkıştırma politikasına göre kodlanıp Graylog endpoint'ine gönderilir
      </Card>

      <Card title="Bağlantı Yönetimi" icon="link">
        İşlem tamamlandıktan sonra bağlantı açık kalır ve pool'a geri döner; uzun süre kullanılmazsa tcpKeepAlive ayarı devreye girer
      </Card>

      <Card title="Hata Yönetimi" icon="exclamation-triangle">
        Bağlantı hatası, timeout veya authentication hatası durumunda reconnectDelay süresi beklenir, olay log'lanır ve kullanıcıya detaylı hata mesajı gösterilir
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Kullanım Alanları">
    <CardGroup cols={2}>
      <Card title="Merkezi Log Aktarımı" icon="server">
        Tüm Apinizer node'larının uygulama loglarını merkezi Graylog cluster'ına aktarma
      </Card>

      <Card title="Gerçek Zamanlı İzleme" icon="eye">
        Integration Flow adımlarında özel işlev loglarını (ör. harici API cevapları) gerçek zamanlı izleme
      </Card>

      <Card title="Erken Uyarı Mekanizması" icon="bell">
        Scheduled Job sonuçlarını veya gateway health metriklerini log'layarak erken uyarı mekanizması sağlama
      </Card>

      <Card title="SIEM Entegrasyonu" icon="shield">
        Güvenlik/SIEM ekibine özel GELF seviyeleriyle anomali tespiti için veri besleme
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Teknik Özellikler ve Yetenekler

<AccordionGroup>
  <Accordion title="Temel Özellikler">
    <CardGroup cols={2}>
      <Card title="GELF Transport Seçimi" icon="network-wired">
        TCP ve UDP arasında seçim yaparak güvenilirlik/performans dengesini kullanıcıya bırakır.
      </Card>

      <Card title="Sıkıştırma Politikası" icon="compress">
        GZIP, ZLIB veya NONE seçenekleriyle bant genişliğini optimize eder.
      </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="TLS Sertifika Zinciri Yükleme" icon="certificate">
        PEM tabanlı sertifika dosyasını UI üzerinden içe aktarma ve doğrulama.
      </Card>

      <Card title="Gelişmiş TCP Ayarları" icon="network-wired">
        tcpNoDelay, tcpKeepAlive ve sendBufferSize değerleriyle ağ optimizasyonu.
      </Card>

      <Card title="Çoklu Parçacık Gönderimi" icon="cog">
        threads ve maxInflightSends parametreleriyle yüksek hacimli logları ölçekler.
      </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_Graylog`\
        **Notlar:** Boşlukla başlamaz, özel karakterler kullanılmamalı
      </Card>

      <Card title="Environment (Ortam)" icon="server">
        **Açıklama:** Logların yönlendirileceği yayınlanmış ortam kimliği\
        **Örnek Değer:** `prod-env-01`\
        **Notlar:** Ortam yayımlanmamışsa kayıt engellenir
      </Card>

      <Card title="Hostname" icon="network-wired">
        **Açıklama:** Graylog GELF endpoint DNS/IP adresi\
        **Örnek Değer:** `graylog.internal.local`\
        **Notlar:** Üretim için FQDN kullanın
      </Card>

      <Card title="Port" icon="network-wired">
        **Açıklama:** GELF listener portu\
        **Örnek Değer:** 12201\
        **Notlar:** TCP/UDP aynı portu paylaşabilir
      </Card>

      <Card title="TransportType" icon="network-wired">
        **Açıklama:** Bağlantı taşıma türü (TCP/UDP)\
        **Örnek Değer:** TCP\
        **Notlar:** TCP önerilir; UDP için güvenilir ağ gerekir
      </Card>

      <Card title="CompressionType" icon="compress">
        **Açıklama:** GELF mesaj sıkıştırma politikası\
        **Örnek Değer:** GZIP\
        **Notlar:** NONE seçildiğinde bant genişliği artar
      </Card>

      <Card title="GelfMessageLevel" icon="filter">
        **Açıklama:** Minimum log seviyesi\
        **Örnek Değer:** WARNING\
        **Notlar:** Seçim Graylog içinde filtreleme sağlar
      </Card>

      <Card title="QueueSize" icon="list">
        **Açıklama:** UI tarafındaki log bekleme kuyruğu boyutu\
        **Örnek Değer:** 512\
        **Notlar:** Yüksek değer RAM tüketimini artırır
      </Card>

      <Card title="ReconnectDelay (ms)" icon="repeat">
        **Açıklama:** Kesinti sonrası yeniden bağlanma gecikmesi\
        **Örnek Değer:** 2500\
        **Notlar:** Milisaniye cinsinden
      </Card>

      <Card title="ConnectTimeout (ms)" icon="clock">
        **Açıklama:** Bağlantı kurulurken beklenecek süre\
        **Örnek Değer:** 10000\
        **Notlar:** Ağ gecikmelerine göre ayarlayın
      </Card>

      <Card title="SendBufferSize (byte)" icon="database">
        **Açıklama:** TCP send buffer büyüklüğü\
        **Örnek Değer:** -1\
        **Notlar:** -1 sistem varsayılanını kullanır
      </Card>

      <Card title="MaxInflightSends" icon="paper-plane">
        **Açıklama:** Eşzamanlı gönderim sayısı\
        **Örnek Değer:** 512\
        **Notlar:** Fazla değer Graylog tarafında baskı yaratabilir
      </Card>

      <Card title="Threads" icon="cog">
        **Açıklama:** Arka plan log gönderim iş parçacığı sayısı\
        **Örnek Değer:** 0\
        **Notlar:** 0 CPU çekirdeğine göre otomatik ayarlar
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İsteğe Bağlı Parametreler">
    <CardGroup cols={2}>
      <Card title="Description" icon="file-alt">
        **Açıklama:** Connection amacı hakkında açıklama\
        **Varsayılan Değer:** (Boş)\
        **Önerilen Değer:** Prod log forwarding for CoreAPI
      </Card>

      <Card title="TLS Enabled" icon="shield">
        **Açıklama:** GELF trafiğinde TLS kullanımı\
        **Varsayılan Değer:** false\
        **Önerilen Değer:** true (Production)
      </Card>

      <Card title="TLS Cert Verification Enabled" icon="shield-alt">
        **Açıklama:** Sunucu sertifika doğrulaması\
        **Varsayılan Değer:** false\
        **Önerilen Değer:** true (Production)
      </Card>

      <Card title="TLS Trust Cert Chain File" icon="certificate">
        **Açıklama:** PEM sertifika zinciri dosyası\
        **Varsayılan Değer:** (Boş)\
        **Önerilen Değer:** graylog-ca.pem
      </Card>

      <Card title="TCP No Delay" icon="toggle-on">
        **Açıklama:** Nagle algoritmasını devre dışı bırakır\
        **Varsayılan Değer:** true\
        **Önerilen Değer:** true
      </Card>

      <Card title="TCP Keep Alive" icon="link">
        **Açıklama:** Pasif bağlantıları saklar\
        **Varsayılan Değer:** false\
        **Önerilen Değer:** true (uzak DC)
      </Card>

      <Card title="Append To Attributes" icon="plus-circle">
        **Açıklama:** GELF ek alanlarına Apinizer metadata ekler\
        **Varsayılan Değer:** true\
        **Önerilen Değer:** true
      </Card>

      <Card title="Append To Message" icon="plus-circle">
        **Açıklama:** Mesaj gövdesine Apinizer context ekler\
        **Varsayılan Değer:** true\
        **Önerilen Değer:** true
      </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:** 10000\
    **Min:** 1000 | **Max:** 60000\
    **Birim:** milisaniye
  </Card>

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

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

  <Card title="ReconnectDelay" icon="repeat">
    **Açıklama:** Yeniden bağlanma aralığı\
    **Varsayılan:** 2500\
    **Min:** 500 | **Max:** 60000\
    **Birim:** milisaniye
  </Card>
</CardGroup>

## Kullanım Senaryoları

<CardGroup cols={2}>
  <Card title="Gerçek Zamanlı API Loglama" icon="chart-line">
    **Durum:** Core API gateway'i yüksek trafikte hata üretiyor\
    **Çözüm:** TransportType=TCP, Compression=GZIP, GelfLevel=ERROR\
    **Beklenen Davranış:** Graylog tarafında sadece hata logları görünür, bant genişliği optimize edilir
  </Card>

  <Card title="SIEM Entegrasyonu" icon="shield">
    **Durum:** Güvenlik ekibi kritik alarmlar istiyor\
    **Çözüm:** GelfLevel=ALERT, AppendToAttributes=true\
    **Beklenen Davranış:** SIEM, ek attribute'lar sayesinde alarm bağlamını zenginleştirir
  </Card>

  <Card title="Düşük Gecikmeli İzleme" icon="tachometer-alt">
    **Durum:** Latency ölçümleri UDP ile taşınacak\
    **Çözüm:** TransportType=UDP, QueueSize=256\
    **Beklenen Davranış:** Az gecikme ile loglar gönderilir, olası kayıplar kabul edilir
  </Card>

  <Card title="Çoklu DC Graylog" icon="server">
    **Durum:** Uzak veri merkezine TLS ile bağlanma\
    **Çözüm:** TLS Enabled=true, TLS Cert Verification=true, sertifika yükle\
    **Beklenen Davranış:** Şifreli kanal kurulur, self-signed sertifikalar reddedilir
  </Card>

  <Card title="Yoğun Batch İşleri" icon="tasks">
    **Durum:** Gece job'lar kısa sürede çok log üretir\
    **Çözüm:** QueueSize=2048, Threads=8, MaxInflight=1024\
    **Beklenen Davranış:** Kuyruk taşmadan log transferi tamamlanır
  </Card>

  <Card title="Test Ortamı Gözlemi" icon="bug">
    **Durum:** Test ortamında verbose loglama\
    **Çözüm:** GelfLevel=DEBUG, Compression=NONE\
    **Beklenen Davranış:** Troubleshooting için tüm loglar sıkıştırmasız iletilir
  </Card>
</CardGroup>

## Connection Yapılandırma

### Yeni Graylog Connection Oluşturma

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

#### Yapılandırma Adımları

<Steps>
  <Step title="Oluşturma Sayfasına Gitme">
    * Sol menüden **Connection → Graylog** 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_Graylog`
    * 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: "Graylog prod ingestion"
    * 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="Graylog Spesifik Parametreler - Ağ">
    * **Hostname & Port:** Graylog GELF listener bilgilerini girin.
    * **TransportType:** TCP (güvenilir) veya UDP (düşük gecikme) seçin.
    * **CompressionType:** GZIP/ZLIB/NONE seçeneklerini latency ve CPU'ya göre belirleyin.
    * Hostname yanlış ise log kaybı yaşanır.
  </Step>

  <Step title="Graylog Spesifik Parametreler - Log & Kuyruk">
    * **GELF Message Level:** Debug'dan Emergency'ye kadar uygun seviyeyi seçin.
    * **QueueSize, Threads, MaxInflightSends:** Log hacmine göre değerleri ayarlayın.
    * **Append seçenekleri:** Apinizer metadata'sının loglara dahil edilip edilmeyeceğini belirleyin.
  </Step>

  <Step title="Timeout ve Connection Pool Ayarları">
    * **ConnectTimeout & ReconnectDelay:** Ağ koşullarına göre ms cinsinden belirleyin.
    * **SendBufferSize:** -1 sistem varsayılanı, özel alanlarda byte değeri girin.
    * Yoğun trafikte Pool exhausted uyarısını önlemek için threads değerini artırın.
  </Step>

  <Step title="Güvenlik ve Authentication Ayarları">
    * **TLS Enabled:** Production'da zorunlu.
    * **TLS Cert Verification Enabled:** Doğrulama açıldığında sertifika yükleyin.
    * **TLS Trust Cert Chain File:** PEM dosyasını UI'dan yükleyin, maksimum 100 MB.
  </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}-graylog-integration-{ConnectionName}-export.zip`\
        Örnek: `13 Nov 2025-graylog-integration-Production_Graylog-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 Graylog]** 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="check-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">
    GELF formatında log gönderimi gerektiren adımlarda Graylog Connection seçilir. Örnek: "Send Message", "Custom Log", "Notify SIEM", "Graylog Log" 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 gönderme, health check loglama vb.) bağlantı seçilerek Graylog cluster'ına erişim sağlanır. 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 Şeması Standardizasyonu" icon="file-code">
        **Kötü:** Her adımda farklı GELF field isimleri\
        **İyi:** Ortak alan isimleri kullanmak\
        **En İyi:** Apinizer context attribute'larını zorunlu hale getirip Graylog pipeline'ı ile doğrulamak
      </Card>

      <Card title="Sıkıştırma Stratejisi" icon="compress">
        **Kötü:** Tüm ortamlarda NONE seçmek\
        **İyi:** Production'da GZIP kullanmak\
        **En İyi:** Trafiğe göre dinamik politika belirlemek ve Graylog tarafında decompress maliyetini izlemek
      </Card>

      <Card title="Transport Seçimi" icon="network-wired">
        **Kötü:** Kritik logları UDP ile göndermek\
        **İyi:** Prod'da TCP, Test'te UDP kullanmak\
        **En İyi:** TCP + TLS'i zorunlu tutmak, UDP'yi yalnızca düşük riskli metrikler için kullanmak
      </Card>

      <Card title="Kuyruk Boyutu Yönetimi" icon="list">
        **Kötü:** QueueSize değerini çok düşük bırakmak\
        **İyi:** Trafik analizine göre 512-1024 arası ayarlamak\
        **En İyi:** Peak load ölçümlerine göre otomasyonla queue/buffer ayarlarını güncellemek
      </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="check-circle">
        **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
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Güvenlik En İyi Uygulamaları">
    <CardGroup cols={2}>
      <Card title="TLS Sertifika Yönetimi" icon="certificate">
        Sertifika zincirlerini yalnızca güvenilir kaynaklardan alın. Expiration tarihlerini izleyin, yenileme öncesi yeni dosyayı yükleyin
      </Card>

      <Card title="Ağ Segmentasyonu" icon="network-wired">
        Graylog endpoint'ini yalnızca gerekli Apinizer subnet'lerinden erişilebilir hale getirin; güvenlik duvarında allowlist uygulayın
      </Card>

      <Card title="Log İçeriği Maskesi" icon="mask">
        Kişisel veriler veya erişim token'ları loglanıyorsa GELF mesajlarını sanitize edin; Apinizer policy'lerinde maskeleme kuralları ekleyin
      </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-alt">
        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="UDP'de Yüksek Kritik Loglama" icon="ban">
        **Neden kaçınılmalı:** UDP paket kaybı kritik olayların kaybolmasına yol açar\
        **Alternatif:** TCP + TLS kullanın
      </Card>

      <Card title="Yanlış Log Seviyesi" icon="exclamation-triangle">
        **Neden kaçınılmalı:** Gereksiz DEBUG seviyeleri Graylog depolamasını şişirir\
        **Alternatif:** Seviyeyi iş ihtiyacına göre belirleyin, pipeline filtreleri ekleyin
      </Card>

      <Card title="Sertifika Dosyası Güncellememek" icon="certificate">
        **Neden kaçınılmalı:** Expire olmuş sertifika TLS bağlantısını düşürür\
        **Alternatif:** Takvim hatırlatmalarıyla sertifika yenileyin
      </Card>

      <Card title="Production Connection'ı Test Ortamında Kullanma" icon="exclamation-triangle">
        **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="database">
        **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="Batch Gönderim Boyutu" icon="list">
        **Öneri:** QueueSize değerini tek gönderim batch'i olarak kullanın, Graylog kapasitesine göre ayarlayın\
        **Etki:** Gecikme azalır, throughput artar
      </Card>

      <Card title="Sıkıştırma Dengesi" icon="compress">
        **Öneri:** CPU takibi yaparak GZIP yerine ZLIB veya NONE'a geçiş soluklamaları planlayın\
        **Etki:** CPU tüketimi dengelenir, kritik dönemlerde log gecikmesi düşer
      </Card>

      <Card title="Thread Ayarı" icon="cog">
        **Öneri:** threads değerini aktif CPU çekirdeklerinin %50'si ile sınırlayın, gerekirse yatay ölçekleyin\
        **Etki:** Sistem kaynakları dengede kalır, throttling azalır
      </Card>

      <Card title="Connection Pool Optimizasyonu" icon="database">
        **Ö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-line">
        **Ö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="GELF Mesaj Reddediliyor">
    <Warning>
      Mesaj boyutu 1 MB'ı aşıyor, JSON alanları yanlış tipte veya Graylog pipeline hatası olabilir.
    </Warning>

    <Steps>
      <Step title="Mesaj Boyutu">
        Mesajdaki büyük alanları azaltın.
      </Step>

      <Step title="JSON Şeması">
        JSON şemasını kontrol edin.
      </Step>

      <Step title="Pipeline Logları">
        Graylog pipeline loglarını inceleyin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="TLS Handshake Başarısız">
    <Warning>
      Sertifika zinciri eksik, hostname mismatch veya TLS disabled server olabilir.
    </Warning>

    <Steps>
      <Step title="Sertifika Yükleme">
        Sertifika dosyasını yeniden yükleyin.
      </Step>

      <Step title="Hostname Doğrulama">
        hostname ile CN/SAN eşleşmesini doğrulayın.
      </Step>

      <Step title="TLS Ayarları">
        Graylog server TLS ayarlarını kontrol 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="Graylog Connection kaç projede paylaşılabilir?">
    <Info>
      Admin olarak oluşturulan connection globaldir ve tüm projeler tarafından kullanılabilir; proje seviyesinde oluşturulanlar yalnızca ilgili projede görünür.
    </Info>
  </Accordion>

  <Accordion title="Graylog'a aynı anda kaç ortam bağlanabilir?">
    <Info>
      Her ortam için ayrı kayıt girilebilir; ortam listesi Environment servisinden yüklenir ve yalnızca yayınlanan ortamlar seçilebilir.
    </Info>
  </Accordion>

  <Accordion title="TLS sertifika dosyası hangi formatta olmalı?">
    <Info>
      PEM zinciri desteklenir; yüklenen dosya 100 MB sınırını aşamaz ve BEGIN CERTIFICATE bloğunu içermelidir.
    </Info>
  </Accordion>

  <Accordion title="GELF transport değiştirince yeniden deploy gerekir mi?">
    <Warning>
      Evet, TransportType değişikliği connection'ı yeniden deploy eder; Graylog listener uyumlu değilse değişiklik başarısız olur.
    </Warning>
  </Accordion>

  <Accordion title="Log seviyesini Graylog içinde mi yoksa Connection'da mı ayarlamalıyım?">
    <Info>
      Connection'daki gelfMessageLevel minimum eşiği belirler, Graylog pipeline'ları ek filtreleme yapabilir; ikisini birlikte yönetin.
    </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>
