API Proxy mesaj hattının herhangi bir noktasında anlık mesaj durumunu yakalayarak seçilen konnektörlere gönderebilirsiniz. Elasticsearch, veritabanı, Graylog, Webhook, Kafka, RabbitMQ ve Syslog hedeflerine senkron veya asenkron loglama yapabilirsiniz.
Use this file to discover all available pages before exploring further.
Bu doküman spesifik bir politikanın detaylı kullanımını anlatır. Eğer Apinizer politika yapısını ilk kez kullanıyorsanız veya politikaların genel çalışma prensiplerini öğrenmek istiyorsanız, öncelikle Politika Nedir? sayfasını okumanızı öneririz.
Log Politikası, mesaj işleme hattının (pipeline) herhangi bir noktasına yerleştirilerek o anki mesaj durumunun anlık görüntüsünü (snapshot) yakalar ve belirlenen konnektörlere gönderir.
Standart trafik loglamasından farklı olarak, pipeline’ın ara noktalarında (örneğin bir dönüştürme politikasından önce ve sonra) loglama yaparak mesaj değişikliklerini izlemeyi sağlar.
HTTP, WebSocket ve gRPC protokollerinde çalışır.
Birden fazla konnektöre aynı anda gönderim yapabilir.
Politikanın log göndereceği konnektörleri seçebilirsiniz. Konnektörler, bağlantı tanımı üzerinden seçilir ve ortam bağımsız çalışır — aynı bağlantı tanımı farklı ortamlarda farklı konnektör örneklerine karşılık gelebilir.
Global politika olarak işaretlenen tanımlar birden fazla ortamda kullanılabilir; her ortamda aynı bağlantı tanımına karşılık gelen konnektörün yapılandırılmış olması gerekir.
Log politikası, standart API trafik loglarından farklı hafif bir veri yapısı kullanır. Aşağıdaki tabloda gönderilen alanlar ve Elasticsearch/veritabanı karşılıkları listelenmiştir.
Alan Adı
Kısa Ad (ES/JSON)
Tip
Açıklama
Timestamp
@timestamp
Date
Log kaydının oluşturulma zamanı
Korelasyon ID
aci
String
Apinizer istek izleme ID’si
Ortam ID
ei
String
Gateway ortam tanımlayıcısı
API Proxy ID
api
String
API Proxy tanımlayıcısı
API Proxy Adı
apn
String
API Proxy adı
API Proxy Metot ID
apmi
String
API Proxy metot tanımlayıcısı
API Proxy Metot Adı
apmn
String
API Proxy metot adı
Kullanıcı/Anahtar
uok
String
Doğrulanmış kullanıcı adı veya API anahtarı
HTTP Durum Kodu
sc
Number
HTTP yanıt durum kodu
Sonuç Tipi
rt
String
İşlem sonucu (SUCCESS, ERROR vb.)
Hata Tipi
et
String
Hata tipi (varsa)
İstek Başlıkları
fcrh
List
Anahtar-değer çifti olarak istek başlıkları
İstek Parametreleri
fcrp
List
Anahtar-değer çifti olarak sorgu parametreleri
İstek Gövdesi
fcrb
String
İstek gövde içeriği
Pipeline Konumu
cr
String
Log politikasının yerleştirildiği pipeline bölgesi
Elasticsearch’te log politikası verileri için ayrı bir index template oluşturulmalıdır. Bu template standart API trafik log template’inden farklıdır ve yalnızca log politikasının gönderdiği alanları içerir.
Log politikası verileri için Elasticsearch index template’i ve ILM politikası Apinizer UI’dan otomatik oluşturulmaz. Aşağıdaki adımları Elasticsearch üzerinde manuel olarak uygulamanız gerekir.
Index yaşam döngüsü yönetimi için bir ILM politikası oluşturun. Aşağıdaki örnek 30 GB veya 1 günde rollover yapan ve 30 gün sonra silen bir politika oluşturur. Değerleri ihtiyacınıza göre ayarlayın.
Elasticsearch konnektörünün Index Adı alanına apinizer-log-policy-capture girin. Bu isim, template’teki index_patterns ile eşleşmelidir.
Farklı bir index adı kullanmak istiyorsanız template’teki index_patterns alanını buna göre güncelleyin. Örneğin proje bazlı ayrıştırma için apinizer-log-policy-capture-proje-adi kullanabilirsiniz.
Veritabanı konnektörü, her log politikası yakalamasını hedef ilişkisel veritabanındaki log_PolicyCapture tablosuna tek bir satır olarak yazar. Desteklenen veritabanı tipleri Oracle, MySQL/MariaDB, PostgreSQL ve SQL Server’dır. MongoDB için koleksiyon ilk yazımda otomatik oluşturulur — manuel kurulum gerekmez.
İlişkisel veritabanları için log_PolicyCapture tablosu otomatik oluşturulmaz — konnektörü etkinleştirmeden önce tabloyu manuel olarak oluşturmanız gerekir. Desteklenen her veritabanı tipi için CREATE TABLE komutu, önerilen indeksler ve bölümleme (partitioning) rehberi için bakınız: Apinizer Log Tabloları Oluşturma Komutları.
correlation_id kolonu aynı çağrının istek ve yanıt satırlarını birbirine bağlar. Log politikası birden fazla pipeline aşamasına yerleştirildiğinde (örneğin FROM_CLIENT ve TO_CLIENT), kayıtlar correlation_id üzerinden join edilerek bir işlem uçtan uca izlenebilir. Bu nedenle bu kolon üzerindeki indeks şiddetle önerilir.
Yüksek trafikli API’lerde, veritabanı yazma gecikmesinin istek pipeline’ını bloke etmemesi için log politikasını Asenkron modda yapılandırmanızı öneririz.
Politika seviyesinde gizlilik ayarları yapılandırarak hassas verilerin log kaydına yazılmadan önce işlenmesini sağlayabilirsiniz.
İşlem
Açıklama
Maskeleme (Mask)
Hassas veriyi kısmen gizler (ör: ****1234)
Silme (Delete)
Hassas veriyi tamamen kaldırır
Hashleme (Hash)
Hassas veriyi tek yönlü hash değerine dönüştürür
Şifreleme (Encrypt)
Hassas veriyi şifreler
Gizlilik ayarları iki seviyede uygulanır: önce politika seviyesindeki ayarlar, sonra konnektör seviyesindeki ayarlar. Her iki seviye de etkinse, her ikisi de sırasıyla uygulanır.
Maskeleme, veri konnektörlere gönderilmeden önce uygulanır. Konnektör seviyesindeki gizlilik ayarları ayrı ve bağımsız olarak uygulanır. Bu özellik GDPR gibi veri koruma gereksinimlerini karşılamak için kullanılabilir.