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

Screenshot_1

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

Yazı gezinmesi

Mobil sürümden çık