Professional Documents
Culture Documents
ELK Stack
ELK Stack
ELK Stack açık kaynak kodlu yazılmış olan 4 farklı yazılımın birlikte çalışarak log
yönetimi sağladığı bir araçtır. Bu yapı sayesinde farklı vendor’ lar tarafından üretilen loglar
derinlemesine analiz edilerek aynı zamanda Web GUI aracılığıyla bir Dashboard üzerinden görsel
olarak grafiklendirilir. Sistem üzerinde bu yapıyı kurmadan önce yapıyı oluşturan yazılımlar
hakkında aşağıdaki gibi genel bir bilgiye sahip olabiliriz;
▪ Elasticsearch: Logların JSON biçiminde saklanmasında, sıralanmasında ve
spesifik ifadelerin aranması işlemlerine yardımcı olan bir araçtır. Bu yazılımın
temel özellikleri aşağıdaki gibidir;
✓ Bir arama motoru, sunucusudur.
✓ NoSQL tabanlı bir veri tabanıdır. Bu sayede sorgular sırasında SQL
kullanılmaz.
✓ Apache Lucune tabanlı RESTful API kullanır.
✓ Arama yapma sırasında kendisine ait oluşturduğu dizin yapısını kullanılır.
Bu sayede hızlı bir süreç sağlanır.
▪ Logstash: Sistem loglarını filtreleyen, toplayan ve ayrıştıran(parse) açık kaynak
kodlu bir araçtır. Bu yazılımın temel özellikleri aşağıdaki gibidir;
✓ Data pipeline aracıdır.
✓ Veri işlemeyi merkezileştirir.
✓ Çok çeşitli(vendor bağımsız) yapılandırılmış verileri ve olayları toplayarak
ayrıştırır ve analiz eder.
▪ Kibana: Verileri aramamızı, görüntülememizi ve derlememizi sağlayan bir Web
GUI ortamını sunan araçtır. Bu yazılımın temel özellikleri aşağıdaki gibidir;
✓ Görselleştirme
✓ Gerçek zamanlı analiz, özetleme, grafik ve hata ayıklama özellikleri sağlar.
✓ Arama yapılan logların, olayların anlık görüntülerini(snapshot)
paylaşılmasını sağlar.
▪ Beats: Çeşitli kaynaklardan(vendor) veri toplayarak bu verileri Logstash veya
Elasticsearch’ e aktarılmasını sağlayan bir araçtır.
Sistemde aktif bir şekilde çalışabilmesi için aşağıdaki servislere ihtiyaç duymaktadır,
ayrıca aşağıda gösterilen minimum sistem kaynaklarına sahip olunması gerekmektedir. Bu
servislerin yapılandırmalarında aşağıdaki tablo referans alınacaktır. Buradaki ELK kurulumu
sırasında ilgili paketleri yüklemeden önce herbiri için yeni bir “Repository” oluşturulacaktır. Bu
yüzden bu adımları sırasıyla aşağıdaki tabloyu referans alarak uygulayabilirsiniz.
▪ Java
✓ yum -y install java-openjdk-devel java-openjdk
✓ wget --no-cookies --no-check-certificate --header "Cookie:
gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-
securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u77-
b02/jdk-8u77-linux-x64.rpm
✓ rpm -ivh jdk-8u77-linux-x64.rpm
1
▪ Apache
✓ yum -y install httpd
▪ Elasticsearch
✓ yum -y install elasticsearch
▪ Logstash
✓ yum -y install logstash
▪ Kibana
✓ yum -y install kibana
▪ Gerekli sistem kaynakları;
✓ Centos 7 – 64 Bit – 4Gb Ram – 2 CPU
✓ Ubuntu 14.04 – 4Gb Ram – 2 CPU
Genel olarak yapımız aşağıdaki gibi bir topoloji üzerinde gözlemlenebilir.
2
-Xmx512m
systemctl enable elasticsearch
systemctl start elasticsearch
netstat -plntu
## Elasticsearch yapılandırmamızı başarılı şekilde tamamladıktan sonra artık
Kibana kurulumuna geçebiliriz. Kibana için aşağıdaki gibi Repository oluşturalım.
##
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-x86_64.rpm
rpm -ivh kibana-5.1.1-x86_64.rpm
3
output {
elasticsearch {
hosts => ["IP_ADDRESS:9200"]
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
## Yukarıdaki yapılandırmaları gerçekleştirdikten sonra Kibana servisi
başlatılır, ilgili servis 5044 portu(input file belirtilen) üzerinden
haberleşmektedir. Kontrol etmek için netstat komutu kullanılabilir. ##
systemctl enable logstash
systemctl start logstash
netstat –plntu
## Aşağıdaki adımlar sayesinde Kibana üzerinde Dashboard arşivi oluşturulur ve
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-
1.1.0.zip
unzip beats-dashboards-*.zip
cd beats-dashboards-*
./load.sh
curl -O
https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1
adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json
curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-
index-template.json
Output:
{
"acknowledged" : true
}
## Bu aşamadan sonra ELK server Filebeat dosyalarını almaya hazır durumdadır.
Bundan sonra Client tarafından Filebeat kurulumunu gerçekleştireceğiz. ##
rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elastic-beats.repo
[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1
yum -y install filebeat
vim /etc/filebeat/filebeat.yml
paths:
/var/log/*.log
document_type: syslog
logstash:
hosts: ["IP_ADDRESS:5044"]
bulk_max_size: 1024
systemctl start filebeat
systemctl enable filebeat