İlginizi Çekebilir
  1. Ana Sayfa
  2. Open Source
  3. CentOS 7 Üzerinde Elasticsearch, Logstash, Kibana ve Metrics Kurulumu

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

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

Bu yazıda 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;
, 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

- 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=()

- 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

https://www.mshowto.org

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

Yorum Yap

Yazar Hakkında

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

Yorum Yap