Kif Tinstalla Elasticsearch, Logstash, u Kibana (ELK Stack) fuq CentOS/RHEL 7


Jekk inti persuna li hija, jew kienet fil-passat, inkarigata li tispezzjona u tanalizza r-zkuk tas-sistema fil-Linux, taf x'ħmar il-lejl jista' jsir dak il-kompitu jekk qed jiġu mmonitorjati servizzi multipli fl-istess ħin.

Fil-jiem li għaddew, dak il-kompitu kellu jsir l-aktar manwalment, b'kull tip ta 'log jiġi ttrattat separatament. Fortunatament, il-kombinazzjoni ta 'Elasticsearch, Logstash, u Kibana fuq in-naħa tas-server, flimkien ma' Filebeat fuq in-naħa tal-klijent, tagħmel dak il-kompitu darba diffiċli qisu mixja fil-park illum.

L-ewwel tliet komponenti jiffurmaw dak li jissejjaħ munzell ELK, li l-għan ewlieni tiegħu huwa li jiġbor zkuk minn servers multipli fl-istess ħin (magħruf ukoll bħala logging ċentralizzat).

Interfaċċja tal-web inkorporata bbażata fuq java tippermettilek tispezzjona zkuk malajr f'daqqa t'għajn għal tqabbil u soluzzjoni tal-problemi aktar faċli. Dawn ir-reġistri tal-klijenti jintbagħtu lil server ċentrali minn Filebeat, li jista 'jiġi deskritt bħala aġent tat-tbaħħir ta' log.

Ejja naraw kif dawn il-biċċiet kollha jaqblu flimkien. L-ambjent tat-test tagħna se jikkonsisti mill-magni li ġejjin:

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.

Jekk jogħġbok innota li l-valuri RAM ipprovduti hawn mhumiex prerekwiżiti stretti, iżda valuri rakkomandati għall-implimentazzjoni b'suċċess tal-munzell ELK fuq is-server ċentrali. Inqas RAM fuq il-klijenti mhux se tagħmel ħafna differenza, jekk hemm, xejn.

Installazzjoni ta 'ELK Stack fuq is-Server

Ejja nibdew billi ninstallaw il-munzell ELK fuq is-server, flimkien ma' spjegazzjoni qasira dwar x'jagħmel kull komponent:

  1. Elasticsearch jaħżen ir-reġistri li jintbagħtu mill-klijenti.
  2. Logstash jipproċessa dawk ir-zkuk.
  3. Kibana tipprovdi l-interface tal-web li tgħinna nispezzjonaw u nanalizzaw ir-reġistri.

Installa l-pakketti li ġejjin fuq is-server ċentrali. L-ewwelnett, se ninstallaw Java JDK verżjoni 8 (aġġornament 102, l-aħħar waħda fil-ħin ta 'din il-kitba), li hija dipendenza tal-komponenti ELK.

Tista' tkun trid tiċċekkja l-ewwel fil-paġna ta' downloads ta' Java hawn biex tara jekk hemmx aġġornament aktar ġdid disponibbli.

# 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

Żmien biex tivverifika jekk l-installazzjoni tlestietx b'suċċess:

# java -version

Biex tinstalla l-aħħar verżjonijiet ta 'Elasticsearch, Logstash, u Kibana, ser ikollna noħolqu repożitorji għal yum manwalment kif ġej:

1. Importa ċ-ċavetta pubblika tal-GPG Elasticsearch lill-maniġer tal-pakkett rpm:

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

2. Daħħal il-linji li ġejjin fil-fajl tal-konfigurazzjoni tar-repożitorju elasticsearch.repo:

[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. Installa l-pakkett Elasticsearch.

# yum install elasticsearch

Meta l-installazzjoni tkun lesta, tkun imħeġġeġ tibda u tippermetti elasticsearch:

4. Ibda u ppermettiet is-servizz.

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

5. Ħalli t-traffiku mill-port TCP 9200 fil-firewall tiegħek:

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

6. Iċċekkja jekk Elasticsearch jirrispondix għal talbiet sempliċi fuq HTTP:

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

L-output tal-kmand ta 'hawn fuq għandu jkun simili għal:

Kun żgur li timla l-passi ta 'hawn fuq u mbagħad ipproċedi b'Logstash. Peress li kemm Logstash kif ukoll Kibana jaqsmu ċ-ċavetta Elasticsearch GPG, m'hemmx għalfejn terġa' timportaha qabel ma tinstalla l-pakketti.

7. Daħħal il-linji li ġejjin fil-fajl tal-konfigurazzjoni tar-repożitorju logstash.repo:

[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. Installa l-pakkett Logstash:

# yum install logstash

9. Żid ċertifikat SSL ibbażat fuq l-indirizz IP tas-server ELK fil-linja li ġejja taħt it-taqsima [ v3_ca ] f'/etc/pki/tls/openssl.cnf:

[ v3_ca ]
subjectAltName = IP: 192.168.0.29

10. Iġġenera ċertifikat iffirmat minnu nnifsu validu għal 365 jum:

# 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. Ikkonfigura l-fajls ta' input, output, u filtru ta' Logstash:

Input: Oħloq /etc/logstash/conf.d/input.conf u daħħal il-linji li ġejjin fiha. Dan huwa meħtieġ għal Logstash biex \titgħallem kif tipproċessa taħbita li ġejjin mill-klijenti. Kun żgur li t-triq għaċ-ċertifikat u ċ-ċavetta jaqblu mal-mogħdijiet it-tajba kif deskritt fil-pass preċedenti:

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

Fajl tal-ħruġ (/etc/logstash/conf.d/output.conf):

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

Iffiltra (/etc/logstash/conf.d/filter.conf) fajl. Aħna se nilloggjaw messaġġi syslog għas-sempliċità:

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

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

12. Ivverifika l-fajls tal-konfigurazzjoni Logstash.

# service logstash configtest

13. Ibda u ppermetti logstash:

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

14. Ikkonfigura l-firewall biex tippermetti lil Logstash jikseb ir-zkuk mill-klijenti (port TCP 5044):

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

14. Daħħal il-linji li ġejjin fil-fajl tal-konfigurazzjoni tar-repożitorju kibana.repo:

[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. Installa l-pakkett Kibana:

# yum install kibana

16. Ibda u ppermetti Kibana.

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

17. Kun żgur li tista’ taċċessa l-interface tal-web ta’ Kibana minn kompjuter ieħor (ħalli t-traffiku fuq il-port TCP 5601):

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

18. Tnedija Kibana (http://192.168.0.29:5601) biex tivverifika li tista’ taċċessa l-interface tal-web:

Nirritornaw hawn wara li nkunu installajna u kkonfigurajna Filebeat fuq il-klijenti.

Installa Filebeat fuq is-Servers tal-Klijent

Aħna ser nuruk kif tagħmel dan għall-Klijent #1 (irrepeti għall-Klijent #2 wara, billi tbiddel il-mogħdijiet jekk applikabbli għad-distribuzzjoni tiegħek).

1. Ikkopja ċ-ċertifikat SSL mis-server lill-klijenti:

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

2. Importa ċ-ċavetta pubblika tal-GPG Elasticsearch lill-maniġer tal-pakkett rpm:

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

3. Oħloq repożitorju għal Filebeat (/etc/yum.repos.d/filebeat.repo) f'distribuzzjonijiet ibbażati fuq CentOS:

[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. Ikkonfigura s-sors biex tinstalla Filebeat fuq Debian u d-derivattivi tiegħu:

# 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. Installa l-pakkett Filebeat:

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

6. Ibda u ppermetti Filebeat:

# systemctl start filebeat
# systemctl enable filebeat

Kelma ta' kawtela hawn. Il-konfigurazzjoni tal-filebeat tinħażen f'fajl YAML, li jeħtieġ indentazzjoni stretta. Oqgħod attent b'dan hekk kif teditja /etc/filebeat/filebeat.yml kif ġej:

  1. Taħt mogħdijiet, indika liema log files għandhom jiġu \konsenjati lis-server ELK.
  2. Taħt il-prospetturi:

input_type: log
document_type: syslog

  1. Taħt l-output:
    1. Naqqas il-kumment tal-linja li tibda b'logstash.
    2. Indika l-indirizz IP tas-server ELK tiegħek u l-port fejn Logstash qed jisma' fl-hosts.
    3. Aċċerta ruħek li t-triq għaċ-ċertifikat tindika l-fajl attwali li ħloqt fil-Pass I (sezzjoni Logstash) hawn fuq.

    Il-passi ta 'hawn fuq huma illustrati fl-immaġni li ġejja:

    Issejvja l-bidliet, u mbagħad ibda mill-ġdid Filebeat fuq il-klijenti:

    # systemctl restart filebeat
    

    Ladarba lestejna l-passi ta 'hawn fuq fuq il-klijenti, tħossok liberu li tipproċedi.

    Sabiex tivverifika li r-zkuk mill-klijenti jistgħu jintbagħtu u rċevew b'suċċess, ħaddem il-kmand li ġej fuq is-server ELK:

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

    L-output għandu jkun simili għal (nota kif qed jiġu riċevuti messaġġi minn /var/log/messages u /var/log/secure minn client1 u client2):

    Inkella, iċċekkja l-fajl tal-konfigurazzjoni Filebeat għal żbalji.

    # journalctl -xe
    

    wara li tipprova terġa 'tibda Filebeat se tippontlek lejn il-linja(i) li toffendi.

    Wara li nkunu vverifikajna li zkuk qed jintbagħtu mill-klijenti u rċevejna b'suċċess fuq is-server. L-ewwel ħaġa li se jkollna nagħmlu f'Kibana hija li nikkonfiguraw mudell ta 'indiċi u nissettjawha bħala default.

    Tista' tiddeskrivi indiċi bħala database sħiħa f'kuntest ta' database relazzjonali. Se mmorru b'filebeat-* (jew tista' tuża kriterji ta' tfittxija aktar preċiżi kif spjegat fid-dokumentazzjoni uffiċjali).

    Daħħal filebeat-* fil-qasam Isem jew mudell tal-Indiċi u mbagħad ikklikkja Oħloq:

    Jekk jogħġbok innota li inti se titħalla ddaħħal kriterji ta' tfittxija aktar rqaq aktar tard. Sussegwentement, ikklikkja l-istilla ġewwa r-rettangolu aħdar biex tikkonfiguraha bħala l-mudell tal-indiċi default:

    Fl-aħħarnett, fil-menu Skopri se ssib diversi oqsma li żżid mar-rapport tal-viżwalizzazzjoni tal-log. Passa fuqhom u kklikkja Żid:

    Ir-riżultati se jintwerew fiż-żona ċentrali tal-iskrin kif muri hawn fuq. Ħossok liberu li tilgħab (żid u neħħi oqsma mir-rapport tal-ġurnal) biex issir familjari ma' Kibana.

    B'mod awtomatiku, Kibana se juri r-rekords li ġew ipproċessati matul l-aħħar 15-il minuta (ara l-kantuniera ta' fuq tal-lemin) iżda tista' tbiddel dik l-imġiba billi tagħżel qafas ta' żmien ieħor:

    Sommarju

    F'dan l-artikolu spjegajna kif twaqqaf munzell ELK biex tiġbor ir-reġistri tas-sistema mibgħuta minn żewġ klijenti, magni CentOS 7 u Debian 8.

    Issa tista' tirreferi għad-dokumentazzjoni uffiċjali ta' Elasticsearch u ssib aktar dettalji dwar kif tuża din is-setup biex tispezzjona u tanalizza z-zkuk tiegħek b'mod aktar effiċjenti.

    Jekk għandek xi mistoqsijiet, toqgħodx lura milli tistaqsi. Aħna ħerqana li nisimgħu mingħandek.