Ana içeriğe atla
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)

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. Bu dokümanda free versiyon kullanılacaktır.
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. Kibana YML Konfigürasyonu Kibana YML Konfigürasyonu Detay
  • 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.
Kibana Başlatma Sonucu
  • Çalıştırılan Kibana default olarak 5601 port’unu kullanır.
  • Kibana’nın çalıştığını kontrol etmek için tarayıcınıza “localhost:5601” bağlantı noktası yazılarak kontrol edilebilir.
  • Giriş yaptığımızda Elasticsearch’e bağlı kibana arayüzünü görürüz.
Kibana Arayü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-oss-7.9.2-linux-x86_64.tar.gz
tar komutuyla Kibana arşiv dosyasını çıkartıyoruz.
tar -xzf kibana-oss-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-oss-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 YML Konfigürasyonu Linux Kibana sunucunuzu başlatmak için kullanılır.
./bin/kibana
Her şey yolunda ise böyle bir sonuç görülür. Kibana Başlatma Sonucu Linux

Kibanayı Linux Servis Olarak Ayarlama

sudo chown -Rf elasticsearch:elasticsearch /opt/kibana-7.9.2-linux-x86_64
sudo vi /etc/systemd/system/kibana.service
[Unit]
Description=Kibana
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
ExecStart=/opt/kibana-7.9.2-linux-x86_64/bin/kibana serve
WorkingDirectory=/opt/kibana-7.9.2-linux-x86_64
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=inherit
User=elasticsearch
sudo systemctl daemon-reload
sudo systemctl enable kibana.service
sudo systemctl start kibana.service
sudo systemctl status kibana.service
netstat -tulpn | grep 5601

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. Apinizer Overview Dashboard
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. Görselleştir Menüsü Ardından, “Görselleştirme Oluştur” düğmesine tıklayın. Görselleştirme Oluştur İstenilen grafik oluşturma formatı seçilir. Grafik Formatı Seçimi

Ö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.
AlanAggregationQuery için Elasticsearch Index Alan Adı
Metrik (Boyut belirleme)Unique Countsr1t(Size Request Total)
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı)Date histogram@timestamp(Zaman aralığı verisi için)
Termsrt(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.
Metrics Ayarları - 7 Günlük İstek
  • 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.
Buckets Ayarları - 7 Günlük İstek
  • 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.
Grafik Sonucu - 7 Günlük İstek Durumu

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.
AlanAggregationQuery için Elasticsearch Index Alan Adı
Metrik (Boyut belirleme)Count-
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı)Termsapmn(API Proxy Method ismi)
Termsrt(Sonuç Durumu)
  • Metrics alanına veri kümesindeki toplam metod sayısını belirlemek için Count kullanılır ve alan belirtilmez.
Metrics Ayarları - Metotlar
  • 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.
Buckets Ayarları - Metotlar
  • Adımları takip ederek, API Proxy Method isimlerine göre gruplandırılmış ve her bir metodun istek durumunu görsel olarak sunar.
Grafik Sonucu - Metotlar

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.
AlanAggregationQuery için Elasticsearch Index Alan Adı
Metrik (Boyut belirleme)Count-
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı)Termsapn(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.
Metrics Ayarları - API Proxy
  • 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.
Grafik Sonucu - API Proxy

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.
AlanAggregationQuery için Elasticsearch Index Alan Adı
Metrik (Boyut belirleme)Count-
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı)Termsapn(API Proxy ismi)
Termsrt(Sonuç Durumu)
  • Metrics alanına veri kümesindeki toplam API Proxy sayısını belirlemek için Count kullanılır ve alan belirtilmez.
Metrics Ayarları - API Proxy Durum
  • 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.
Buckets Ayarları - API Proxy Durum
  • Adımları takip ederek, API Proxy isimlerine göre gruplandırılmış ve her bir Proxy istek durumunu görsel olarak sunar.
Grafik Sonucu - API Proxy Durum

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.
AlanAggregationQuery için Elasticsearch Index Alan Adı
Metrik (Boyut belirleme)Count-
Buckets (Veri Kümesinde Hangi Bilgilerin Bulunacağı)Termssc(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.
Metrics Ayarları - Durum Kodu
  • 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.
Grafik Sonucu - Durum Kodu

Gösterge Paneli Oluşturma ve Görselleştirmeleri Ekleme

Sol menüden “Panoya” bağlantısına tıklayın. Panoya Menüsü “Panoyu Oluştur” düğmesine tıklayın. Panoyu Oluştur 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. Dashboard Ekleme Kaydedilmiş görselleştirmeleri gösterge paneline ekleme işlemi. Görselleştirme Ekleme 1 Görselleştirme Ekleme 2

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. Veri Analizi 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 Çizelgesi Zaman aralığına göre filtreleme işlemi isteğe bağlı olarak gerçekleştirilebilir ve görselleştirilebilir. Zaman Filtreleme 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. Tablo Formatı JSON Formatı 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. KQL Sorgusu

Son 24 saat içerisinde başarılı istek sayısı sorgulama (sc:200)

Başarılı İstek Sorgusu Arama verileri kaydedildikten sonra, sağ üst köşedeki paylaş düğmesiyle farklı paylaşım türleriyle başkalarıyla paylaşılabilir. Paylaşım
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.