CentOS/RHEL 7’de Elasticsearch, Logstash ve Kibana (ELK Stack) Kurulumu

Merhabalar,

Eskiden ELK Yığını olarak bilinen Elastik Yığın, herhangi bir biçimde herhangi bir kaynaktan oluşturulan logları aramanıza, analiz etmenize ve görselleştirmenize olanak tanıyan, merkezi log kaydı olarak bilinen bir uygulama olan Elastic tarafından üretilen bir açık kaynaklı yazılımdır. Merkezi log kaydı, sunucularınız veya uygulamalarınızla ilgili sorunları belirlemeye çalışırken çok yararlı olabilir, çünkü tüm logları tek bir yerde aramanıza olanak tanır. Belirli bir zaman aralığında logları ilişkilendirerek birden çok sunucuya yayılan sorunları belirlemenize olanak sağladığı için de yararlıdır.

Elastik Yığının dört ana bileşeni vardır:

Elasticsearch: Toplanan tüm verileri depolayan dağıtılmış bir RESTful arama motoru.

Logstash: Elastik Yığının gelen verileri Elasticsearch’e gönderen veri işleme bileşeni.

Kibana: Lolgarı aramak ve görselleştirmek için bir web arayüzü.

Beats: Yüzlerce veya binlerce makineden Logstash veya Elasticsearch’e veri gönderebilen hafif, tek amaçlı veri göndericileri.

Bu eğitimde, Elastic Stack’i bir CentOS 7 sunucusuna kuracaksınız.Logları ve dosyaları iletmek ve merkezileştirmek için kullanılan bir Beat olan Filebeat dahil olmak üzere Elastik Yığının tüm bileşenlerini nasıl kuracağınızı ve bunları sistem loglarını toplayıp görselleştirecek şekilde nasıl yapılandıracağınızı öğreneceksiniz. Ek olarak, Kibana normalde yalnızca yerel ana bilgisayarda mevcut olduğundan, bir web tarayıcısı üzerinden erişilebilir olması için proxy’yi Nginx’i kullanmanız gerekebilir. Bu makaleni sonunda, tüm bu bileşenlerin Elastik Yığın sunucusu olarak adlandırılan tek bir sunucuda kurulacatır.

 

Önkoşullar:

Bu makaleyi tamamlamak için aşağıdakilere ihtiyacınız olacak : Sudo ayrıcalıklarına ve güvenlik duvarına sahip kök olmayan bir kullanıcı da dahil olmak üzere, CentOS 7 ile İlk Sunucu Kurulumu izlenerek bir CentOS 7 sunucusu kurdum. Elastic Stack sunucunuzun ihtiyaç duyacağı CPU, RAM ve depolama miktarı, toplamayı düşündüğünüz logların yoğunluğuna bağlıdır. Bu eğitimde, Elastic Stack sunucumuz için aşağıdaki özelliklere sahip bir sunucu kullanacağım.

İşletim Sistemi: CentOS 7

RAM: 16GB

işlemci: 8

1. Adımımız Elasticsearch’ü Yükleme ve Yapılandırma Elastik Yığın bileşenleri varsayılan olarak paket yöneticisi aracılığıyla kullanılamaz, ancak bunları Elastic’in paket deposunu ekleyerek yum ile yükleyebilirsiniz. Sisteminizi paket sahtekarlığından korumak için tüm Elastic Stack paketleri, Elasticsearch imzalama anahtarıyla imzalanmıştır. Anahtar kullanılarak kimliği doğrulanmış paketler, paket yöneticiniz tarafından güvenilir olarak kabul edilecektir. Bu adımda, Elasticsearch’ü yüklemek için Elasticsearch genel GPG anahtarını içe aktaracak ve Elastic deposunu ekleyeceğiz.

 

 

Elasticsearch Java’ya bağlı olduğundan, Java’yı CentOS 7 sistemimize yüklememiz gerekir.

sudo yum -y install java-openjdk-devel java-openjdk

 

 

 

Kurulumdan sonra java versiyonunu kontrol ediyorum.

java -version

 

 

Java’yı yükledikten sonra,  ELK yığın paketleri sağlayan ELK yığın deposunu ekleyelim.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

 

 

Depoyu ekledikten sonra GPG anahtarını içe aktarın:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 

 

YUM paket dizininizi temizleyip güncelleyelim.

sudo yum clean all
sudo yum makecache

 

 

Elasticsearch deposu kullanıma hazır. Elasticsearch’ü aşağıdaki komutu kullanarak kurabilirim.

sudo yum -y install elasticsearch

Not: Elasticsearch’ün konfigürasyon dosyası YAML formatındadır, yani girinti çok önemlidir! Bu dosyayı düzenlerken fazladan boşluk eklemediğinizden emin olun.

Elasticsearch, 9200 nolu port üzerinden her yerden gelen trafiği dinler. Yabancıların verilerinizi okumasını veya REST API aracılığıyla Elasticsearch kümenizi kapatmasını önlemek için Elasticsearch örneğinize dışarıdan erişimi kısıtlamamanız gerekebilir.Evet Biz devam edelim.

 

Paket kurulumunu onaylayın.

rpm -qi elasticsearch

 

 

Şimdi Burada eğer java için ram düzenlemesi yapmak istiyorsak, dosyayı düzenleyerek bunu değiştirebiliriz : /etc/elasticsearch/jvm.options Aşağıdaki örnek, toplam yığın alanının başlangıç/maksimum boyutunu belirleyebiliriz.

-Xms4g

-Xmx4g

Eğer sizin Ram değerleriniz daha düşükse bu değerleri değiştiriniz.Benim makinemde 16GB olduğu için her hangi bir değişiklik yapmıyorum.

sudo  vi /etc/elasticsearch/jvm.options

 

 

Makinem yeniden başadığında elasticsearch servisinin otomatik olarak başlamasını istiyorum.Bu nedenle aşapıdaki komutları (systemctl enable elasticsearch) çalıştırıyorum.

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

 

Elasticsearch in çalıştığını doğrulamak için test edelim.Yerel node hakkında aşağıdaki gibi temel bilgileri gösteren bir yanıt göreceksiniz.

curl http://127.0.0.1:9200

 

Elasticsearch’ten sonraki bileşen olarak Kibana’yı kurmalıyız. Kibana’yı kurduktan sonra, Elasticsearch’ün depoladığı verileri aramak ve görselleştirmek için arayüzünü kullanabileceğiz. Elastic deposunu önceki adımda eklediğimiz için, yum kullanarak Elastic Stack’in kalan bileşenlerini kurabilirsiniz.

Kibana’yı eklenen Elasticsearch deposundan indirip kuralım.

sudo yum -y install kibana

 

 

Başarılı bir kurulumdan sonra Kibana’yı yapılandırın.Diğer ayarları istediğiniz gibi değiştirin ve kibana servisini başlatın:

Benim burada yaptığım 2 ayar mevcut

server.port : 5601

server.host: “10.10.10.9”

sudo vi /etc/kibana/kibana.yml

 

 

 

Diğer ayarları istediğiniz gibi değiştirin ve kibana servisini başlatalım.

sudo systemctl daemon-reload
sudo systemctl start kibana
sudo systemctl enable kibana

 

 

Şimdi tarayıcıdan erişimi kontrol ediyoruz.Arayüzü başarılı şekilde ulaşıyorum.Her şey yolunda..

 

 

 

Son kurulum Logstash içindir. Filebeat gibi bir aracı çalıştıran istemci sistemleriniz için merkezi bir günlük sunucusu görevi görecektir.Beats’in logları doğrudan Elasticsearch veritabanına göndermesi mümkün olsa da, önce verileri işlemek için Logstash’ı kullanmanızı öneririz. Bu, farklı kaynaklardan veri toplamanıza, ortak bir formata dönüştürmenize ve başka bir veritabanına aktarmanıza olanak tanır. 

 

Logstash’i kurduktan sonra, yapılandırmaya geçebilirsiniz. Logstash’ın yapılandırma dosyaları JSON biçiminde yazılır ve /etc/logstash/conf.d dizininde bulunur. Konfigüre ederken, Logstash’i bir uçtan veri alan, onu şu ya da bu şekilde işleyen ve hedefine (bu durumda hedef Elasticsearch’tir) gönderen bir ardışık düzen olarak düşünmek faydalı olacaktır. Bir Logstash işlem hattında, input ve output olmak üzere iki gerekli öğe ve isteğe bağlı bir öğe olan filter bulunur.İnput eklentileri bir kaynaktan veri alır, filter eklentileri verileri işler ve Output eklentileri verileri bir hedefe yazar.Şimdi kurulum adımı ile ilerleyelim.

 

sudo yum install logstash

 

Diğer ayarları istediğiniz gibi değiştirin ve logstash servisini başlatın:

systemctl daemon-reload
systemctl enable logstash
systemctl start logstash
systemctl status logstash

 

ELK stack in 3 bileşeni de kurduk ve başarılı şekilde çalışıyor.Bu makale çok uzun olduğu için  beat bileşeni ayrı bir makale yazacağım ve onunda linkini burada paylaşacağım.

Winlogbeat ile Windows Server Loglarını Elasticsearch` e aktarmak.

 

Umarım bu yazı sizler için faydalı olur.

 

Bu eğiticiye oy ver
[Total: 5 Average: 5]
Firat CANOĞLU TAĞ