Tahribat.com Forumları
Programlama Genel
ELK Stack + Filebeat Kurulumu (Merkezi Log Sistemi Kurulumu)
Programlama Genel
ELK Stack + Filebeat Kurulumu (Merkezi Log Sistemi Kurulumu)
ELK Stack + Filebeat Kurulumu (Merkezi Log Sistemi Kurulumu)
-
Not: Kisa ve oz neyin ne oldugunu anlattim sorulariniz olursa burdan sorun hep beraber tartisalim.
1. Filebeat
Filebeat, loglari istedigimiz bir yere taşımamızı sağlayan bir uygulamadır.
Filebeat'i yapılandirmak için ayar dosyasi kullanilir.Yapilandirmadan kasıt, taşınmasını istediğiniz log dosyalari(log files), nereye(destination) taşımak istediginiz, ne tür logların(multiline veya regex extracted) ve bunlardan fazlasını yapabilmeniz demektir.
Örnek Filebeat ayar dosyası (https://github.com/zetaops/zcloud/blob/master/containers/elk/containers/filebeat/filebeat.yml)
Ayar dosyanızda ilgili değişiklikleri yaptıktan sonra Filebeat'i şu şekilde çalıştırın.
-e: logları stderr'da göstermek için.
-v: INFO level logları göstermek için.
-c: ayar dosyasını seçmek için.
Filebeat hakkında daha fazla bilgi için (https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html)
2. Logstash
Logstash, gönderilen logları toplama, süzme ve elasticsearch'e loglari göndermemize yarar.
Logstash'i yapılandırmak için ayar dosyası kullanılır.
Logstash ayar dosyası üç bölümden oluşur.
input: filebeat gibi log göndericilerden(log source) gelen logları aldığımız bölümdür.Burda log gönderen programın adı, gönderdiği port ve hatta burda bile log süzme yapabiliriz.
output: süzülen logların nereye gönderilceği yer(destination); stdout, eleasticsearch vb. belirtilir.
filter: bu bölümde gelen loglar içinden ayıklamak istediğiniz loglar için ayarlamalar yapılır.Filtre yazmak için grok kullanılır.
Logstash filtreleri oluşturmak için şuraya bakınız.(https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns)
Filtlerinizi test etmek için (http://grokconstructor.appspot.com/do/match) kullanabilirsiniz.
Örnek logstash ayar dosyası (https://github.com/zetaops/zcloud/blob/master/containers/elk/containers/logstash/logstash.conf)
Ayar dosyasında gerekli ayarlamaları yaptıktan sonra
/opt/logstash/bin/logstash -f logstash.conf şeklinde çalıştırabilirsiniz.
-f: ayar dosyasını seçmek için kullanılır.
Logstash'in filebeatten gelen logları düzgün bir şekilde okuyabilmesi için logstash-input-beats eklentisini kurmanız gerekmektedir.
/opt/logstash/bin/plugin install logstash-input-beats şeklinde eklentiyi kurabilirsiniz.
Logstash hakkında daha fazla bilgi için (https://www.elastic.co/guide/en/logstash/current/config-examples.html)
3. EleasticSearch
ElasticSearch, ELK bileşenleri içinde en önemli yapıdır.Loglarin taşınması ve log içinde arama gibi önemli görevleri vardır.
ElasticSearch'i yapılandırmak için ayar dosyası kullanılır.
Örnek ElasticSearch ayar dosyası (https://github.com/zetaops/zcloud/blob/master/containers/elk/containers/elasticsearch/config/elasticsearch.yml)
Ayar dosyanızı /usr/share/elasticsearch/config dizini altına kopyalayıp
service elasticsearch start diyerek ElasticSearch'i çalıştırabilirsiniz.
Çalıştırdıktan sonra elasticsearch'in logları alıp almadığını
curl localhost:9200/_search?pretty diyerek kontrol edebilirsiniz.
Gelen loglar içinde arama yapmak için
curl localhost:9200/_search?q=message:"deneme"&pretty=true
Bunun anlamı, message bölümünde içinde "deneme" geçen logları göster.
ElasticSearch ile cluster oluşturmak:
Cluster oluşturduğunuzda, Master,Data ve Client nodeları gibi belli görevler verilir.
Cluster oluşturmak için ayar dosyanızda şu ayarlamaları yapmanız yeterli.Aşağıdaki ayarlarda discovery.zen.ping.unicast.hosts nodelar arasında değişmektedir.
network.host: "0.0.0.0"
discovery.zen.ping.unicast.hosts: [ES_NODE_2] (Diğer hostların İPleri - Diğer hostlarda ElasticSearch Node'u çalıştırıldığınız varsayıyoruz.)
cluster.name="cluster_adı" (belirtmezseniz elasticserach , default cluster adıdır.Pratikte belirtmeniz önerilir.)
Not: İsterseniz hangi node'un Master nodu,Data node'u veya Client node'u olcağını belirtebilirsiniz. (master.node: true, data.node: false vb. gibi)
ElasticSearch'i çalıştırdıktan bir süre sonra Node'ların cluster'a katıldıklarını görüceksiniz.
Cluster oluşup oluşmadığını öğrenmek için,
curl http://localhost:9200/_cluster/health?pretty=true demeniz yeterli.Burda dikkat etmeniz gereken bölüm,
"status" bölümüdür.
Red: Cluster'ın hiç bir şekilde oluşmadığını belirtir.
Yellow: Cluster'da sadece bir veya birden fazla node'un beklenmekte olduğunu belirtir.
Green: Cluster'ın sağlıklı bir şekilde çalıştığını belirtir.
9200: logstash ve benzeri log merkezinden gönderilen logları aldığı port
9300: diğer ElasticSearch node'ları ile haberleşme bu port üzerinden sağlanır.
ElasticSearch hakkında daha fazla bilgi için (https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html)
4. Kibana
Kibana, browser üzerinden logları görmemizi sağlar.
Gelen logların zamanı sizin zaman diliminize göre gösterilir.Bunu Kibana ayar menüsünden değiştirebilirsiniz.
ElasticSearch ve Kibana'nın aynı host üzerinde olması önerilir.
Kibana'yı service kibana start diyerek çalıştırabilirsiniz.
Kibana ile ilgili daha fazla bilgi için (https://www.elastic.co/guide/en/kibana/current/kibana-server-properties.html)
-
Güzel bir konu, veeeee tabikide 0 yanıt :D güzel başlık, güzel açıklamalar, teşekkürler :)
-
Tesekkurler hocam, pek bilinmedik konuya sirket icabi el attim sirket icin dokuman hazirladim (tabikide daha ayrintili anlatabilirim) paylasayim dedim.
-
ustam simdi tam olarak nedir bu ne işe yarıyor log olarak neleri tutuyor bu program hakkında bilgi verebilirmisin?
-
Reskam bunu yazdı
ustam simdi tam olarak nedir bu ne işe yarıyor log olarak neleri tutuyor bu program hakkında bilgi verebilirmisin?
Yazılımda işinde süreçleri,
veya işletim sistemleri günlükleri veya özel programları sitesinde araştırabilirsin.
Looking here