API Trafik Loglarını Kibana İle Görselleştirme
Kibana, Elasticsearch verilerini görselleştirmek ve analiz etmek için kullanılan arayüz programıdır. Kibana, Elasticsearch kümesiyle iletişim kurarak verileri alır. Kibana sunucusu kaybolduğu zaman tüm veriler Elasticsearch kümesinde güvenle saklanır. Kibana, kullanıcıların Elasticsearch verilerini grafikler ve görsel analizlerle görselleştirmelerini sağlar.
Kibana'nın temel özelliklerinden biri, Elasticsearch'e kaydedilen logları anlık olarak izleyebilme yeteneğidir. Bu, gerçek zamanlı olarak log verilerini takip etmenizi ve analiz etmenizi sağlar.
Kibana, kullanıcıların verileri anlamak, analiz etmek ve paylaşmak için güçlü bir araçtır. Görsel analizlerin ve raporların oluşturulmasıyla, kullanıcılar verileri daha etkili bir şekilde yorumlayabilir ve paylaşabilir.
Kibana Kurulumu (Windows)
Uyumlu Kibana versiyonu için https://www.elastic.co/downloads/past-releases/kibana-7-9-2 sayfasını ziyaret edebilirsiniz. Basic versiyon.
Kibana'nın Temel (Basic) sürümünü veya Ücretsiz (Free) sürümünü seçebilirsiniz. Basic sürüm, genellikle ücretli aboneliklerle birlikte gelirken, Free sürüm açık kaynaklı bir alternatiftir.
Uyumlu Kibana versiyonu için https://www.elastic.co/downloads/past-releases/kibana-oss-7-9-2 sayfasını ziyaret edebilirsiniz. Free versiyon.
- Öncelikle yukardaki bağlantı sayfalarından işletim sisteminize uygun olan sürümü seçtikten sonra, indirme işlemini başlatmak için ilgili bağlantıya tıklamanız yeterlidir. İndirme işlemi tamamlandığında, Kibana'nın kurulumuna geçebilirsiniz.
- İndirilen dosya ayıklanır hedef klasöre kaydedilir.
- Kibana dosyasının içine girilir ve bin klasörüne girerek dosya yolu kopyalanır.
Konfigürasyon için Config klasörü içindeki "kibana.yml" dosyasında Apinizer'ın Elasticsearch Entegrasyonu için Sunucu bilgileri aşağıdaki gibi düzenlenir.
- Command Promt(komut istemi) yönetici olarak açıp cd komutuyla kopyalanan kibana dosyasına geçilir.
cd C:\kibana-7.9.2
- Kibana'yı başlatmak için .bat uzantısı ile aşağıdaki komut çalıştırılır.
- Kibana birkaç saniye sonra başlamış olur.
bin/kibana.bat
- Her şey yolunda ise böyle bir sonuç görülür.
- Ayaklanan Kibana default olarak 5601 port’unu kullanır.
- Kibana'nın çalıştığını kontrol etmek için tarayıcınıza "localhost:5061" bağlantı noktası yazılarak kontrol edilebilir.
- Giriş yaptığımızda Elasticsearch'e bağlı kibana arayüzünü görürüz.
Kibana Kurulumu (Linux)
Kibana v7.9.2 Linux arşivi aşağıdaki şekilde indirilebilir ve kurulabilir:
"curl"
komutunu kullanarak Kibana'nın 7.9.2 sürümünü indiriyoruz.
curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-linux-x86_64.tar.gz
Kibana'nın SHA512 doğrulama dosyasını indiriyoruz, sonra bu dosyanın içeriğini SHA512 algoritması kullanarak kontrol ediyoruz.
curl https://artifacts.elastic.co/downloads/kibana/kibana-7.9.2-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c -
"tar"
komutuyla Kibana arşiv dosyasını çıkartıyoruz.
tar -xzf kibana-7.9.2-linux-x86_64.tar.gz
Kibana'nın çıkartıldığı dizine (kibana-7.9.2-linux-x86_64/
) geçiş yapar.
cd kibana-7.9.2-linux-x86_64/
Konfigürasyon için Config klasörü içindeki "kibana.yml" dosyasında Apinizer'ın Elasticsearch Entegrasyonu için Sunucu bilgileri düzenlenir.
vi config/kibana.yml
Kibana sunucunuzu başlatmak için kullanılır.
./bin/kibana
Her şey yolunda ise böyle bir sonuç görülür.
Apinizer API Trafik Loglarının Kibana ile Entegrasyonu
Kibana, veri tabloları, zaman çizelgesi, ısı haritaları, çubuk grafikleri, alan grafikleri ve daha fazlasını içeren birçok farklı türde grafik oluşturulmasına imkan verir. Kullanım amacına göre en doğru görselleştirme formatı seçilerek işlemlere başlanır.
Apinizer Genel Bakış (Overview) bölümü, API Proxy'lerin, toplam istek sayılarının ve başarılı, başarısız ve bloklanmış istekler gibi genel bilgilerini tek bir sayfada gösterme imkanı sunar. Bu bölüm, kullanıcıların API trafiğini kolayca izlemesine ve yönetmesine olanak tanır.
Kibana entegrasyonu sayesinde, kullanıcılar genel bilgilere ek olarak özelleştirilmiş raporlar oluşturabilir ve API trafiğini daha detaylı bir şekilde inceleyebilir. Bu, kullanıcıların API performansını anlamalarına ve geliştirmeler yapmalarına olanak sağlar. Aşağıda Apinizer Genel Bakış (Overview) bölümüne benzer şekilde oluşturulmuş birkaç Kibana Visualize ve Dashboard örneklerinin nasıl hazırlandığı gösterilmiştir.
Template Veri Yapısı Tablosu için Elasticsearch Manuel ILM Politikası ve Template Oluşturma sayfasını ziyaret edebilir, ILM Politikalarının alan adına göre tutulan verilerin açıklamasına bakabilirsiniz.
Visualize ve Dashboard Oluşturma
Kibana ile oluşturulan görselleştirmeler, bir görselleştirme panelinde bir araya getirilerek Apinizer Genel Bakış bölümünde var olan verilere ve daha özelleştirilmiş verilere genel bir gösterge sağlar.
Bu görselleştirmeyi oluşturmak için, sol menüden 'Görselleştir' bağlantısına tıklayın.
Ardından, "Görselleştirme Oluştur" düğmesine tıklayın.
İstenilen grafik oluşturma formatı seçilir.
Örnek Grafik Oluşturma
7 gün içerisindeki istek sayısının durumunu gösteren grafik oluşturma
Son 7 gün içindeki istek sayılarının durumunu gösteren grafik, zaman aralığı (timestamp) bazında gruplanmıştır. Her bir zaman aralığı için, isteklerin boyutu (Size Request Total) alanındaki benzersiz istek sayısı unique count (benzersiz sayım) metriği kullanılarak hesaplanmıştır. Ayrıca, sonuç durumu (Result Status) terimine göre veri kümesinde hangi durumların bulunduğu gösterilmiştir.
Alan | Aggregation | Apinizer Elasticsearch Index Field Name for Query |
---|---|---|
Metrik (Boyut belirleme) | Unique Count | sr1t(Size Request Total) |
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı) | Date histogram | @timestamp(Zaman aralığı verisi için) |
Terms | rt(Sonuç Durumu) |
- Metrics alanında eşsiz öğelerin sayısını belirlemek için s1rt (isteklerin boyutu) metriği girilir. Eşsiz öğelerin sayısı, veri kümesinin çeşitliliği ve içeriğinin genel özeti hakkında bilgi sağlar.
- 7 günlük bir zaman dilimindeki istek sayılarının durumunu göstermek için, @timestamp alanıyla birlikte Date Histogram metriği kullanılır ve x ekseni bu zaman aralığıyla belirlenir. Sonuçları gruplamak için, sıklıkla karşılaşılan değerlere göre Split Series kısmında Terms terimi kullanılarak durumlar gruplanır. Bu yöntem, isteklerin zaman içindeki dağılımını ve farklı durumların dağılımını görselleştirmek için kullanılır.
- Adımlar takip edilerek belirli bir zaman diliminde hangi durumların ne kadar sıklıkta gerçekleştiğini görsel olarak temsil eder.
Metotlara göre istek sayısı durumunu gösteren grafik oluşturma
Grafik, API Proxy Method isimlerine göre gruplandırılmış ve her bir metoda ait istek sayısı gösterilmiştir. Ayrıca, her bir metot için farklı sonuç durumlarının da gösterildiği belirtilmiştir.
Field | Aggregation | Apinizer Elasticsearch Index Field Name for Query |
---|---|---|
Metrik (Boyut belirleme) | Count | - |
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı) | Terms | apmn(API Proxy Method ismi) |
Terms | rt(Sonuç Durumu) |
- Metrics alanına veri kümesindeki toplam metod sayısını belirlemek için Count kullanılır ve alan belirtilmez.
- X ekseni için belirleme yapmak için Buckets alanına apm (API Proxy Method ismi) kullanılır. Sonuçları gruplamak için, sıklıkla karşılaşılan değerlere göre Split Series kısmında Terms terimi kullanılarak durumlar gruplandırılır.
- Adımları takip ederek, API Proxy Method isimlerine göre gruplandırılmış ve her bir metodun istek durumunu görsel olarak sunar.
API Proxy kullanım oranlarını gösteren grafik oluşturma
Grafik, API Proxy isimlerine göre gruplandırılmış ve her bir API Proxy'nin kullanım sayısını göstermektedir. Bu grafik, API Proxy'lerin hangisinin daha fazla kullanıldığını belirlemek için kullanılabilir.
Field | Aggregation | Apinizer Elasticsearch Index Field Name for Query |
---|---|---|
Metrik (Boyut belirleme) | Count | - |
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı) | Terms | apn(API Proxy ismi) |
- Metrics alanına veri kümesindeki toplam API Proxy sayısını belirlemek için Count kullanılır ve alan belirtilmez.
- Split Series kısmında Terms terimi kullanılarak Proxy'ler gruplandırılır.
- API Proxy isimlerine göre apn ve kaç API Proxy olacağı hakkında sınırlama olacağı Buckets alanında gösterilir. Metrics kısmında dilim boyutunu belirlendiği alandır.
API Proxy'lere göre istek sayısını ve durumunu gösteren grafik oluşturma
Bu grafik, API Proxy'lerin hangi durumlarla daha sık ilişkilendirildiğini gösterir. Örneğin, bir API Proxy'nin hangi durumlarda daha sık başarısız olduğunu veya hangi durumlarda daha başarılı olduğunu belirlemek için kullanılabilir.
Field | Aggregation | Apinizer Elasticsearch Index Field Name for Query |
---|---|---|
Metrik (Boyut belirleme) | Count | - |
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı) | Terms | apn(API Proxy ismi) |
Terms | rt(Sonuç Durumu) |
- Metrics alanına veri kümesindeki toplam API Proxy sayısını belirlemek için Count kullanılır ve alan belirtilmez.
- X ekseni için belirleme yapmak için Buckets alanına apn(API Proxy ismi) kullanılır. Sonuçları gruplamak için, sıklıkla karşılaşılan değerlere göre Split Series kısmında Terms terimi kullanılarak Sonuç durumları gruplandırılır.
- Adımları takip ederek, API Proxy isimlerine göre gruplandırılmış ve her bir Proxy istek durumunu görsel olarak sunar.
Durum koduna göre istekleri gösteren Histogram grafiği oluşturma
Bu histogram grafiği, durum kodlarına göre isteklerin sayısını gösterecektir. Her bir durum kodu için kaç isteğin gerçekleştiğini belirleyerek, isteklerin dağılımını görselleştirebilirsiniz. Bu sayede hangi durum kodlarının daha sık veya daha az olduğunu gözlemleyebilirsiniz.
Field | Aggregation | Apinizer Elasticsearch Index Field Name for Query |
---|---|---|
Metrik (Boyut belirleme) | Count | - |
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı) | Terms | sc(Durum Kodu) |
- Metrics alanına veri kümesindeki toplam istek sayısını belirlemek için Count kullanılır ve alan belirtilmez.
- Buckets alanına Toplam istek sayısına göre durum kodunu belirlemek için sc kullanılır.
- Bu görselleştirme, farklı durum kodlarına sahip isteklerin sayısını belirgin bir şekilde gösterir. Örneğin, 200 (Başarılı) durum koduna sahip isteklerin toplam istekler içindeki oranını, 404 (Bulunamadı) durum koduna sahip isteklerin sayısını, 500 (Sunucu Hatası) durum koduna sahip isteklerin sayısını vb. içerebilir.
Gösterge Paneli Oluşturma ve Görselleştirmeleri Ekleme
Sol menüden "Panoya" bağlantısına tıklayın.
"Panoyu Oluştur" düğmesine tıklayın.
Kırmızı ile belirtilen alanda oluşturulan herhangi bir görselleştirmeyi eklemek için kullanılır.
Yeşil ile belirtilen alan ise yeni bir görselleştirme oluşturulup gösterge paneli içerisine eklemek için kullanılır.
Kaydedilmiş görselleştirmeleri gösterge paneline ekleme işlemi.
Verileri Analiz Etme Ve Filtreleme İşlemi
İndekslerde saklanan veriyi analiz etmeyi, her bir alanın yapısı hakkında detaylı bilgi alabilmeyi, bulguların görselleştirilmesini sağlayan kısımdır. Ayrıca aramalar kişiselleştirilebilir, kaydedilebilir ve bu özelleştirilmiş arama ve filtreleme seçeneklerini bir kontrol paneline yerleştirilebilir.
Son 15 dakika içerisinde toplam istek sayısını gösteren grafik bulunmaktadır. Çubukların altında elastik arama belgelerinin listesi vardır.
Zaman aralığına göre filtreleme işlemi isteğe bağlı olarak gerçekleştirilebilir ve görselleştirilebilir.
Verilerle birlikte tüm alanlar satır bazında gösterilebilir. Satırı genişletmek için ok işaretine tıklayarak, size tablo formatında veya JSON formatında ayrıntılar sağlanır..
JSON Formatı
İstenilen veriler tablo formatına alınabilir. Satırlardan birini genişletmek için kırmızı işaretli kutucuğa tıkladığınızda, o verinin tablo formatında eklenmesini sağlar.
Yeşil ile işaretlenmiş kutucuğa tıklarsanız, verileri filtrelemek için kullanılabilir. Bu da KQL (Kibana Query Language) sorgusu gibi işlev görür.
KQL, Elasticsearch'te depolanan verilerin arama ve analiz için kullanılan sorgu dilidir. Basit sorgular yazıldığında, arka planda otomatik olarak Elasticsearch DLS Query formatına dönüştürülerek arama yapılır. Karmaşık Elasticsearch sorguları, tek satırda KQL kullanılarak gerçekleştirilebilir.
Son 24 saat içerisinde başarılı istek sayısı sorgulama (sc:200)
Arama verileri kaydedildikten sonra, sağ üst köşedeki paylaş düğmesiyle farklı paylaşım türleriyle başkalarıyla paylaşılabilir.
Template Veri Yapısı Tablosu için Elasticsearch Manuel ILM Politikası ve Template Oluşturma sayfasını ziyaret edebilir, ILM Politikalarının alan adına göre tutulan verilerin açıklamasına bakabilirsiniz.
tıklayın