Elastıcsearch nedir?
Elasticsearch, Apache Lucene temelli olarak geliştirilmiş dağıtılmış bir arama ve analiz motorudur. Yatay ölçeklenebilirlik, güvenilirlik ve büyük hacimli verilerin gerçek zamanlı aranması ve analiz edilmesi gibi avantajlar sunar.
Bu güçlü platform, genellikle günlük analizi, tam metin arama ve hızlı, doğru arama gibi kritik ihtiyaçları olan çeşitli kullanım durumları için tercih edilir. Elasticsearch, veri analitiği ve iş zekası alanında önemli bir rol oynar, büyük veri setlerinin hızlı bir şekilde taranması, işlenmesi ve anlaşılmasını sağlar. Kullanıcı dostu RESTful API’leri sayesinde, geliştiricilerin ve veri uzmanlarının Elasticsearch’i kolayca entegre etmesi ve verilere erişmesi mümkündür.
Ayrıca, Elasticsearch’in esnek ve açık kaynaklı doğası, onu birçok farklı endüstri ve uygulama alanı için ideal bir çözüm haline getirir. Finansal hizmetlerden sağlık sektörüne, e-ticaretten medya ve eğlenceye kadar birçok sektörde, Elasticsearch veri analizi ve arama ihtiyaçlarını karşılamak için tercih edilen bir araç haline gelmiştir.
Kısacası, Elasticsearch, veri odaklı kararlar almak ve rekabet avantajı elde etmek isteyen kuruluşlar için güçlü bir araçtır. Esnekliği, ölçeklenebilirliği ve hızıyla, büyük veri setlerini etkili bir şekilde işlemek ve değerli içgörüler elde etmek için ideal bir platform sunar.
Anahtar Bileşenler:
- Elasticsearch: Verilerin depolandığı ve aramaların gerçekleştirildiği arama motoru. Sistemin kalbi olarak düşünülebilir.
- Kibana: Verileri yorumlayıcı olarak düşünün. Elasticsearch’ten gelen sonuçları grafikler ve panolar gibi görselleştirmelere dönüştürerek verilerinizi anlamayı ve analiz etmeyi kolaylaştırır.
- Logstash: Veri boru hattı olarak düşünülebilirsiniz. Farklı kaynaklardan veri toplar, işler ve Elasticsearch’e gönderir. Genellikle günlük dosyaları ve diğer olay verisi türlerini yönetmek için kullanılır.
- Beats: Hafif veri göndericileridir. Farklı veri türlerini toplar ve Elasticsearch veya Logstash’a gönderir. Örneğin, Filebeat günlük dosyalarını toplar, Metricbeat sistem metriklerini toplar ve Packetbeat ağ verilerini toplar.
Kıbana:
Kibana, Elasticsearch’ün sonuçlarını alır ve bunları grafikler, tablolar ve panolar gibi görselleştirmelere dönüştürür. Verilerinizi anlamak ve analiz etmek için kullanıcı dostu bir arayüz sağlar. Kibana, Elasticsearch’teki verileri gerçek zamanlı olarak keşfetmek, görselleştirmek ve izlemek için kullanılır. Gösterge panoları oluşturabilir, zaman serisi verilerini analiz edebilir ve kapsamlı raporlar oluşturabilirsiniz.
Logstash:
Logstash bir veri hattı olarak düşünülebilir. Farklı kaynaklardan veri toplar, işler ve depolama ve analiz için Elasticsearch’e gönderir. Logstash tipik olarak günlük dosyaları, sensör verileri ve diğer olay verileri gibi yapılandırılmamış veya yapılandırılmamış veri türlerini işlemek için kullanılır. Logstash, gelen verileri işlemek için filtreler, dönüştürücüler ve diğer özelliklere sahip bir dizi eklenti sağlar.
Beats:
Beats, Elasticsearch veya Logstash’e veri göndermek için kullanılan hafif veri toplayıcılardır. Farklı veri türlerini toplamak için çeşitli modüller içerirler. Örneğin:
- Filebeat: Günlük dosyalarını toplar ve analiz için Elasticsearch veya Logstash’a gönderir.
- Metricbeat: Sistem ve sunucu metriklerini toplar ve analiz için Elasticsearch veya Logstash’a gönderir.
- Packetbeat: Ağ trafiğini izler ve analiz eder ve Elasticsearch veya Logstash’a gönderir.
Beat’ler genellikle dağıtık sistemlerde kullanılır çünkü hafiftirler ve farklı veri kaynaklarından veri toplamak için kolayca yapılandırılabilirler.
Bu bileşenler birlikte veri toplama, depolama, arama, analiz ve görselleştirmeyi birleştiren Elastic Stack’i oluşturur.
Elastıcsearch Yükleme:
Ön Koşullar: Başlamadan önce, sisteminizde Java’nın yüklü olduğundan emin olun. Çalıştırarak kontrol edebilirsiniz:
- java -version
Java yüklü değilse, paket yöneticinizi kullanarak veya resmi Java web sitesinden indirerek yükleyebilirsiniz.
Adım Adım Kurulum:
Elasticsearch’ü indirin: Elasticsearch indirme sayfasına gidin ve işletim sisteminiz için olan sürümü indirin. (Linux için kurulum yapılmıştır.)
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz
İndirdikten sonra dosyaları çıkarın:
- tar -xzf elasticsearch-7.16.3-linux-x86_64.tar.gz
Elasticsearch’ü başlatın: Elasticsearch dizinine gidin ve Elasticsearch çalıştırılabilir dosyasını çalıştırın:
- cd elasticsearch-7.16.3/bin./elasticsearch
Elasticsearch çalışmaya başlayacak ve çalışmaya hazır olduğunu gösteren bazı günlükler göreceksiniz.
Not: Elasticsearch’ü yüklerken GPG anahtarını eklemek güvenlik için önemlidir. Tercih ederseniz komutları şu şekildedir:
- wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add –
- sudo sh -c ‘echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” > /etc/apt/sources.list.d/elastic-7.x.list’
- sudo apt-get update
- sudo apt-get install elasticsearch
Örnek: Elastıcsearch’te Veri İndeksleme
Elasticsearch hazır ve çalışır durumda olduğuna göre, şimdi bazı örnek verileri dizine ekleyelim. Elasticsearch ile etkileşim kurmak için Elasticsearch REST API’sini kullanacağız.
Bir Dizin Oluşturun: Bir terminal açın ve “books” adında bir dizin oluşturmak için aşağıdaki curl komutunu çalıştırın:
- curl -X PUT “localhost:9200/books?pretty”
Dizinin başarıyla oluşturulduğunu belirten bir yanıt görmelisiniz:
- {
“acknowledged” : true,
“shards_acknowledged” : true,
“index” : “books”
}
- {
Bir Belgeyi İndeksleme: Şimdi, örnek bir kitap belgesini “books” indeksine indeksleyelim. Aşağıdaki curl komutunu çalıştırın:
- curl -X POST “localhost:9200/books/_doc/1?pretty” -H “Content-Type: application/json” -d ‘{
“başlık”: “Muhteşem Gatsby”,
“Yazar”: “F. Scott Fitzgerald”,
“Tür”: “Kurgu”,
“Yıl”: 1925
}’
- curl -X POST “localhost:9200/books/_doc/1?pretty” -H “Content-Type: application/json” -d ‘{
Bu komut “books” indeksine “1” ID’li bir belgeyi indeksler. Başarılı çıktınız şöyle olmalıdır:
- {
“_index” : “books”,
“_type” : “_doc”,
“_id” : “1”,
“_version” : 1,
“result” : “created”,
“_shards” : {
“total” : 2,
“successful” : 1,
“failed” : 0
},
“_seq_no” : 0,
“_primary_term” : 1
}
- {
Belgeyi Almak: Aşağıdaki curl komutunu çalıştırarak indekslenmiş belgeyi alabilirsiniz:
- curl -X GET “localhost:9200/books/_doc/1?pretty”
Bu, az önce indekslediğimiz belgeyi döndürecektir:
- {
“_index” : “books”,
“_type” : “_doc”,
“_id” : “1”,
“_version” : 1,
“_seq_no” : 0,
“_primary_term” : 1,
“found” : true,
“_source” : {
“başlık” : “Muhteşem Gatsby”,
“Yazar” : “F. Scott Fitzgerald”,
“Tür” : “Kurgu”,
“Yıl” : 1925
}
- {
Sonuç
Elastic Stack, veri analizi ve yönetiminde güçlü bir araçtır. Elasticsearch’in hızlı ve etkili arama motoru, Kibana’nın verileri görselleştirme yetenekleri, Logstash’in veri işleme yetenekleri ve Beats’in hafif veri toplama araçları, kullanıcıların verilerini toplamalarını, depolamalarını, analiz etmelerini ve görselleştirmelerini sağlar. Elastic Stack, modern veri odaklı kararlar almanıza yardımcı olur ve işletmenizin veri analitiği ihtiyaçlarını karşılamak için güçlü ve esnek bir çözüm sunar. İyi çalışmalar.