Log Konnektörü Eklenmesi
Gateway Runtime ortamlarında API Proxy'ler üzerindeki API trafiğinin kayıt altına alınması söz konusu olduğunda aşağıdaki ayarlar ile ilgili logların nerede saklanması gerektiği ayarı yapılabilmektedir. Gateway Runtime ortamlarındaki API trafiğini diğer ortamlara göndermek için aşağıdaki konnektörler kullanılabilir:
Bu konnektörlere gönderilecek olan verinin yapısını incelemek için şu dokümana göz atabilirsiniz.
Log konnektörü eklenmesini içeren görsele aşağıda yer verilmiştir:
- Apinizer Yönetim Konsolunda ilgili API Trafiğinin sorgulanması ve analitik olarak görselleştirilmesi ancak ilgili Gateway Runtime ortamına Elasticsearch Konnektörü eklenmesi ile mümkün olmaktadır.
- Eğer birden fazla Elasticsearch Konnektörü tanımlanması durumunda Apinizer Yönetim Konsolunda ilk eklenen Elasticsearch Konnektöründeki veriler görüntülenebilir.
- Eğer Elasticsearch Konnektörü hiç eklenmemiş ise aşağıdaki alanlar/menüler tamamen kapatılır:
- Analitikle ilgili tüm ekranlar ve menüler
- API Proxy'nin Trace, API Trafiği ve Analitikler sekmeleri
- Monitör menüsündeki Anomali Dedektörü
- Yönetim menüsündeki Genel Bakış'a ait Analitik kısmı
- OAuth2 politikası
- Test konsolda yer alan Log sekmesi
- Denetim menüsünde yer alan Token İstekleri
- Rapor oluşturucu menüsü
- Portaldaki Pano ve API Trafiği
Konnektörlerdeki Ortak Alanlar
Konnektör oluşturulurken her tip için aynı olan bazı girdi alanları vardır. Bu bilgiler aşağıdaki görselde seçili alanlardır.
Konnektörlerdeki ortak bilgilerin konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| API Proxy Trafik Log Ayarları Ayrıntılarını Yapılandır (Configure API Proxy Traffic Log Setting Detail) | Bu ayar aktifleştirildiğinde loglanacak olan alanlar seçilir. Loglama için gönderilecek alanlar arasında uzun metinler yer alıyorsa bu alanlar için boyut limiti ayarlanabilir. |
| Etkinleştirilse, API Proxy'sinin bulunamadığı veya mevcut olmadığı tüm trafik log kayıtları da hedefe aktarılır (If enabled, all traffic logs of which API proxy is not found or not exists are also exported to target) | Bu ayar ile istenirse API Proxy'nin bulunmadığı veya mevcut olmadığı tüm trafik logları da hedefe aktarılır. |
| API Proxy Trafik Gizlilik Ayarlarını Yapılandır (Configure API Proxy Traffic Privacy Setting) | Bu ayar aktifleştirildiğinde log kayıtları içerisinde açık bir şekilde erişilmesi istenmeyen verilerin, olduğu gibi görüntülenmesinin önüne geçilebilir. Bu bölüme ilişkin detaylı bilgi aşağıda anlatılmaktadır. |
| Etkinleştirilirse, gönderilmemiş istekler failover bağlantısına gönderilir (If enabled, unsent requests will be sent to failover connector) | Konnektör çevrimdışıysa veya erişilemiyorsa, bu durumda gönderilemeyen log kayıtları için yeni failover bağlantısı tanımlanabilir. |
| Failover Executable Tipi (Failover Connector Type) | Tanımlanacak failover konnektörünün tipi seçilir. |
| Tip | Failover tipinin Veritabanı (Database) seçilmesi durumunda bu alan aktifleşir. Veritabanı tipi seçilir. |
| Failover Bağlantısı (Failover Connection) | Seçilen failover tipine göre tanımlanacak failover bağlantısı seçilir. |
| Operasyon (Operation) | Failover tipinin Veritabanı (Database) seçilmesi durumunda bu alan aktifleşir. Operasyon tipi seçilir. |
API Proxy Trafik Log Ayarları Ayrıntılarını Yapılandırma
"Configure API Traffic Log Setting Detail" (API Trafik Log Ayarları Ayrıntılarını Yapılandırma) seçeneği etkinleştirildiğinde, API trafik loglarının nasıl kaydedileceğini özelleştirebilirsiniz. Apinizer logları, sistemdeki trafik akışına göre dört farklı bölgeye ayrılmıştır.
API Trafik Log Bölgeleri
Apinizer, API trafiğini bu dört bölgede loglar:
- Client'tan Apinizer'a Gelen İstek (Request from Client)
- Apinizer'dan Backend'e Giden İstek (Request to Target)
- Backend'den Apinizer'a Gelen İstek (Response from Target)
- Apinizer'dan Client'a Giden İstek (Response to Client)
"Configure API Traffic Log Setting Detail" seçeneği etkinleştirildiğinde, bu bölgelerin her biri için loglama özelleştirilebilir.
Varsayılan olarak, tüm mesaj bölgelerindeki alanların loglanması aktiftir. Loglanan alanlar ihtiyaca göre veya log sunucusunun kaynak tüketimi baz alınarak kısıtlanabilir.
Üretim Gateway Runtime ortamı için aşağıdaki bölgelere ait ögeleri loglama işleminin devre dışı bırakılması tavsiye edilmektedir:
- Apinizer'dan Backend'e Giden İstek (Request to Target)
- Backend'den Apinizer'a Gelen İstek (Response from Target)
Eğer bir API Proxy üretim Gateway Runtime ortamında çalışıyorsa, API Proxy'deki tüm poliçelerin ayarları ve testleri tamamlandığı ve artık geliştirme yapılmayacağı anlamına gelmektedir. Bu yüzden veri tabanında verilerinin aşırı büyümemesi için bu iki bölgedeki başlık, parametre ve gövde verilerinin yazılmaması tavsiye edilir.
Tüm loglama alanları kapalı olsa dahi istekte bir hata oluştuysa log alanlarının tümü hatanın tespit edilebilmesi için kayıt edilir. Bu özellik genel ayarlarda açılıp, kapatılabilir.
Formdata istekleri değişken veri büyüklükleri ve veri formatları nedeniyle dosya kısımları hiçbir şekilde loglanmamaktadır. Sadece diğer metadata alanları loglanmaktadır.
WebSocket ve gRPC istekleri Apinizer'a gelen ve Apinizer'dan çıkan veriler şeklinde tutulmakta olduğundan bu tip API Proxylerde sadece 2 bölge vardır.
Log Ayarları Ekranı
"Configure API Traffic Log Setting Detail" seçeneği etkinleştirildiğinde karşımıza gelen log ayarları ekranını içeren görsele aşağıda yer verilmiştir:
Bu ekranda her bölge için hangi alanların loglanacağı seçilebilir ve uzun metinler içeren alanlar için boyut limiti ayarlanabilir.
Özelleştirilebilir Log Alanları
API traffic log ayarlarında özelleştirilebilecek alanlar aşağıda verilmiştir. Her alan için loglanıp loglanmayacağı seçilebilir ve uzun metinler içeren alanlar için boyut limiti ayarlanabilir.
| Grup | İçerik |
|---|---|
| HTTP Request Details | IP, Method, URI, Port |
| Performance Metrics | Duration, Size, Cache |
| Response Status Info | Status Code, Error Type |
| Routing Address | Routing Address |
Bu gruplar birbirinden bağımsızdır; bir grubu devre dışı bırakmanız diğer grupları etkilemez.
Request and Response Flow bölümünde ise log akışının her bir bölgesi için aşağıdaki alanları ayrı ayrı açıp kapatabilirsiniz:
- Request from Client: Parameter, Header, Body
- Request to Target: Parameter, Header, Body
- Response from Target: Header, Body
- Response to Client: Header, Body
Uzun içeriklerin log boyutunu sınırlandırmak için her bölge için Partial Size seçeneğini etkinleştirip karakter bazında limit belirleyebilirsiniz.