Genel Bakış
Loglama politikası, API Gateway pipeline’inin istenilen noktasında mesajın anlık durumunu (başlıklar, parametreler, gövde, kullanıcı bilgisi, hata durumu vb.) yakalar ve yapılandırılmış konnektörlere gönderir. Standart API trafik loglamasından farklı olarak, pipeline’ın herhangi bir aşamasına yerleştirilebilir ve sadece ilgili alanları içeren hafif bir veri yapısı kullanır.Kullanım Alanları
- Pipeline’ın belirli aşamalarında mesaj durumunu izlemek (politika öncesi/sonrası karşılaştırma)
- Hata ayıklama ve sorun giderme için detaylı log toplamak
- Denetim ve uyumluluk gereksinimlerini karşılamak
- Harici sistemlere (SIEM, log analiz platformları) gerçek zamanlı veri göndermek
Desteklenen Hedefler
Çalışma Modu
Yapılandırma Alanları
Veri Yapısı
Loglama politikası, standart API trafik loglarından farklı ve daha hafif bir veri yapısı kullanır. Aşağıdaki tabloda gönderilen alanlar ve Elasticsearch/veritabanı karşılıkları listelenmiştir.Örnek JSON Çıktısı
Başlık ve parametre alanlarındaki her bir girdi, k (anahtar) ve v (değer) çiftlerinden oluşur. Bu yapı, Elasticsearch’te
nested tipinde indekslenir.Pipeline Konumu (cr) Değerleri
Ekleme Kapsamı (cl) Değerleri
Elasticsearch Entegrasyonu
Loglama politikasının verilerini Elasticsearch’e göndermek için ayrı bir index template oluşturulmalıdır. Bu template, standart API trafik log template’inden farklıdır ve sadece loglama politikasının gönderdiği alanları içerir.Adım 1: ILM Politikası Oluşturma
Index yaşam döngüsü yönetimi için bir ILM politikası oluşturun. Aşağıdaki örnek, 30 GB veya 1 gün sonra rollover yapan ve 30 gün sonra silen bir politikadır. Değerleri ihtiyacınıza göre ayarlayabilirsiniz.Adım 2: Index Template Oluşturma
Aşağıdaki komutu Elasticsearch Kibana Dev Tools veya curl ile çalıştırın. Template, data stream desteği ile birlikte gelir.Adım 3: Data Stream Oluşturma
Template oluşturulduktan sonra, ilk veri geldiğinde data stream otomatik oluşur. Manuel oluşturmak isterseniz:Konnektör Yapılandırması
Elasticsearch konnektörünün Index Name alanınaapinizer-log-policy-capture yazın. Bu isim, template’deki index_patterns ile eşleşmelidir.
Farklı bir index adı kullanmak isterseniz, template’deki
index_patterns alanını da buna uygun şekilde güncelleyin. Örneğin, proje bazlı ayırım için apinizer-log-policy-capture-projectname kullanabilirsiniz.Veritabanı Entegrasyonu
Loglama politikası verilerini ilişkisel veritabanına (MySQL/MariaDB veya Oracle) göndermek için aşağıdaki tablo yapısını oluşturmanız gerekmektedir.- Oracle
- MySQL/MariaDB
- PostgreSQL
- SQL Server
Başlık ve parametre alanları (
from_client_ro_header, from_client_ro_param) JSON formatında saklanır. Her kayıt, anahtar-değer çiftlerinden oluşan bir dizi içerir.Önerilen İndeksler
Log kayıtları zamanla büyük hacimlere ulaşabileceğinden, sorgu performansını artırmak için aşağıdaki indeksleri oluşturmanız önerilir.correlation_id kolonu üzerindeki indeks özellikle önemlidir. Loglama politikası pipeline’ın farklı noktalarına (örneğin FROM_CLIENT ve TO_CLIENT) yerleştirildiğinde, aynı isteğe ait istek ve yanıt kayıtları aynı correlation_id değerini paylaşır. Bu sayede istek ve yanıt kayıtları correlation_id üzerinden birleştirilerek bir işlemin uçtan uca izlenmesi sağlanır.
- Oracle
- MySQL/MariaDB
- PostgreSQL
- SQL Server
MongoDB
MongoDB konnektörü kullanıldığında tablo oluşturma gerekmez. Verilerlog_policycapture koleksiyonuna otomatik olarak yazılır.

