CentOS 7 Üzerinde Elasticsearch, Logstash, Kibana ve Metrics Kurulumu
  1. Anasayfa
  2. Open Source

CentOS 7 Üzerinde Elasticsearch, Logstash, Kibana ve Metrics Kurulumu

2

Bu yazıda Elasticsearch ve silah arkadaşlarının Centos üzerinde kurulumunu anlatacağım. Ubuntu ve diğer işletim sistemleriyle birlikte Windows üzerine kurmakta mümkün ama her zaman ki gibi tercihim Centos’dan yana.

Gereksinimler;
Centos 7, minimal inst. ‘da olur server gui’de size kalmış.
-Java kurulu olmalı.
-Editör olarak tercihim her zaman ki gibi nano siz vi ya da başka bir şey kullanabilirsiniz. Hatta winscp ile bağlanıp not defteriyle de açabilirsiniz…

Başlayalım

-Elastic Kurulumu
sudo rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Nano’yla açıp repomuzu ekleyelim sonra kaydedip çıkalım vi’de :wq! nano’da ctrl + o sonra ctrl +x
nano /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

sudo yum install elasticsearch -y 

Eğer sadece konsola kurulu olduğu makineden erişmek istiyorsanız network.host: kısmına localhost yazın ya da dışarıdan erişmek istediğiniz ip adresini.
nano /etc/elasticsearch/elasticsearch.yml

Servisi açalım. Aç, durumu kontrol et, ve açılışta otomatik açılsın.
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
sudo systemctl enable elasticsearch

-Kibana Kurulumu
sudo yum install kibana -y
sudo systemctl start kibana
sudo systemctl status kibana
sudo systemctl enable kibana

Her şey yolundaysa aşağıdaki komut ile bir password oluşturup dosyaya yazıcaz.
echo “kibanaadmin:`openssl passwd -apr1`” | sudo tee -a /etc/nginx/htpasswd.users

Buraya kadar tamamsa durumu kontrol etmek için aşağıdaki satırı tarayıcıya yazın.
http://localhost:5601/status#?_g=()

-Logstash Kurulumu
sudo yum install logstash -y

nano /etc/logstash/conf.d/02-beats-input.conf

içine yapıştırın;
input {
beats {
port => 5044
}
}

şimdi syslog filtresi için konfigürasyon oluşturalım. İnternet üzerinde çeşitli kombinasyonlar bulabilirsiniz bu konuda çok zengin.
nano /etc/logstash/conf.d/10-syslog-filter.conf 

filter {
if [fileset][module] == “system” {
if [fileset][name] == “auth” {
grok {
match => { “message” => [“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} sshd(?:\[%{POSINT:[system][auth][pid]}\])?: %{DATA:[system][auth][ssh][event]} %{DATA:[system][auth][ssh][method]} for (invalid user )?%{DATA:[system][auth][user]} from %{IPORHOST:[system][auth][ssh][ip]} port %{NUMBER:[system][auth][ssh][port]} ssh2(: %{GREEDYDATA:[system][auth][ssh][signature]})?”,
“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} sshd(?:\[%{POSINT:[system][auth][pid]}\])?: %{DATA:[system][auth][ssh][event]} user %{DATA:[system][auth][user]} from %{IPORHOST:[system][auth][ssh][ip]}”,
“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} sshd(?:\[%{POSINT:[system][auth][pid]}\])?: Did not receive identification string from %{IPORHOST:[system][auth][ssh][dropped_ip]}”,
“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} sudo(?:\[%{POSINT:[system][auth][pid]}\])?: \s*%{DATA:[system][auth][user]} :( %{DATA:[system][auth][sudo][error]} ;)? TTY=%{DATA:[system][auth][sudo][tty]} ; PWD=%{DATA:[system][auth][sudo][pwd]} ; USER=%{DATA:[system][auth][sudo][user]} ; COMMAND=%{GREEDYDATA:[system][auth][sudo][command]}”,
“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} groupadd(?:\[%{POSINT:[system][auth][pid]}\])?: new group: name=%{DATA:system.auth.groupadd.name}, GID=%{NUMBER:system.auth.groupadd.gid}”,
“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} useradd(?:\[%{POSINT:[system][auth][pid]}\])?: new user: name=%{DATA:[system][auth][user][add][name]}, UID=%{NUMBER:[system][auth][user][add][uid]}, GID=%{NUMBER:[system][auth][user][add][gid]}, home=%{DATA:[system][auth][user][add][home]}, shell=%{DATA:[system][auth][user][add][shell]}$”,
“%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} %{DATA:[system][auth][program]}(?:\[%{POSINT:[system][auth][pid]}\])?: %{GREEDYMULTILINE:[system][auth][message]}”] }
pattern_definitions => {
“GREEDYMULTILINE”=> “(.|\n)*”
}
remove_field => “message”
}
date {
match => [ “[system][auth][timestamp]”, “MMM d HH:mm:ss”, “MMM dd HH:mm:ss” ]
}
geoip {
source => “[system][auth][ssh][ip]”
target => “[system][auth][ssh][geoip]”
}
}
else if [fileset][name] == “syslog” {
grok {
match => { “message” => [“%{SYSLOGTIMESTAMP:[system][syslog][timestamp]} %{SYSLOGHOST:[system][syslog][hostname]} %{DATA:[system][syslog][program]}(?:\[%{POSINT:[system][syslog][pid]}\])?: %{GREEDYMULTILINE:[system][syslog][message]}”] }
pattern_definitions => { “GREEDYMULTILINE” => “(.|\n)*” }
remove_field => “message”
}
date {
match => [ “[system][syslog][timestamp]”, “MMM d HH:mm:ss”, “MMM dd HH:mm:ss” ]
}
}
}
}
Kaydedip çıkın.

Şimdi diğerine geçelim.
nano /etc/logstash/conf.d/30-elasticsearch-output.conf

output {
elasticsearch {
hosts => [“localhost:9200”]
manage_template => false
index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}”
}
}

Bunlar tamamsa servisi açalım
sudo systemctl start logstash
sudo systemctl status logstash
sudo systemctl enable logstash

Bunları Centos 7’ye kurdunuz örnek olması adına hostunuzu izlemek için metricbeat’i kuralım.

yum -y install metricbeat -y


nano /etc/metricbeat/metricbeat.yml

Ayaları aşağıdaki gibi yapın ve kaydedip çıkın

Resim-1

Resim-2

diğer konfigürasyon için
nano /etc/metricbeat/metricbeat.reference.yml

Resim-3

Resim-4

şimdi servisi ayağa kaldıralım

systemctl start metricbeat
systemctl start metricbeat
systemctl start metricbeat

Şimdi sıra arayüze girip kurcalamakta işte eklediğim host’dan bir kaç görüntü. Oldukça iyi elasticsearh’ü çok fazla amaç için kullanabilirsiniz yeterki disk ve ram olsun. Syslog, host status vb şeyler için ve en önemlisi özgür ve ücretsiz.

Resim-5

Resim-6

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

https://www.mshowto.org

TAGs:centos 7, ElasticSearch, Kibana, Logstash,ElasticSearch nedir, Kibana nedir, Logstash nedir,ElasticSearch kurulumu, Kibana kurulumu, Logstash kurulumu

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

1993 yılında İstanbul'da doğdum. Üniversiteyi bitirdikten sonra çeşitli eğitimler aldım ve almaya devam ediyorum bugüne kadar DHL, Erdem Hastanesi, Netaş ve Glasshouse'da çalıştım. Şimdiler ise Vakıf Emeklilik'de sigorta sektöründe güvenlik ürünleri üzerine çalışıyorum.Hiç bir zaman hırslı bir insan olmadım her şey yalnızca eğlence için hobilerimin arasında yemek yapmak, balık tutmak bir şeyler okumak ve bilgili insanları dinlemek var. Linux'u ve yardımlaşmayı seviyorum Linux'da pek iyi değilim çünkü Linux çok geniş bir alan yazdıklarımla ya da Linux ile alakalı konuşmak ya da soru sormak isterseniz bash'ımla beraber. -Cheeers

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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

Yorumlar (2)

  1. 28/08/2019

    Nadir kılçıksız yazanlardansın üstad bilmeyen adam otursun sıfırdan yapar çıkar… elinize sağlık

  2. Bu kibanayı test ortamında ubuntu centos kurulum yaptım hep sıkıntı çektiğim java kurulum olduydu. Onu da anlatmamışsınız büyük eksiklik. Tamam bir şekilde kuruyoruz, sıkıntılı kısım Dashboard ayarları, birazda kullanımından bahsetseniz çok güzel olur çok arama yaptım kayda değer bir açıklamaya rastlamadım. Bir yerlerde Makale varsa onlarda eski sürüm üzerinden yeni sürüm ile eski sürümler çok ayrı dünyalar haline gelmiş.

Bir yanıt yazın

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