ElasticsearchOpen Source

Elastic Stack Nedir? Linux Debian Üzerinde Elastic Stack(ELK) 8.x Kurulumu

Elastic Stack Nedir? Debian Üzerinde Elastic Stack 8.x ElasticSearch, Logstash ve Kibana, Beats Kurulumu!

Tanıtım

Elastic Stack açık kaynak olarak geliştirilen veri analiz ve yönetim platformudur. Farklı noktalardan bir noktaya veri toplayarak gerçek zamanlı olarak arama yapabilir, analiz edebilir, verileri filtreleyebilir ve görselleştirebilirsiniz. Network logları, sistem logları gibi bir çok verileri toplayarak analiz etmenize olanak tanır.

Geleneksel olarak üç ana bileşenden oluşan Elk Yığını, ElasticSearch, Logstash ve Kibana, bu birleşiminden ayrıldı ve “Beats” adı verilen dördüncü bir öğeyle birlikte kullanılabilir hale getirildi. Beats uygulamasıda eklenerek proje geliştirildi ve Elastic Stack olarak yeniden adlandırıldı.

Elastic Stack‘te veri toplama ve toplanan verileri işleme görevi Logstash‘ın sorumluluğundaydı, Logstash doğal tasarım sorunları nedeniyle, özellikle büyük ve karmaşık işlem hatlarında performans sorunları ile karşılaşıldı ve bu sebeple bu işlemi başka araçlara devretme fikri ortaya çıktı ve “Beats” adı verilen yeni ve geliştirilmiş bir protokol tanıtıldı.

Beats, logları toplamak için altyapınızdaki farklı sunuculara yüklenen agent gibi davranan hafif, kaynak açısından verimli, küçük ve açık kaynaklı veri toplayıcısıdır. Veriler toplandıktan sonra, ek işleme için doğrudan Elasticsearch’e veya Logstash’a gönderilir.

ElasticSearch, Tam metinli bir arama motorudur.

Logstash, Verileri toplar ve belirlediğiniz filtrelere göre çıktılar üreterek elasticsearch’e aktarır. İşleyiş sırasıyla şu şekildedir.

  • INPUT : Veri kaynağı girilir.
  • FILTER : Veriler nasıl parse edileceği bilgisi girilir.
  • OUTPUT : Verilerin iletileceği adres bilgisi girilir.

Kibana, Toplanan verilerin görselleştirilmesini sağlar.

Beats, (Filebeat, Winlogbeat, Packetbeat vs.) Veri iletme platformu, Logstash ve Elasticsearch’e veri gönderimini gerçekleştirir.

Elastic Stack 8.x Kurulumu

Elastic Stack’i sanal ortamımızda Debian üzerine kurulunu yapacağız.

Önemli: Elastic Stack’i kurulumunda tüm platformların aynı sürümde olmasına dikkat etmelisiniz. Örneğin, Elasticsearch 8.1.3 kullanıyorsanız, Beats 8.1.3, Elasticsearch 8.1.3, Kibana 8.1.3 ve Logstash 8.1.3’ü yüklemelisiniz.

Kurulum Sıralaması

  1. Elasticsearch
  2. Kibana
  3. Logstash
  4. Beats

Bu sırayla kurulum, her platformun bağlı olduğu paketlerin yerinde olmasını sağlar.

OpenJDK Kurulumu

Elasticsearch java tabanlı olduğundan dolayı OpenJDK veya Oracle JDK uyumlu versiyonun kurulu olduğundan emin olmalısınız. İlk olarak elasticsearch için Java versiyon bilgilerinin kontrol edilmesi ve uyumlu Java versiyonunun yüklenmesi gerekmektedir.

Not : Sunucunuzda Elasticsearch ve Logstash için uyumlu olan Java 8 veya Java 11 kurulu olması gerekmektedir.

Bunun için önce bir terminal açıp aşağıdaki komutla Java versiyon bilgisi kontrol edilir.

java -version

Çıktı şöyle görülmelidir.

Java LTS sürüm 8, resmi Debian Buster depolarında mevcut değildir. Bu sebeple OpenJDK paketleri sağlayan AdoptOpenJDK deposunu eklememiz gerekli.

  1. Önce paketleri güncelleyerek HTTPS depolara erişim sağlamak için “apt-transport-https” paketinin kurulması gerekmektedir. Aşağıdaki komut ile bu paketi kurulumunu gerçekleştirin.
sudo apt update
sudo apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common

2.Aşağıdaki komut ile GPG anahtarını içe aktarın.

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -

3. AdoptOpenJDK APT deposunu sisteminize ekleyin.

sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

4. Depo eklendikten sonra paket listesini güncelleyerek Java 8’i yükleyin.

sudo apt update
sudo apt install adoptopenjdk-8-hotspot

Son olarak Java sürümünü kontrol edin.

java -version

Ngnix Kurulumu

Nginx’i varsayılan olarak Debian depolarında olduğundan dolayı aşağıdaki komutla Nginx kurulumunu yapabilirsiniz.

sudo apt-get install nginx

ElasticSearch Kurulumu

İlk olarak genel imzalama anahtarını GPG indirin ve yükleyin.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Depoyu aşağıdaki komut ile kaydedin.

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Depoyu ekledikten sonra aşağıdaki komutla paket listesini güncelleyip elasticsearch paketini yükleyin.

sudo apt-get update && sudo apt-get install elasticsearch

ÖNEMLİ! ElasticSearch yüklemesi tamamlandığında “elastic” kullanıcısı için şifre bilgisi aşağıdaki gibi yazacaktır.

Elasticsearch nasıl hareket edeceğini kontrol etmek için elasticsearch.yml konfigürasyon dosyasını kullanır. Konfigürasyon dosyasını düzenlemek için nano komutu ile açalım.

sudo nano /etc/elasticsearch/elasticsearch.yml

Konfigürasyon dosyasını açtıktan sonra aşağıdaki satırları bulalım.

#network.host: 192.168.0.1
#http.port: 9200

İki satırın başında bulunan (#) işareti kaldırarak aşağıdaki gibi düzenleyin.

network.host: 192.168.2.66
http.port: 9200

Elasticsearch JVM Ayarlarını Ayarlayın

Ardından, JVM yığın boyutunu, bellek miktarınızın yarısından fazla olmayacak şekilde yapılandırın. Şuan sunucuda totalde 4 gb bellek bulunmakta, ben 2 gb olarak yapılandırıyorum. JVM yığın boyutunu ayarlamak için aşağıdaki komutu çalıştırarak konfigürasyon dosyasını açıyoruz.

nano /etc/elasticsearch/jvm.options

Dosyayı kaydedin ve çıkın.

Elasticsearch’ü başlatın

Elasticsearch’ü başlatmak için aşağıdaki komutu çalıştırın. (Servisin başlaması uzun sürebilir.)

sudo systemctl start elasticsearch.service

Servisin önyüklemede başlatılması için aşağıdaki komutu girin.

sudo systemctl enable elasticsearch.service 

Aşağıdaki curl komutunu kullanarak elasticsearch durumunu kontrol edebilirsiniz. IP adresini uygun şekilde değiştirin.

curl https://192.168.2.66:9200 --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic

Aşağıdaki gibi bir çıktı alırsanız herşey yolunda demektir.

Ayrıca, bağlantı noktalarının açık olup olmadığını kontrol edin.

ss -altnp | grep 9200

Kibana Kurulumu

Daha sonrasında ise Kibana kurulumu önerilir. Kibana’yı kurmak için aşağıdaki komutu çalıştırın.

sudo apt-get install kibana

Kibana Yapılandırılması

Kibana’yı makinemize kurduktan sonra yapılandırma için aşağıdaki komutu çalıştırın.

sudo nano /etc/kibana/kibana.yml

Etkinleştirmek istediğimiz konfigürasyonların başındaki “#” işareti silin.

#server.port: 5601
#server.host: "your-hostname"

Yukarıda belirtilen satırlar aşağıdaki gibi görünmelidir:

server.port: 5601
server.host: "192.168.2.66"

Ardından, aşağıdaki komutu kullanarak Kibana için bir kayıt jetonu oluşturun, oluşturulan jetonu bir yere kayıt edin.

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
  • xpack.encryptedSavedObjects.encryptionKey: Panolar ve görselleştirmeler gibi saklanan nesneleri şifrelemek için kullanılır.
  • xpack.reporting.encryptionKey: Kaydedilmiş raporları şifrelemek için kullanılır.
  • xpack.security.encryptionKey: Oturum bilgilerini şifrelemek için kullanılır.

Kibana için şifreleme anahtarlarını oluşturmak için aşağıdaki komutu çalıştırın.

/usr/share/kibana/bin/kibana-encryption-keys generate

Daha sonrasında oluşturulan anahtarları kibana.yml dosyasına aşağıdaki komutla ekleyin.

echo -e "xpack.encryptedSavedObjects.encryptionKey: ebbb5582df530cb7043a5db7171fdd61
xpack.reporting.encryptionKey: a69ac8838bd9c26591f93e2bad796a22
xpack.security.encryptionKey: 3520c1cadbe1c3399a1a89b1936817d9" >> /etc/kibana/kibana.yml

Kibana ekranına erişmek için “5601″ numaralı bağlantı noktasındaki trafiğe izin vermeniz gerekir. Aşağıdaki komutu çalıştırarak port trafiğine izin verin.

sudo ufw allow 5601/tcp

Sonrasında ise aşağıdaki komutları çalıştırıp servisleri başlatıp, etkinleştirin.

sudo systemctl start kibana
systemctl enable --now kibana

Kibana durumunu kontrol edin.

systemctl status kibana
http://192.168.2.66:5601/?code=941142

Daha sonrasında tarayıcı adres kısmına yukarıda verilen url adresini kullanarak erişebilirsiniz.

Kibana arayüzüne eriştikten sonra, hoş geldiniz sayfasında Elastic’i yapılandırmanız istenecektir. Yukarıda oluşturduğumuz token’i kutuya yapıştırıp “Configure Elastic” butonuna tıklayın.

Daha sonrasında oluşturulan Elastic kullanıcı kimlik bilgilerini kullanarak giriş yapın.

Logstash Kurulumu

Aşağıdaki komutu çalıştırarak Logstash’i yükleyin.

sudo apt-get install logstash

Logstash hizmetini başlatın

sudo systemctl start logstash

Hizmeti etkinleştirin

sudo systemctl enable logstash

Logstash servisinin durumunu kontrol etmek için aşağıdaki komutu çalıştırın:

sudo systemctl status logstash

Filebeat Kurulumu

En yaygın kullanılan Beats modülüdür. Kurulumu gerçekleştirmek için aşağıdaki komutu çalıştırın.

sudo apt-get install filebeat

Filebeat, varsayılan olarak verileri Elasticsearch’e gönderir. Filebeat verilerini Logstash’e göndermek için de yapılandırılabilir.

Filebeat’i Başlatın ve Etkinleştirin

sudo systemctl start filebeat
sudo systemctl enable filebeat

Mert KUL

Merhaba, 1995 Balıkesir doğumluyum. Balıkesir Üniversitesi Bilgisayar Teknolojileri ve Programcılığı mezunuyum. Şuan özel bir şirkette IT Specialists pozisyonunda görev yapıyorum. Bilişim Teknolojileri alanında kendimi geliştirmeye devam ediyorum.

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kamu Personel Alımı