Takip et

Elasticsearch 1.7, Logstash 1.5 ve Kibana 4.1 (ELK Stack) CentOS 7 Üzerine Kurulumu

Elasticsearch 1.7, Logstash 1.5 ve Kibana 4.1 (ELK Stack) CentOS 7 Üzerine Kurulumu Günümüzün veri odaklı dünyasında, log yönetimi ve analiz

Elasticsearch 1.7, Logstash 1.5 ve Kibana 4.1 (ELK Stack) CentOS 7 Üzerine Kurulumu

Günümüzün veri odaklı dünyasında, log yönetimi ve analizi, sistemlerin sağlığını izlemek, güvenlik tehditlerini tespit etmek ve operasyonel verimliliği artırmak için hayati öneme sahiptir. Elasticsearch, Logstash ve Kibana’dan oluşan ELK Stack (şimdiki adıyla Elastic Stack), bu ihtiyaçları karşılamak için güçlü ve esnek bir çözüm sunar. Bu makalede, özellikle eski sistemlerle uyumluluk veya belirli proje gereksinimleri nedeniyle tercih edilebilecek olan Elasticsearch 1.7, Logstash 1.5 ve Kibana 4.1 versiyonlarının CentOS 7 işletim sistemi üzerine adım adım nasıl kurulacağını detaylı bir şekilde inceleyeceğiz. Bu eski sürümler, modern ELK Stack’in sunduğu bazı gelişmiş özelliklerden yoksun olsa da, belirli senaryolarda hala geçerli ve işlevsel bir çözüm sunabilir.

ELK Stack Nedir?

ELK Stack, üç ana bileşenden oluşan güçlü bir log yönetimi ve analiz platformudur:

* Elasticsearch: Dağıtık, RESTful, analitik bir arama motorudur. Logstash tarafından toplanan ve işlenen verileri indeksler ve depolar. Hızlı arama, analiz ve büyük veri kümeleri üzerinde karmaşık sorgular yapma yeteneğiyle bilinir.
* Logstash: Dinamik veri işlem hattıdır. Çeşitli kaynaklardan (dosyalar, sistem logları, ağ protokolleri vb.) veri toplar, bu verileri dönüştürür ve zenginleştirir (örneğin, yapılandırılmamış log satırlarını yapılandırılmış JSON nesnelerine dönüştürür) ve ardından Elasticsearch’e gönderir.
* Kibana: Elasticsearch’te depolanan verileri görselleştirmek için kullanılan bir web arayüzüdür. Kullanıcıların log verilerini sorgulamasına, grafikler, tablolar ve panolar oluşturarak verileri anlamasına olanak tanır.

Bu üç bileşen birlikte çalışarak, log verilerini toplama, işleme, depolama ve görselleştirme konusunda kapsamlı bir çözüm sunar.

Ön Gereksinimler

Kuruluma başlamadan önce, aşağıdaki ön gereksinimlerin karşılandığından emin olun:

* CentOS 7 İşletim Sistemi: Temiz bir CentOS 7 kurulumu önerilir.
* Root veya Sudo Yetkileri: Kurulum adımları için yönetici yetkileri gereklidir.
* İnternet Bağlantısı: Paket indirmeleri için aktif internet bağlantısı olmalıdır.
* Minimum Donanım: En az 2 GB RAM ve 2 CPU çekirdeği önerilir. Daha büyük log hacimleri için daha fazla kaynak gerekebilir.
* Java Geliştirme Kiti (JDK): Elasticsearch ve Logstash, çalışmak için Java’ya ihtiyaç duyar. Bu sürümler için Java 7 veya Java 8 gereklidir. Bu makalede OpenJDK 8 kuracağız.

Adım 1: Java Geliştirme Kitini (JDK) Kurma

Elasticsearch 1.7 ve Logstash 1.5, Java ortamında çalıştığı için ilk olarak Java 8’i kurmamız gerekiyor.

Java Kurulumu

CentOS 7 üzerinde OpenJDK 8’i kurmak için aşağıdaki komutları kullanın:

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

Kurulum tamamlandıktan sonra, Java sürümünü doğrulayın:

java -version

Çıktı aşağıdaki gibi olmalıdır (sürüm numaraları farklılık gösterebilir):

openjdk version "1.8.0_XXX"
OpenJDK Runtime Environment (build 1.8.0_XXX-bXX)
OpenJDK 64-Bit Server VM (build 25.XXX-bXX, mixed mode)

Adım 2: Elasticsearch 1.7 Kurulumu

Elasticsearch, ELK Stack’in merkezidir ve tüm log verilerini depolayan ve indeksleyen bileşendir.

Elasticsearch Deposu Ekleme

Elasticsearch’ü yum paket yöneticisi aracılığıyla kurmak için, Elastic deposunu sisteminize eklemeniz gerekir. Öncelikle Elastic GPG anahtarını içe aktarın:

sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Ardından, Elasticsearch 1.x serisi için bir yum depo dosyası oluşturun. /etc/yum.repos.d/elasticsearch.repo dosyasını aşağıdaki içerikle oluşturun:

sudo vi /etc/yum.repos.d/elasticsearch.repo

Dosyaya aşağıdaki içeriği ekleyin:

[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=https://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Kaydedin ve çıkın (:wq).

Elasticsearch 1.7 Paketini Kurma

Depoyu ekledikten sonra Elasticsearch 1.7’yi kurabilirsiniz:

sudo yum install elasticsearch-1.7.6 -y

Not: 1.7.6 en kararlı 1.7 sürümüdür. İsterseniz başka bir 1.7.x sürümünü belirtebilirsiniz.

Elasticsearch Yapılandırması

Elasticsearch’ün ana yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml adresindedir. Bu dosyayı düzenleyerek temel ayarları yapabiliriz.

sudo vi /etc/elasticsearch/elasticsearch.yml

Aşağıdaki satırları bulun ve düzenleyin veya ekleyin:

# Elasticsearch kümenizin adı. Tüm düğümler aynı küme adını paylaşmalıdır.
cluster.name: elk-cluster-1.7

Bu düğümün adı.

node.name: node-1

Elasticsearch'ün hangi IP adresinde dinleyeceğini belirtir.

Yalnızca localhost'tan erişime izin vermek için 127.0.0.1 kullanın.

Tüm ağ arayüzlerinden erişime izin vermek için 0.0.0.0 kullanın.

network.host: 0.0.0.0

HTTP portu. Varsayılan 9200'dür.

http.port: 9200

Veri ve log dizinleri. Varsayılan değerler genellikle iyidir.

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 0.0.0.0 ayarı, Elasticsearch’ün sunucunun tüm IP adreslerinden erişilebilir olmasını sağlar. Güvenlik açısından, eğer sadece yerel uygulamaların erişmesi gerekiyorsa 127.0.0.1 olarak bırakmak daha iyidir. Ancak ELK Stack’in diğer bileşenleri (Logstash, Kibana) farklı sunucularda çalışıyorsa veya ağ üzerinden erişim gerekiyorsa 0.0.0.0 veya belirli bir IP adresi belirtilmelidir.

Elasticsearch Servisini Başlatma ve Etkinleştirme

Yapılandırmayı tamamladıktan sonra Elasticsearch servisini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl daemon-reload
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Elasticsearch Durumunu Doğrulama

Elasticsearch’ün doğru çalıştığını kontrol etmek için aşağıdaki curl komutunu kullanın:

curl -X GET 'http://localhost:9200/'

Aşağıdakine benzer bir çıktı almalısınız:

{
  "name" : "node-1",
  "cluster_name" : "elk-cluster-1.7",
  "version" : {
    "number" : "1.7.6",
    "build_hash" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "build_timestamp" : "2016-04-06T13:46:17Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

Güvenlik Duvarı Ayarları

Eğer sunucunuzda firewalld etkinse, dışarıdan erişime izin vermek için Elasticsearch’ün 9200 portunu açmanız gerekir:

sudo firewall-cmd --add-port=9200/tcp --permanent
sudo firewall-cmd --reload

Adım 3: Logstash 1.5 Kurulumu

Logstash, çeşitli kaynaklardan logları toplayan, işleyen ve Elasticsearch’e gönderen veri işlem hattıdır.

Logstash Deposu Ekleme

Logstash 1.5 için de Elastic deposunu kullanacağız. Elasticsearch için zaten GPG anahtarını içe aktardığımızdan, sadece depo dosyasını oluşturmamız yeterlidir. /etc/yum.repos.d/logstash.repo dosyasını aşağıdaki içerikle oluşturun:

sudo vi /etc/yum.repos.d/logstash.repo

Dosyaya aşağıdaki içeriği ekleyin:

[logstash-1.5]
name=Logstash repository for 1.5.x packages
baseurl=https://packages.elastic.co/logstash/1.5/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Kaydedin ve çıkın.

Logstash 1.5 Paketini Kurma

Depoyu ekledikten sonra Logstash 1.5’i kurabilirsiniz:

sudo yum install logstash-1.5.6 -y

Not: 1.5.6 en kararlı 1.5 sürümüdür. İsterseniz başka bir 1.5.x sürümünü belirtebilirsiniz.

Logstash Yapılandırması

Logstash, giriş (input), filtre (filter) ve çıkış (output) bölümlerinden oluşan yapılandırma dosyaları aracılığıyla çalışır. Yapılandırma dosyaları genellikle /etc/logstash/conf.d/ dizininde bulunur. Bir örnek yapılandırma dosyası oluşturalım. Bu örnekte, sistem loglarını (syslog) dinleyip Elasticsearch’e göndereceğiz.

sudo vi /etc/logstash/conf.d/02-syslog-input.conf

Dosyaya aşağıdaki içeriği ekleyin:

input {
  syslog {
    port => 5140
    type => "syslog"
  }
}

Kaydedin ve çıkın. Bu, Logstash’in 5140 numaralı TCP portunda syslog girişlerini dinlemesini sağlar.

Şimdi bir filtre yapılandırması oluşturalım. Bu filtre, gelen syslog mesajlarını ayrıştırır ve yapılandırılmış alanlara dönüştürür:

sudo vi /etc/logstash/conf.d/03-syslog-filter.conf

Dosyaya aşağıdaki içeriği ekleyin:

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Kaydedin ve çıkın.

Son olarak, işlenen verileri Elasticsearch’e gönderecek bir çıkış yapılandırması oluşturalım:

sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf

Dosyaya aşağıdaki içeriği ekleyin:

output {
  elasticsearch {
    host => "localhost" # Elasticsearch sunucusunun IP adresi veya hostname
    protocol => "http"
    port => "9200"
    cluster => "elk-cluster-1.7" # Elasticsearch küme adı
  }
  stdout { codec => rubydebug } # Hata ayıklama için konsola çıktı verir
}

Kaydedin ve çıkın. stdout { codec => rubydebug } satırı, Logstash’in işlediği verileri konsola da yazdırmasını sağlar, bu da sorun giderme için faydalıdır. Üretim ortamında kaldırılabilir.

Logstash Servisini Başlatma ve Etkinleştirme

Yapılandırmayı tamamladıktan sonra Logstash servisini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl daemon-reload
sudo systemctl start logstash
sudo systemctl enable logstash

Logstash Durumunu Doğrulama

Logstash’in durumunu kontrol etmek için:

sudo systemctl status logstash

Logstash’in doğru çalıştığından emin olmak için loglarını kontrol edebilirsiniz:

sudo tail -f /var/log/logstash/logstash.log

Güvenlik Duvarı Ayarları

Eğer Logstash’i başka bir sistemden log almak üzere yapılandırdıysanız (bu örnekte 5140 portu), bu portu güvenlik duvarında açmanız gerekir:

sudo firewall-cmd --add-port=5140/tcp --permanent
sudo firewall-cmd --reload

Adım 4: Kibana 4.1 Kurulumu

Kibana, Elasticsearch’teki verileri görselleştirmek ve analiz etmek için kullanılan web tabanlı bir arayüzdür. Kibana 4.1, genellikle bir .tar.gz arşivi olarak dağıtılır ve manuel olarak kurulur.

Kibana 4.1 İndirme

Kibana 4.1.x’i Elastic’in arşivlenmiş sürümlerinden indirebiliriz. Örnek olarak 4.1.1 sürümünü kullanalım:

cd /opt
sudo wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz

Kibana Arşivini Çıkarma

İndirilen arşivi /opt dizinine çıkarın:

sudo tar -zxvf kibana-4.1.1-linux-x64.tar.gz
sudo mv kibana-4.1.1-linux-x64 kibana-4.1.1

Kibana’nın daha kısa bir yoldan erişilebilir olması için sembolik bir bağ oluşturabilirsiniz:

sudo ln -s /opt/kibana-4.1.1 /opt/kibana

Kibana Kullanıcısı Oluşturma

Kibana’yı güvenli bir şekilde çalıştırmak için özel bir kullanıcı oluşturalım:

sudo groupadd kibana
sudo useradd -g kibana kibana

Kibana dizininin sahipliğini oluşturduğumuz kullanıcıya verin:

sudo chown -R kibana:kibana /opt/kibana-4.1.1
sudo chown -R kibana:kibana /opt/kibana

Kibana Yapılandırması

Kibana’nın ana yapılandırma dosyası /opt/kibana/config/kibana.yml adresindedir. Bu dosyayı düzenleyerek temel ayarları yapabiliriz.

sudo vi /opt/kibana/config/kibana.yml

Aşağıdaki satırları bulun ve düzenleyin veya ekleyin:

# Kibana'nın dinleyeceği port. Varsayılan 5601'dir.
server.port: 5601

Kibana'nın dinleyeceği IP adresi.

Yalnızca localhost'tan erişime izin vermek için "localhost" kullanın.

Tüm ağ arayüzlerinden erişime izin vermek için "0.0.0.0" kullanın.

server.host: "0.0.0.0"

Elasticsearch örneğinizin URL'si.

elasticsearch.url: "http://localhost:9200"

Elasticsearch'e veri yazmak için kullanılan dizin.

kibana.index: ".kibana"

Kibana'nın log seviyesi.

logging.verbose: false

server.host: "0.0.0.0" ayarı, Kibana’nın sunucunun tüm IP adreslerinden erişilebilir olmasını sağlar. Güvenlik açısından, eğer sadece yerel uygulamaların erişmesi gerekiyorsa "localhost" olarak bırakmak daha iyidir.

Kibana için Systemd Servisi Oluşturma

Kibana’yı bir servis olarak yönetmek için bir Systemd servis dosyası oluşturalım:

sudo vi /etc/systemd/system/kibana.service

Dosyaya aşağıdaki içeriği ekleyin:

[Unit]
Description=Kibana 4.1
After=elasticsearch.service

[Service]
ExecStart=/opt/kibana/bin/kibana
WorkingDirectory=/opt/kibana
Environment=NODE_ENV=production
User=kibana
Group=kibana
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=kibana

[Install]
WantedBy=multi-user.target

Kaydedin ve çıkın.

Kibana Servisini Başlatma ve Etkinleştirme

Systemd yapılandırmasını yeniden yükleyin, Kibana servisini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

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

Kibana Durumunu Doğrulama

Kibana’nın durumunu kontrol etmek için:

sudo systemctl status kibana

Güvenlik Duvarı Ayarları

Eğer sunucunuzda firewalld etkinse, Kibana’nın 5601 portunu dışarıdan erişime izin vermek için açmanız gerekir:

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload

Adım 5: ELK Stack’i Test Etme

Tüm bileşenler kurulduktan ve yapılandırıldıktan sonra, ELK Stack’in düzgün çalıştığını test edebiliriz.

Log Oluşturma

Logstash’in syslog girişini dinlediğini varsayarak, sunucunuzda bazı test logları oluşturun:

logger "Bu bir test mesajıdır, ELK Stack kurulumu başarılı."

Bu mesaj, Logstash tarafından yakalanmalı, işlenmeli ve Elasticsearch’e gönderilmelidir.

Kibana’ya Erişme

Web tarayıcınızı açın ve Kibana arayüzüne erişmek için sunucunuzun IP adresini veya hostname’ini ve 5601 portunu kullanın:

http://SUNUCU_IP_ADRESİ:5601

Kibana arayüzüne ilk kez eriştiğinizde, bir indeks deseni (index pattern) yapılandırmanız istenecektir. Logstash 1.5 varsayılan olarak logstash- şeklinde indeksler oluşturur. Bu nedenle, “Index name or pattern” alanına logstash- yazın ve “Create” butonuna tıklayın.

İndeks deseni oluşturulduktan sonra, sol taraftaki menüden “Discover” (Keşfet) sekmesine gidin. Burada, Logstash tarafından Elasticsearch’e gönderilen logları görmelisiniz. Oluşturduğunuz test mesajını da burada bulabilmeniz gerekir.

Sonuç

Bu makalede, Elasticsearch 1.7, Logstash 1.5 ve Kibana 4.1’den oluşan eski ELK Stack versiyonlarının CentOS 7 işletim sistemi üzerine nasıl kurulacağını adım adım detaylı bir şekilde anlattık. Bu süreç, Java kurulumundan başlayarak her bir bileşenin depo ekleme, paket yükleme, yapılandırma, servis yönetimi ve güvenlik duvarı ayarlarını kapsadı. Kurulumun sonunda, ELK Stack’in doğru çalıştığını doğrulamak için basit bir log oluşturup Kibana üzerinden görüntüleme adımlarını da tamamladık.

Bu eski sürümlerin kurulumu, modern Elastic Stack’in sunduğu bazı gelişmiş özelliklerden (örneğin, X-Pack güvenlik, Machine Learning, güncel API’ler) yoksun olsa da, belirli legacy sistemlerle uyumluluk veya belirli proje gereksinimleri için hala geçerli bir çözüm sunabilir. Ancak, yeni projeler için her zaman Elastic Stack’in en güncel ve desteklenen sürümlerini kullanmanız önerilir, çünkü bu sürümler performans iyileştirmeleri, yeni özellikler ve güvenlik güncellemeleri içerir.

Kurulum tamamlandıktan sonra, Kibana’da panolar ve görselleştirmeler oluşturarak log verilerinizden daha fazla anlam çıkarabilir, sistemlerinizi daha etkili bir şekilde izleyebilir ve potansiyel sorunları proaktif olarak tespit edebilirsiniz. Güvenlik açısından, üretim ortamlarında ELK Stack’i bir ters proxy (Nginx veya Apache) arkasına almak ve temel kimlik doğrulama eklemek gibi ek önlemler almanız şiddetle tavsiye edilir. Ayrıca, Elasticsearch kümesi için daha fazla düğüm ekleyerek veya Logstash ve Kibana’yı ayrı sunuculara taşıyarak ölçeklenebilirliği artırabilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version