ELK Stack Nedir? Kurulum ve Kullanımı Hakkında Kapsamlı Bir Rehber
Giriş
ELK Stack, Elasticsearch, Logstash ve Kibana’nın kısaltmasıdır ve büyük miktarda veriyi aramak, analiz etmek ve görselleştirmek için kullanılan güçlü bir araç setidir. Bu makalede, ELK Stack’in ne olduğu, bileşenlerinin detayları, kurulumu ve nasıl kullanıldığı hakkında kapsamlı bilgi verilecektir.
ELK Stack Bileşenleri
1. Elasticsearch
Elasticsearch, Apache Lucene üzerine inşa edilmiş açık kaynaklı bir arama ve analitik motorudur. Yüksek performanslı tam metin araması, yapılandırılmış arama ve analiz sağlar. Elasticsearch, özellikle büyük veri kümelerini hızla sorgulama ve analiz etme yeteneği ile bilinir.
2. Logstash
Logstash, sunuculardan, veri tabanlarından ve uygulamalardan veri toplamak, işlemek ve bu verileri Elasticsearch’e göndermek için kullanılan açık kaynaklı bir veri işleme hattıdır. Logstash, çeşitli kaynaklardan gelen veriyi filtreler, dönüştürür ve gerektiği gibi yönlendirir.
3. Kibana
Kibana, Elasticsearch üzerinde depolanan verileri görselleştirmek için kullanılan açık kaynaklı bir kullanıcı arayüzüdür. Kullanıcılar, verilerini keşfetmek, analiz etmek ve çeşitli grafikler, tablolar ve haritalar oluşturmak için Kibana’yı kullanır.
ELK Stack’in Kullanım Alanları
- Günlük (Log) Analizi: Sunucu günlüklerini toplamak ve analiz etmek için kullanılır.
- Uygulama Performans İzleme: Uygulamaların performansını izlemek ve sorunları tespit etmek için kullanılır.
- Güvenlik Bilgisi ve Olay Yönetimi (SIEM): Güvenlik olaylarını izlemek ve analiz etmek için kullanılır.
- İş Zekası: İşletme verilerini analiz etmek ve raporlamak için kullanılır.
Kurulum
1. Elasticsearch Kurulumu
Elasticsearch kurulumu oldukça basittir. Aşağıdaki adımlar, Ubuntu üzerinde Elasticsearch kurulumunu göstermektedir.
- Depo Anahtarını Ekleme:
bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- Elasticsearch Deposunu Ekleme:
bash
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
- Depo Güncelleme ve Elasticsearch Kurulumu:
bash
sudo apt-get update
sudo apt-get install elasticsearch
- Elasticsearch Servisini Başlatma ve Otomatik Başlatma İçin Ayarlama:
bash
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
2. Logstash Kurulumu
- Logstash Paketini Kurma:
bash
sudo apt-get install logstash
- Logstash Konfigürasyonu: Logstash konfigürasyon dosyaları genellikle
/etc/logstash/conf.d/
dizininde bulunur. Basit bir örnek konfigürasyon dosyası aşağıdaki gibidir:confinput {
beats {
port => 5044
}
}filter {
grok {
match => { "message" => "%{COMMONAPACHELOG}" }
}
}output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
- Logstash Servisini Başlatma:
bash
sudo systemctl start logstash
sudo systemctl enable logstash
3. Kibana Kurulumu
- Kibana Paketini Kurma:
bash
sudo apt-get install kibana
- Kibana Konfigürasyonu: Kibana konfigürasyon dosyası
/etc/kibana/kibana.yml
içinde bulunur. Aşağıdaki temel ayarları yapın:yamlserver.port: 5601
server.host: "your_server_ip"
elasticsearch.hosts: ["http://localhost:9200"]
- Kibana Servisini Başlatma:
bash
sudo systemctl start kibana
sudo systemctl enable kibana
4. Filebeat Kurulumu (Opsiyonel)
Filebeat, sistem günlüklerini toplayan hafif bir log göndericidir.
- Filebeat Paketini Kurma:
bash
sudo apt-get install filebeat
- Filebeat Konfigürasyonu: Filebeat konfigürasyon dosyası
/etc/filebeat/filebeat.yml
içinde bulunur. Basit bir örnek konfigürasyon aşağıdaki gibidir:yamlfilebeat.inputs:
- type: log
paths:
- /var/log/*.logoutput.logstash:
hosts: ["localhost:5044"]
- Filebeat Servisini Başlatma:
bash
sudo systemctl start filebeat
sudo systemctl enable filebeat
Kullanım
Verilerin Toplanması ve İşlenmesi
Logstash, çeşitli kaynaklardan veri toplayabilir ve bu verileri Elasticsearch’e gönderebilir. Logstash’in gücü, giriş (input), filtre (filter) ve çıkış (output) plugin’lerinin esnekliğinde yatar. Örneğin, Apache sunucu günlüklerini toplamak ve işlemek için aşağıdaki Logstash konfigürasyonu kullanılabilir:
input {
file {
path => "/var/log/apache2/access.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "apache-logs-%{+YYYY.MM.dd}"
}
}
Verilerin Görselleştirilmesi
Kibana, Elasticsearch üzerinde depolanan verileri görselleştirmek için kullanılır. Kibana’ya erişmek için tarayıcınızdan http://your_server_ip:5601
adresine gidin.
- Index Pattern Oluşturma: Kibana’nın Elasticsearch’ten veri alabilmesi için bir index pattern oluşturmanız gerekir. Örneğin,
logstash-*
olarak bir index pattern belirleyebilirsiniz. - Dashboard ve Visualizations: Kibana, verilerinizi çeşitli grafikler ve tablolar kullanarak görselleştirmenize olanak tanır. Aşağıda birkaç örnek görselleştirme türü bulunmaktadır:
- Bar Chart (Çubuk Grafik): Zaman içinde belirli bir olayın sıklığını göstermek için kullanılır.
- Line Chart (Çizgi Grafik): Zaman içindeki trendleri göstermek için kullanılır.
- Pie Chart (Pasta Grafik): Verinin farklı dilimlerinin oranlarını göstermek için kullanılır.
- Data Table (Veri Tablosu): Verileri tablo halinde görüntülemek için kullanılır.
Dashboards ve Alerts
Kibana, kullanıcıların özel panolar (dashboards) oluşturmasına ve bu panolarda çeşitli görselleştirmeleri bir araya getirmesine olanak tanır. Ayrıca, belirli kriterler karşılandığında bildirimler göndermek için uyarılar (alerts) da ayarlanabilir.
Sonuç
ELK Stack, büyük miktarda veriyi toplamak, işlemek, analiz etmek ve görselleştirmek için güçlü ve esnek bir çözümdür. Elasticsearch, hızlı ve güçlü arama yetenekleri sunarken, Logstash verileri çeşitli kaynaklardan toplayıp işleyebilir ve Kibana bu verileri görselleştirmenize olanak tanır. ELK Stack, günümüzün veri yoğun dünyasında önemli bir rol oynamaktadır ve doğru kullanıldığında işletmelerin operasyonlarını optimize etmelerine ve daha bilinçli kararlar almalarına yardımcı olabilir.
Bu makalede, ELK Stack’in temel bileşenleri, kurulumu ve kullanımı hakkında kapsamlı bir rehber sunulmuştur. Bu bilgilerle, kendi ELK Stack kurulumunuzu yapabilir ve büyük veri analizinde bu güçlü araç setini kullanmaya başlayabilirsiniz.