Osman KURT

Kendime Not

.Net Core ElasticSearch Loglama

Merhabalar,

Uygulamaları yazmak, ayağa kaldırmak ne kadar önemli ve keyifli şeyler olsa da! Yayın hayatına başlayan bir uygulamayı takip etmek ve oluşabilecek hataları analiz etmek de bir o kadar önemli bir nokta. Bu yüzden çalışma esnasında tutulan loglar tabiri caizse bizim elimiz ayaklarımız. Tam da bu yüzden uygulamanın çalışma esnasında log kayıtlarının kolay şekilde tutulduğu bir demo gerçekleştirdim ve github hesabıma yükledim.

Örnek uygulama için alt kısımda ki linki kullanabilirsiniz;

https://github.com/byokurt/Net-Core-ElasticSearch-Logging

Uygulamayı indirdikten sonra yapmanız gereken birkaç küçük düzenleme var. Bunları uygulamanın readme kısmında yazdım ancak her ihtimale karşı buradan da yazıyorum.


Network oluşturmak için;

docker network create elasticnetwork

Elasticsearch image'nı bilgisayarımıza almak ve sonrasında ayağa kaldırmak için;

docker pull elasticsearch:7.10.1
docker run -d --name elasticsearch --net elasticnetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.1

Kibana image'nı bilgisayarımıza almak ve sonrasında ayağa kaldırmak için; (Kibana default olarak 9200 portunu dinlemekte)

docker pull kibana:7.10.1
docker run -d --name kibana --net elasticnetwork -p 5601:5601 kibana:7.10.1

Sonrasında projemizi çalıştırıyoruz ve log toplamaya başlıyoruz. 

Kibana üzerinde loglarımızı listelemek için yapılması gereken işlemleri alt kısımda resim olarak ekliyorum.

ElasticSearch Kurulumu

Windows bilgisayarımıza elasticsearch kurmak için ilk yapmamız gereken şey java'nın bilgisayarımızda kurulu olması.(Çünkü ElasticSearch java dilinde geliştirilmiştir)

Java kurulumundan emin olduktan sonra yapmamız gereken https://www.elastic.co/downloads/elasticsearch linkinden zip dosyamızı download etmek.

Sonrasında indirdiğimiz dosya üzerinde bin klasörü altında elasticsearch.bat dosyamızı çalıştırmamız yeterli olacaktır. 

Kurulum tamamlandığında http://localhost:9200 adresinde "ElsaticSearch" çalışmaya başlayacaktır. İlgili adrese gittiğinizde karşınıza çıkacak görüntü alt kısımdaki gibi olacaktır. 

*Sürüm farklılıkları olabilir.

{
  "name" : "osman",
  "cluster_name" : "KURT",
  "version" : {
    "number" : "6.2.2",
    "build_hash" : "72cd1f1a3eee09505e036106146dc194xxxxxxxx",
    "build_timestamp" : "2015-11-18T22:40:03Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}

Osman KURT

Yazılım Uzmanı

ElasticSearch Nedir?

ElasticSearch Nedir?

ElasticSearch, java programlama dili kullanılarak open source geliştirilmiş ve lucene alt yapısı üzerine kurulmuş ölçeklenebilir, full text search tabanlı bir engine'dir

En belirgin avantajları arasında;

  • Cluster yapısı çok basittir
  • Rakiplerine göre çok fazla kaynak tüketmez
  • Kendi içinde yüksek erişilebilirlik (high availability) sunar
  • İndexleme mantığı olduğu için hızlı arama yapar
  • Doküman ve indeksleme kavramı çok kullanılır
  • Dokümanları JSON olarak indexler
  • Mapping kavramı vardır. Bir belgenin arama motoruna nasıl aktarılması gerektiğini tanımlama sürecidir
  • Shared ve Replica kavramı vardır


Ülkemizde de başta www.kariyer.net olmak üzere birçok firmada elasticsearch kullanımı mevcuttur. Dünya genelinde ise Netflix, IBM, Slack, Linkedin, Ebay gibi büyük firmalar kullanmaktadır.

Bu link üzerinden indirebilirsiniz.


Marvel Nedir?

Marvel, elasticsearch'ün sunmuş olduğu bir arayüzdür. Bu arayüz sayesinde elasticsearch üzerinde kurulu olan bütün node'ların durumlarını görebiliriz. Bunların yanı sıra döküman sayılarını takip edebilir ve gelen tüm request'lerin oran bilgilerine ulaşabiliriz.


Sense Nedir?

Sense, elasticsearch query'lerini browser üzerinde çalıştırmamızı sağlayan bir araçtır. Bu sayede herhangi başka bir araca gerek duymadan sense üzerinden sorgularımızı çalıştırabilir ve sonuçlarını görebiliriz. Bunların yanı sıra Index, Mapping ve Document ekleme/silme gibi işlemleri de yapabilmekteyiz.

Sense ve Marvel için kibana kurulumu yapılması gerekmektedir. Bu linkten indirebilirsiniz.


Osman KURT
Yazılım Uzmanı