Syslog
Genel Bakış
Amacı Nedir?
Connection (Bağlantı) üzerinden Apinizer loglarını merkezi bir syslog kolektörüne düşük gecikmeli olarak aktarır.
TCP/UDP, TLS ve mesaj formatı seçenekleriyle farklı kurum standartlarına uyumlu log taşıma esnekliği sunar.
Ortam bazlı yapılandırma ile Development/Test/Production ayrımını korurken ortak isimlendirme ve versiyonlama sağlar.
UDP modunda iletilen loglar için teslim garantisi yoktur; kritik akışlar için TCP + SSL/TLS tercih edin.
Çalışma Prensibi
Integration Flow veya Connector içerisinden Syslog bağlantısı talep edildiğinde, sistem yapılandırılmış connection parametrelerini okur.
TCP modunda her ortam için kalıcı bir soket açılır; log mesajları asenkron olarak kuyruğa alınır ve sırayla gönderilir. Kuyruk dolduğunda yeni mesajlar failover connector'a yönlendirilir. Aktif bağlantı kapandığında veya yazma zamanaşımı aşıldığında otomatik yeniden bağlanma uygulanır; UDP modunda stateless gönderim yapılır.
TLS kullanılıyorsa sertifika tabanlı Authentication uygulanır, aksi durumda syslog sunucusunun IP tabanlı güvenlik politikaları devreye girer.
Seçilen protokol üzerinden RFC 3164/5424/5425 formatında log mesajları, hostname ve facility/severity alanları iletilir.
İşlem tamamlandıktan sonra TCP bağlantısı pool'a geri döner, UDP paketleri stateless olduğu için ek yönetim gerekmez.
Bağlantı hatası, timeout veya authentication hatası durumunda deployment-result diyaloğunda detaylar gösterilir; hata metric'leri Apinizer Event Manager üzerinden yayılır.
Kullanım Alanları
API Gateway loglarının SIEM veya SOC platformlarına gerçek zamanlı aktarılması
Güvenlik olaylarının (ör. WS-Security, Authentication hataları) merkezi alarm sistemine bildirilmesi
İşletim sistemleri, firewall ve Apinizer servisleri arasındaki log korelasyonu için tekil log akışının sağlanması
Test ortamında yeni kural/dönüşüm geliştirmelerini prod ortamındaki syslog altyapısını etkilemeden doğrulama
Teknik Özellikler ve Yetenekler
Temel Özellikler
TCP/UDP: EnumSyslogProtocolType sayesinde düşük gecikmeli UDP veya güvenilir TCP modları arasında seçim yapılabilir.
RFC 3164, RFC 5424 veya RFC 5425 formatları; hostname, facility ve severity alanlarıyla uyumlu log şablonu oluşturulur.
environmentId listesi üzerinden her Connection için hedef Ortam seçilerek farklı syslog uçlarına yönlendirme yapılır.
Her ortam (Development, Test, Production) için ayrı connection parametreleri tanımlama imkanı.
Connection'ı aktif veya pasif hale getirme (enable/disable toggle). Pasif durumda bağlantı kullanılamaz ancak yapılandırması saklanır.
OCTET_COUNTING modunda mesajlar uzunluk önekiyle çerçevelenir; büyük veya çok satırlı gövdelerde satır sonları çerçeveyi bölmez.
Birden fazla TCP soketiyle paralel gönderim yapılabilir; gönderim kuyruğu artık bayt cinsinden bir bellek tavanıyla da sınırlandırılabilir.
İleri Düzey Özellikler
Kaydetme ve test sonrası IDeploymentResult çıktıları kullanıcıya gösterilir, log akışının gerçek durumu anında izlenir.
Admin kullanıcıları connection'ı proje bağlamından çıkarıp global alana taşıyabilir, böylece tekrar kullanım kolaylaşır.
ExportFile yapısı ile JSON + metadata paketlenerek başka ortamlara aktarılabilir.
"Test Connection" butonu ile bağlantı parametrelerini kaydetmeden önce doğrulama imkanı.
Connection yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
Bağlantı sağlığı, pool durumu ve performans metriklerini izleme.
Connection Parametreleri
Zorunlu Parametreler
Parametre: Name
Örnek Değer: Production_Syslog
Connection adı (benzersiz olmalı). Boşlukla başlamaz, özel karakterler kullanılmamalı.
Parametre: Environment (Ortam)
Örnek Değer: prod-env-id
Logların hedefleneceği yayınlanmış ortamın kimliği. Ortam listesi Environment Service üzerinden gelir, seçim yapılmazsa test edilemez.
Parametre: Syslog Protocol Type
Örnek Değer: TCP
EnumSyslogProtocolType üzerinden TCP veya UDP seçimi. TCP seçildiğinde timeout ve SSL ayarları zorunlu olur.
Parametre: Syslog Server Hostname
Örnek Değer: syslog.corp.local
Logların gönderileceği syslog sunucu adı veya IP'si. FQDN önerilir, DNS çözümlemesi gateway tarafından yapılır.
Parametre: Syslog Port
Örnek Değer: 514
Syslog dinleme portu. UDP için 514, TLS için 6514 yaygın kullanılabilir.
Parametre: Syslog Message Format
Örnek Değer: RFC_3164
Mesaj gövdesi şablonu (RFC 3164/5424/5425). SIEM beklentisine göre seçilmelidir.
Parametre: Syslog App Name
Örnek Değer: ApinizerGateway
Mesajlarda görünecek uygulama adı. 48 karakteri aşmaması önerilir.
Parametre: Syslog Facility
Örnek Değer: AUDIT
Log sınıflandırma değeri. EnumSyslogFacility değerleri ile sınırlıdır.
Parametre: Syslog Severity
Örnek Değer: INFORMATIONAL
Log önem seviyesi. EnumSyslogSeverity listesinden seçilir.
Parametre: Syslog Timeout (TCP)
Örnek Değer: 5000
TCP el sıkışması + ACK için milisaniye cinsinden bekleme. UDP modunda gösterilmez, TCP modunda zorunludur.
İsteğe Bağlı Parametreler
Parametre: Description
Varsayılan Değer: -
Önerilen Değer: Kullanım amacı ve hedef syslog kümesini belirtin
Connection hakkında açıklama
Parametre: Syslog Message Hostname
Varsayılan Değer: gateway01
Önerilen Değer: Her ortam için farklı hostname kullanarak korelasyonu kolaylaştırın
Log içindeki HOSTNAME alanını override eder.
Parametre: Syslog SSL Enabled
Varsayılan Değer: false
Önerilen Değer: Production'da true, Test/Dev'de gerekirse self-signed
TCP üzerinden TLS kapsülleme sağlar.
Parametre: Deploy To Worker
Varsayılan Değer: true
Önerilen Değer: Ağ izolasyonu varsa true bırakın
Bağlantının worker node'lara dağıtılıp dağıtılmayacağı.
Parametre: Syslog Framing Type
Varsayılan Değer: AUTO (boş bırakılabilir)
Önerilen Değer: Ortalama mesaj boyutu büyükse veya SIEM tarafında satır bütünlüğü önemliyse OCTET_COUNTING
Çerçeveleme biçimini belirler: AUTO / NON_TRANSPARENT / OCTET_COUNTING. Boş bırakılır veya AUTO seçilirse değer seçili mesaj formatından türetilir — RFC 5425 seçiliyse OCTET_COUNTING, diğer formatlarda NON_TRANSPARENT (bugünkü davranış, mesaj sonuna CR LF eklenir). OCTET_COUNTING seçildiğinde her çerçeve <uzunluk> <mesaj> biçiminde uzunluk önekiyle gönderilir (RFC 6587 §3.4.1).
Timeout ve Connection Pool Parametreleri
Açıklama: TCP modunda syslogTimeout değeri
Varsayılan: 5000
Min: 1000 | Max: 60000
Birim: milisaniye
Açıklama: Integration adımının genel istek bekleme süresi (gateway ayarı)
Varsayılan: 15000
Min: 5000 | Max: 60000
Birim: milisaniye
Açıklama: Syslog connection pool'daki maksimum TCP soketi
Varsayılan: 1
Min: 1 | Max: 5
Birim: adet
Açıklama: UDP modunda ardışık paketler arası gecikme önerisi
Varsayılan: 0
Min: 0 | Max: 100
Birim: milisaniye
Açıklama: TCP asenkron gönderim kuyruğundaki maksimum log mesajı adedi. Artık Bellek Tavanı ile birlikte çalışan ikincil bir sınırdır — ikisinden hangisi önce dolarsa kuyruk o noktada dolu kabul edilir ve yeni mesajlar failover connector'a yönlendirilir.
Varsayılan: 10000
Min: 100 | Max: 1000000
Birim: mesaj
Açıklama: Syslog sunucusuna bir mesajın yazılması bu süreyi aşarsa bağlantı zorla kapatılır ve yeniden kurulur.
Varsayılan: 5
Min: 1 | Max: 60
Birim: saniye
Açıklama: TCP modunda eşzamanlı açılan syslog soket sayısı. Birden fazla soket açıldığında mesajlar bu soketler arasında dağıtılarak gönderilir.
Varsayılan: 1
Birim: adet
Açıklama: Gönderim kuyruğunun bayt cinsinden üst sınırı. Kuyruk Kapasitesi ile birlikte çalışır, ikisinden önce dolan sınır bağlayıcıyı dolu duruma getirir.
Varsayılan: 64 MB
Birim: bayt
Açıklama: Kuyruk doluyken gönderen tarafın bekleyeceği en fazla süre. Süre dolduğunda mesaj kaybedilmez, failover connector'a yönlendirilir.
Varsayılan: 100
Birim: milisaniye
Açıklama: Bir yazma turunda kaç çerçevenin gönderilip tek seferde flush edileceği.
Varsayılan: 8
Birim: adet
Büyük Kayıtlar ve Yüksek Hacim
Yukarıdaki yeni parametrelerin tamamı opsiyoneldir; boş bırakıldığında bugünkü davranış aynen korunur ve mevcut Syslog bağlantılarında herhangi bir değişiklik yapmanız gerekmez.
Ortalama API trafik kaydı boyutu büyüdükçe (örneğin 200 KB civarına çıktığında), gönderim kuyruğunun yalnızca mesaj sayısıyla sınırlı olması pratikte çok büyük bir bellek kullanımına karşılık gelebilir; kuyrukta uzun süre bekleyen kayıtlar JVM'de yoğun çöp toplamayı tetikleyebilir. Bellek Tavanı parametresi, kuyruğa bayt cinsinden bir üst sınır getirerek bu riski öngörülebilir bir seviyede (varsayılan 64 MB) tutar. Kuyruk Kapasitesi ve Bellek Tavanı birlikte çalışır: ikisinden hangisi önce dolarsa kuyruk o noktada dolu kabul edilir.
Uzunluk Önekli Çerçeveleme (OCTET_COUNTING)
Çerçeveleme tipi OCTET_COUNTING seçildiğinde her mesaj, sunucunun önceden bileceği bir uzunluk değeriyle çerçevelenir; bu sayede mesaj gövdesi içindeki satır sonları artık çerçeveyi bölmez. NON_TRANSPARENT modda (bugünkü varsayılan davranış) gövdedeki her satır sonu syslog sunucusu için bir çerçeve sonu anlamına geldiğinden, JSON/XML gibi çok satırlı gövdeler gönderim öncesinde tek satıra indirilir. OCTET_COUNTING modda bu indirgeme yapılmaz, kayıt orijinal biçimiyle sunucuya ulaşır.
Bu davranış rsyslog 8.2504.0 ile doğrulanmıştır: 200 KB'lık bir mesaj OCTET_COUNTING modda tek bir olay olarak sunucuya ulaşırken, aynı gövde NON_TRANSPARENT modda birden fazla olaya bölünmüştür.
Paralel Bağlantılarda Sıra
Paralel Bağlantı Sayısı 1'den büyük seçildiğinde mesajlar farklı soketlere dağıtılır ve sunucuya varış sırası değişebilir. RFC 5424 formatı mikrosaniye hassasiyetinde zaman damgası taşıdığı ve her soket kendi artan mesaj kimliğini ürettiği için, sıralamayı yeniden kurmak isteyen taraf için bu iki alan ayırt edici bilgi sağlar. RFC 3164 seçildiğinde Paralel Bağlantı Sayısı otomatik olarak 1'e sabitlenir; bu formatta saniye altı hassasiyet bulunmadığından paralel gönderimde sıralama garantisi verilemez.
rsyslog Sunucu Tarafı Gereksinimleri
Uzunluk önekli çerçevelemenin (OCTET_COUNTING) beklenen kazancı sağlaması için rsyslog tarafında da aşağıdaki noktaların gözden geçirilmesi gerekir:
imtcpgirişindekimaxFrameSizevarsayılanı 200000 bayttır. Ortalama mesaj boyutu bunun üzerindeyse (örneğin 200 KB ≈ 204800 bayt) rsyslog uzunluk önekli moddan çıkar ve OCTET_COUNTING kazancı kaybolur.global(maxMessageSize="...")ayrı bir ayardır vemaxFrameSizeile birlikte yükseltilmelidir.maxFrameSizeparametresi rsyslog 8.1905 ve sonraki sürümlerde bulunur; daha eski sürümler bu parametreyi tanımaz ve hata döner (parameter maxFrameSize not known). Ayarı uygulamadan önce sunucu sürümünün doğrulanması önerilir.global(oversizemsg.report="on")açıldığında, boyutu aşan kayıtlar sessizce kaybolmak yerine raporlanır.- rsyslog, mesaj gövdesindeki satır sonlarını varsayılan olarak kendi kaçış dizisiyle yazar; SIEM tarafında bu karakterler örneğin
#012olarak görünür. Kaydın ham haliyle görünmesi isteniyorsaglobal(parser.escapeControlCharactersOnReceive="off")ayarlanmalıdır.
Örnek bir rsyslog girişi:
input(type="imtcp" port="514" maxFrameSize="2000000" SupportOctetCountedFraming="on")
global(maxMessageSize="2097152" oversizemsg.report="on")
Bağlantı tanımında bir yedek (failover) connector belirlemeniz önerilir: kuyruk dolduğunda veya rsyslog sunucusuna erişilemediğinde kayıtlar bu bağlayıcı üzerinden aktarılmaya devam eder, kayıt kaybı yaşanmaz.
Kullanım Senaryoları
Durum: SOC platformu TCP + TLS ile log kabul ediyor
Çözüm: Protocol: TCP, SSL Enabled: true, Port: 6514
Beklenen Davranış: Loglar TLS üzerinden güvenli biçimde iletilir, facility/severity alanları SIEM kurallarına düşer
Durum: Firewall loglarıyla korelasyon için hızlı UDP gerekiyor
Çözüm: Protocol: UDP, Port: 514, Message Format: RFC_3164
Beklenen Davranış: Düşük gecikme ile log akışı yapılır, paket kaybı toleranslıdır
Durum: Test ortamında ayrıntılı debug logu isteniyor
Çözüm: Severity: DEBUG, Facility: LOCAL0, Message Hostname: test-gw
Beklenen Davranış: Test syslog sunucusu ayrıntılı debug olaylarını alır
Durum: Denetim ekipleri audit trail talep ediyor
Çözüm: Facility: AUDIT, Severity: NOTICE, App Name: ComplianceGW
Beklenen Davranış: Denetim raporları için ayrıştırılmış log akışı sağlanır
Durum: Birden fazla proje aynı global syslog'u kullanacak
Çözüm: Move to Global, Environment ID: admin project, Name prefix: Global_
Beklenen Davranış: Tek connection tüm projelerde paylaşılır, değişiklikler merkezi yönetilir
Durum: Production logları ikincil veri merkezine kopyalanacak (opsiyonel)
Çözüm: Export ZIP, Farklı ortama import, Port/Hostname DR adresine güncellenir
Beklenen Davranış: DR syslog sunucusu aynı formatta log almaya başlar
Connection Yapılandırma
Bu adımda, yeni bir connection oluşturabilir ya da mevcut connection parametrelerini yapılandırarak bağlantı kurallarını belirleyebilirsiniz. Tanımlanan parametreler, connection'ın çalışma şeklini doğrudan etkiler ve Integration Flow veya Connector adımlarında kullanılabilir hale gelir.
Yeni Syslog Bağlantısı Oluşturma
- Sol menüden Connection → Syslog Bağlantısı bölümüne gidin.
- Sağ üstteki [+ Create] butonuna tıklayın.
Enable Status (Aktif Durumu): Toggle ile aktif/pasif durumu ayarlayın. Yeni connection'lar varsayılan olarak aktiftir.
Name (İsim) Zorunlu: