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:
- Elasticsearch jaħżen ir-reġistri li jintbagħtu mill-klijenti.
- Logstash jipproċessa dawk ir-zkuk.
- 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:
- Taħt mogħdijiet, indika liema log files għandhom jiġu \konsenjati lis-server ELK.
- Taħt il-prospetturi:
input_type: log document_type: syslog
- Taħt l-output:
- Naqqas il-kumment tal-linja li tibda b'logstash.
- Indika l-indirizz IP tas-server ELK tiegħek u l-port fejn Logstash qed jisma' fl-hosts.
- 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.