CentOS/RHEL 7-de Elastik gözleg, Logstash we Kibana (ELK Stack) nädip gurmaly


Linux-da ulgam surnallaryny barlamak we seljermek üçin jogapkär bolan ýa-da geçmişde işleýän adam bolsaňyz, bir wagtyň özünde birnäçe hyzmatlar gözegçilik astynda saklansa, bu meseläniň nähili düýş görüp biljekdigini bilýärsiňiz.

Öňki günlerde bu wezipe esasan el bilen edilmelidi, her gündelik görnüşi aýratynlykda işlenýärdi. Bagtymyza, serwer tarapyndaky “Elasticsearch”, “Logstash” we “Kibana” -nyň müşderi tarapyndaky “Filebeat” bilen birleşmegi, bir wagtlar kyn meseläni häzirki seýilgähde gezelenç ýaly edýär.

Ilkinji üç komponent, bir wagtyň özünde birnäçe serwerden surnallary ýygnamak (merkezleşdirilen hasaba alyş diýlip hem atlandyrylýar) ELK stack diýilýän zady emele getirýär.

Gurlan java esasly web interfeýsi, deňeşdirmegi we näsazlyklary düzetmek üçin gündelikleri bir göz bilen çalt barlamaga mümkinçilik berýär. Bu müşderi surnallary Filebeat tarapyndan merkezi serwere iberilýär, ony gündelik iberiş agenti hökmünde häsiýetlendirip bolar.

Geliň, bu bölekleriň hemmesiniň näderejede gabat gelýändigini göreliň. Synag gurşawymyz aşakdaky maşynlardan ybarat bolar:

Central Server: CentOS 7 (IP address: 192.168.0.29). 2 GB of RAM.
Client #1: CentOS 7 (IP address: 192.168.0.100). 1 GB of RAM.
Client #2: Debian 8 (IP address: 192.168.0.101). 1 GB of RAM.

Bu ýerde berlen RAM bahalarynyň berk şertler däldigini, merkezi serwerde ELK stakasyny üstünlikli durmuşa geçirmek üçin maslahat berilýän bahalaryň bardygyny ýadyňyzdan çykarmaň. Müşderilerdäki az RAM, bar bolsa, düýbünden tapawudy bolmaz.

Serwerde ELK Stack gurmak

Geliň, her bir komponentiň näme edýändigi barada gysgaça düşündiriş bermek bilen serwerde ELK stakasyny gurmakdan başlalyň:

  1. Elasticsearch, müşderiler tarapyndan iberilýän surnallary saklaýar.
  2. Logstash şol gündelikleri işleýär.
  3. Kibana, gündelikleri barlamaga we derňemäge kömek etjek web interfeýsini üpjün edýär.

Aşakdaky paketleri merkezi serwere guruň. Ilki bilen, ELK komponentlerine baglylyk bolan Java JDK 8 wersiýasyny (bu ýazylan wagty iň soňky 102-i täzeläris) gurarys.

Has täze täzelenmäniň bardygyny ýa-da ýokdugyny bilmek üçin ilki bilen Java ýükleme sahypasynda barlap bilersiňiz.

# yum update
# cd /opt
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.rpm"
# rpm -Uvh jre-8u102-linux-x64.rpm

Gurluşyň üstünlikli tamamlanandygyny ýa-da ýokdugyny barlamagyň wagty:

# java -version

“Elasticsearch”, “Logstash” we “Kibana” -nyň iň soňky wersiýalaryny gurmak üçin, ýum üçin ammarlary aşakdaky ýaly el bilen döretmeli bolarys:

1. “Elasticsearch” köpçülikleýin GPG açaryny rpm paket dolandyryjysyna import ediň:

# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

2. elasticsearch.repo ammar konfigurasiýa faýlyna aşakdaky setirleri salyň:

[elasticsearch]
name=Elasticsearch repository
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

3. “Elasticsearch” bukjasyny guruň.

# yum install elasticsearch

Gurmak tamamlanandan soň, elastik gözlegiň başlamagy we işlemegi soralar:

4. Hyzmaty başlaň we işlediň.

# systemctl daemon-reload
# systemctl enable elasticsearch
# systemctl start elasticsearch

5. Gorag diwaryňyzdaky TCP port 9200 arkaly traffige rugsat beriň:

# firewall-cmd --add-port=9200/tcp
# firewall-cmd --add-port=9200/tcp --permanent

6. Elasticsearch-yň HTTP-den ýönekeý haýyşlara jogap berýändigini barlaň:

# curl -X GET http://localhost:9200

Aboveokardaky buýrugyň çykyşy şuňa meňzeş bolmaly:

Aboveokardaky ädimleri ýerine ýetirip, Logstash-a dowam ediň. Logstash we Kibana ikisi hem Elasticsearch GPG açaryny paýlaşýandyklary sebäpli, paketleri gurmazdan ozal täzeden import etmegiň zerurlygy ýok.

7. Ammar konfigurasiýa faýlyna logstash.repo aşakdaky setirleri salyň:

[logstash]
name=Logstash
baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

8. Logstash paketini guruň:

# yum install logstash

9. ELK serweriniň IP adresine esaslanýan SSL şahadatnamasyny /etc/pki/tls/openssl.cnf [v3_ca] bölüminiň aşakdaky setirine goşuň. >:

[ v3_ca ]
subjectAltName = IP: 192.168.0.29

10. 365 günüň dowamynda öz-özüne gol çekilen şahadatnamany dörediň:

# cd /etc/pki/tls
# openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

11. Logstash girişini, çykyşyny we süzgüç faýllaryny sazlaň:

Giriş: /etc/logstash/conf.d/input.conf dörediň we oňa aşakdaky setirleri goşuň. Bu, Logstash-dan müşderilerden gelýän urgulary nädip gaýtadan işlemelidigini öwrenmek üçin zerurdyr. Şahadatnama we açara barýan ýoluň öňki ädimde görkezilişi ýaly dogry ýollara laýyk gelýändigine göz ýetiriň:

input {
  beats {
	port => 5044
	ssl => true
	ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
	ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}

Çykyş ( /etc/logstash/conf.d/output.conf ) faýly:

output {
  elasticsearch {
	hosts => ["localhost:9200"]
	sniffing => true
	manage_template => false
	index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
	document_type => "%{[@metadata][type]}"
  }
}

Filtr ( /etc/logstash/conf.d/filter.conf ) faýly. Sönekeýlik üçin syslog habarlaryny ýazarys:

filter {
if [type] == "syslog" {
	grok {
  	match => { "message" => "%{SYSLOGLINE}" }
	}

	date {
match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
  }
}

12. Logstash konfigurasiýa faýllaryny barlaň.

# service logstash configtest

13. Logstash-a başlaň we işlediň:

# systemctl daemon-reload
# systemctl start logstash
# systemctl enable logstash

14. Logstash-dan müşderilerden gündelikleri almaga rugsat bermek üçin gorag diwaryny sazlaň (TCP port 5044):

# firewall-cmd --add-port=5044/tcp
# firewall-cmd --add-port=5044/tcp --permanent

14. kibana.repo ammar konfigurasiýa faýlyna aşakdaky setirleri salyň:

[kibana]
name=Kibana repository
baseurl=http://packages.elastic.co/kibana/4.4/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

15. Kibana paketini guruň:

# yum install kibana

16. Kibana başlaň we işlediň.

# systemctl daemon-reload
# systemctl start kibana
# systemctl enable kibana

17. Kibana web interfeýsine başga bir kompýuterden girip biljekdigiňize göz ýetiriň (TCP port 5601 portunda traffige rugsat beriň):

# firewall-cmd --add-port=5601/tcp
# firewall-cmd --add-port=5601/tcp --permanent

18. Web interfeýsine girip biljekdigiňizi barlamak üçin Kibana ( http://192.168.0.29:5601 ) işe giriziň:

Müşderilere Filebeat guranymyzdan we sazlandan soň bu ýere gaýdyp geleris.

Müşderi serwerlerinde Filebeat guruň

Müşderi # 1 üçin muny nädip etmelidigini görkezeris (soňundan 2-nji müşderi üçin gaýtalaň, paýlamanyňyza degişli bolsa ýollary üýtgediň).

1. SSL şahadatnamasyny serwerden müşderilere göçüriň:

# scp /etc/pki/tls/certs/logstash-forwarder.crt [email :/etc/pki/tls/certs/

2. “Elasticsearch” köpçülikleýin GPG açaryny rpm paket dolandyryjysyna import ediň:

# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

3. CentOS esasly paýlamalarda Filebeat ( /etc/yum.repos.d/filebeat.repo ) üçin ammar dörediň:

[filebeat]
name=Filebeat for ELK clients
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

4. “Filebeat” -y “Debian” -a we ondan emele gelenlere gurmak üçin çeşmäni sazlaň:

# aptitude install apt-transport-https
# echo "deb https://packages.elastic.co/beats/apt stable main" > /etc/apt/sources.list.d/filebeat.list
# aptitude update

5. Filebeat paketini guruň:

# yum install filebeat        [On CentOS and based Distros]
# aptitude install filebeat   [On Debian and its derivatives]

6. Filebeat-a başlaň we işlediň:

# systemctl start filebeat
# systemctl enable filebeat

Bu ýerde seresaplylyk. Filebeat konfigurasiýasy, berk indentasiýa talap edýän YAML faýlynda saklanýar. /etc/filebeat/filebeat.yml redaktirläniňizde muňa seresap boluň:

  1. pathollaryň aşagynda haýsy log faýllarynyň ELK serwerine\iberilmelidigini görkeziň.
  2. Gözlegçileriň aşagynda:

input_type: log
document_type: syslog

  1. Çykyşda:
    1. Logstash bilen başlaýan setiri açmak.
    2. Logstash-yň öý eýelerinde diňleýän ELK serweriňiziň we portuňyzyň IP adresini görkeziň.
    3. Şahadatnama barýan ýoluň ýokarda I ädimde (Logstash bölümi) döreden hakyky faýlyňyza göz ýetiriň.

    Aboveokardaky ädimler aşakdaky suratda görkezilýär:

    Üýtgeşmeleri ýazdyryň we müşderilere Filebeat-ny täzeden açyň:

    # systemctl restart filebeat
    

    Müşderilere ýokardaky ädimleri ýerine ýetirenimizden soň, dowam ediň.

    Müşderilerden surnallaryň iberilip we üstünlikli kabul edilip bilinjekdigini barlamak üçin ELK serwerinde aşakdaky buýrugy işlediň:

    # curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'
    

    Çykyş meňzeş bolmaly (müşderi1 we müşderi2-den/var/log/habarlardan we/var/log/howpsuz habarlaryň nähili alynýandygyna üns beriň):

    Otherwiseogsam, Filebeat konfigurasiýa faýlyny ýalňyşlyklar üçin barlaň.

    # journalctl -xe
    

    Filebeat-y täzeden açjak bolanyňyzdan soň sizi kemsidiji setirlere görkezer.

    Surnallaryň müşderiler tarapyndan iberilýändigini we serwerde üstünlikli kabul edilendigini barlandan soň. Kibana-da etmeli ilkinji işimiz, indeks nagşyny düzmek we ony asyl görnüşde düzmek.

    Indeksini baglanyşyk bazasynyň kontekstinde doly maglumat bazasy hökmünde suratlandyryp bilersiňiz. filebeat- * bilen bararys (ýa-da resmi resminamalarda düşündirilişi ýaly has takyk gözleg ölçeglerini ulanyp bilersiňiz).

    Indeksiň adyna ýa-da nagyş meýdanyna filebeat- * giriziň we Dörediň:

    Soňra has inçe gözleg kriteriýalaryna girmäge rugsat beriljekdigini ýadyňyzdan çykarmaň. Ondan soň, ýaşyl gönüburçlugyň içindäki ýyldyzy basyň, ony başlangyç görkeziji nagşy hökmünde düzmek üçin:

    Netijede, “Discover” menýusynda gündeligiň wizual hasabatyna goşmak üçin birnäçe meýdan taparsyňyz. Diňe olaryň üstünden aýlaň we Goşmak basyň:

    Netijeler ýokarda görkezilişi ýaly ekranyň merkezi meýdanynda görkeziler. Kibana bilen tanyşmak üçin töwereginde oýnap bilersiňiz (gündelik hasabatdan meýdanlary goşuň we aýyryň).

    Düzgüne görä, Kibana soňky 15 minutda gaýtadan işlenen ýazgylary görkezer (sag ýokarky burça serediň), ýöne başga bir wagt saýlap, özüni alyp barşyňyzy üýtgedip bilersiňiz:

    Gysgaça mazmun

    Bu makalada iki müşderi, CentOS 7 we Debian 8 maşynlary tarapyndan iberilen ulgam surnallaryny ýygnamak üçin ELK stakasyny nädip gurmalydygyny düşündirdik.

    Indi resmi “Elasticsearch” resminamalaryna ýüz tutup bilersiňiz we gündeligiňizi has netijeli barlamak we derňemek üçin bu sazlamany nädip ulanmalydygy barada has giňişleýin maglumat tapyp bilersiňiz.

    Soraglaryňyz bar bolsa, soramaga çekinmäň. Sizden eşitmäge sabyrsyzlyk bilen garaşýarys.