CodeBlanks Logo Icon CodeBlanks

Elasticsearch

Elasticsearch ile günlük saklamayı öğrenirsin.

Elasticsearch

Elasticsearch (ve açık kaynak çatalı OpenSearch), log'ları tam metin aranabilir indekslerde saklayan dağıtık bir arama motorudur. Log'lar genellikle günlük indekslere yazılır (loglar-2026.11.03); eski indeksler bir yaşam döngüsü politikasıyla (ILM) silinir:

$ curl -s "http://elasticsearch:9200/_cat/indices/loglar-*?v"
health status index               docs.count store.size
green  open   loglar-2026.11.02   18241332   9.1gb
green  open   loglar-2026.11.03    7120455   3.4gb

Elasticsearch durumludur: Kubernetes'te StatefulSet ve kalıcı disklerle, genellikle ECK operator'ü ile çalıştırılır.

Sorgulamak

Elasticsearch HTTP üzerinden JSON ile sorgulanır. Fluent Bit'in eklediği Kubernetes alanlarıyla süzülebilir:

curl -s "http://elasticsearch:9200/loglar-*/_search?size=3" -H 'Content-Type: application/json' -d '{
  "query": {"bool": {"must": [
    {"match": {"kubernetes.namespace_name": "magaza"}},
    {"match": {"seviye": "error"}}
  ]}}
}'

Alternatif olarak Grafana Loki, log içeriğini değil yalnızca etiketleri indeksler; daha ucuzdur ama tam metin aramada daha yavaştır.

Uygulama Elasticsearch'e bak

Üç komut yaz: loglama'daki svc/elasticsearch servisini yerel 9200'den 9200'e yönlendir; curl -s ile http://localhost:9200/_cluster/health?pretty adresini sorgula; curl -s ile http://localhost:9200/_cat/indices/loglar-*?v adresini sorgula.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl port-forward -n loglama svc/elasticsearch 9200:9200
curl -s "http://localhost:9200/_cluster/health?pretty"
curl -s "http://localhost:9200/_cat/indices/loglar-*?v"

Beklenen çıktı

Forwarding from 127.0.0.1:9200 -> 9200
{
  "cluster_name" : "loglama",
  "status" : "green",
  "number_of_nodes" : 3
}
health status index               docs.count store.size
green  open   loglar-2026.11.03    7120455   3.4gb

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Log'ları günlük indekslere yazmanın faydası nedir?

  • Gerekli değildir
  • Eski veriyi tek tek kayıt değil, bütün indeks silerek ucuzca temizlemek Doğru cevap
  • Aramayı yavaşlatmak
  • Disk kullanımını artırmak

Açıklama: Saklama süresi (ör. 14 gün) indeks yaşına göre uygulanır.

2 İndeksleri listeleyen uç noktayı yaz.

Soru
curl -s "http://elasticsearch:9200/____/loglar-*?v"
Cevap
curl -s "http://elasticsearch:9200/_cat/indices/loglar-*?v"

Açıklama: _cat API'leri okunur özetler verir.

3 Eşleştir.

Kavram Anlamı
indeks Log deposu birimi
ILM Yaşam döngüsü politikası
_search Sorgu uç noktası
Loki Etiket indeksli alternatif

İleri seviye bölümündeki tüm dersler