Elastic Stack Lab Çalışması * Docker, ES|QL ve Kibana Dashboard Uygulaması
Elasticsearch 9.4.4 Kurulumu, SSH Tüneliyle Güvenli Erişim ve Örnek Web Loglarıyla Etkileşimli Dashboard Oluşturma
Merhabalar,
Bu makalede Elasticsearch’ün arama, analiz ve görselleştirme yeteneklerini uygulamalı olarak incelemek amacıyla Azure Cloud üzerinde bir laboratuvar ortamı yapılandırdım. Bu çalışma için Docker üzerinde Elasticsearch ve Kibana kurulumu gerçekleştirdim, SSH tüneli ile güvenli erişim sağladım ve örnek web logları üzerinde ES|QL tabanlı analizler uyguladım.
Çalışmamıza kurulum adımlarıyla başlayalım.
hostnamectl, nproc, free -h, df -h, uname -a komut çıktılarını aşağıdaki görselden takip edebilirsiniz.

Daha sonra aşağıdaki komutları kullandık. Çıktılarını aşağıdaki görsellerden takip edebilirsiniz. Laboratuvar ortamı olduğu için Docker’ın resmi geliştirme/test kurulum betiğini kullanabiliriz:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh


Ardından kendi kullanıcımızı Docker grubuna ekledik Kullandığımız komut: sudo usermod -aG docker azureuser
Docker sürümlerimizi de aşağıdaki komutlarla doğruladık:
docker –version
docker compose version
Aşağıdaki görselden çıktıları takip edebilirsiniz.

Bu doğrulamadan sonra Elastic’in resmi hızlı kurulumunu çalıştıracağız: curl -fsSL https://elastic.co/start-local | sh
Bu komut, geliştirme amaçlı tek sunuculu Elasticsearch ve Kibana ortamını Docker üzerinde hazırlar. Elasticsearch ile Kibana’nın aynı sürümde olması gerekir; resmi hızlı kurulum bunu birlikte yönetir. Kurulumumuzun başarılı olduğunu aşağıdaki görselden görebiliriz (kullanıcı ismi, şifreler kısmını görselden bilinçli olarak çıkardım). Elastic Stack 9.4.4 başarıyla kuruldu.

Elasticsearch ve Kibana servislerinin “healthy” ve “running” olduğunu görüyoruz.

Kibana’ya bağlanabilmek için MobaXterm üzerinden SSH tünel oluşturdum. Güzel haber, kendi bilgisayarımdan Kibana’ya bağlanabildim. Kibana’ya bağlanmak için http://127.0.0.1:5601/login?next=%2F adresini kullandım.

Kurulumu tamamladığımıza ve Kibana GUI’ye ulaştığımıza göre şimdi kalan kısım için devam edebiliriz. Öncelikle örnek veri yükleyeceğim.

Yukarıdaki ekranda görünen “Sample web logs”u yüklemek için “Install data”ya tıkladım. “Dashboard” kısmına geçelim.

Bizi aşağıdaki gibi dolu bir “dashboard” ekranı karşıladı.

Şimdi ise “Discover” menüsünden ES|QL editörüne geçeceğim.


Bu ES|QL alanına basit bir sorgu yazdık ve açık mavi “Search” kısmına tıkladık.
FROM kibana_sample_data_logs
| WHERE response.keyword == “200”
| STATS request_count = COUNT(*) BY geo.dest
| SORT request_count DESC
| LIMIT 10

İstersek çıktıyı farklı formatlarla da gösterebiliriz. İlk tablonun yanında olan kalem işaretini seçerek gelen önerileri değerlendirebiliriz.

Mesela aşağıda “treemap” seçtim.

Değişikliğimi geri aldım ve yeni bir “Dashboard” olarak kaydettim.

Şimdi yeni bir panel ekleyelim.

Eklediğimiz ikinci paneli istediğim isim ve açıklama ile kaydettim.


İsimlendirmeyi menüden gördüğümüz dikey üç noktayı seçtikten sonra “Settings” tıklayarak yapabiliriz. ES|QL kullanarak verileri filtreleyebilir, gruplayabilir, hesaplanmış alanlar oluşturabilir ve sonuçları farklı görselleştirmelerle sunabilirsiniz. Mesela ben üçüncü panel olarak aşağıdakini ekledim.

Son olarak bir “control” ekledim.

“Control” eklenti sonrası, aşağıdaki gibi bir çıktı oluştu.

Destination Country kontrolünde seçilen geo.dest değeriyle dashboard üzerindeki paneller dinamik olarak filtrelendi.
Bu çalışma sonucunda Azure Cloud üzerinde Docker tabanlı bir Elasticsearch ve Kibana laboratuvar ortamı oluşturdum. Kibana servisini internete doğrudan açmak yerine SSH tüneli üzerinden güvenli erişim sağladım. Ardından Sample Web Logs veri setini kullanarak ES|QL sorguları hazırladım; başarılı HTTP isteklerini hedef ülkelere göre analiz ettim, web hostlarının başarı oranlarını hesapladım ve HTTP yanıt kodlarının dağılımını görselleştirdim. Son olarak eklediğim Destination Country kontrolü sayesinde dashboard’un seçilen ülkeye göre dinamik olarak filtrelenmesini sağladım. Böylece yalnızca çalışan bir Elastic Stack ortamı değil; verinin sorgulandığı, hesaplanmış göstergelere dönüştürüldüğü ve etkileşimli biçimde sunulduğu uçtan uca bir laboratuvar çalışması tamamlamış oldum. Bir sonraki aşamada bu altyapıyı harici bir LLM ile entegre ederek Elastic Agent Builder ve doğal dil tabanlı veri analizi özelliklerini incelemeyi planlıyorum.
Sarav Asiye Yiğit * 26 Temmuz 2026 Pazar






Yorumunuzu Bırakın