L'analisi dei log è sempre stata una parte importante dell'amministrazione del sistema, ma è uno dei compiti più noiosi e noiosi, soprattutto quando si ha a che fare con un certo numero di sistemi. Fortunatamente, lo stack ELK ha semplificato il compito, lo stack ELK è ora utilizzato per l'ispezione/analisi dei registri ed è una combinazione dei seguenti tre prodotti open source
- ElasticSearch:è un database No-SQL che indicizza e archivia le informazioni
- Logstash: è uno strumento di pipeline di log che raccoglie e analizza i log
- Kibana – Fornisce la GUI (Graphical User Interface) e viene utilizzato per la visualizzazione dei dati e funziona su elasticsearch.
Lo stack ELK riceve i log dal client tramite il protocollo Beats, inviati utilizzando un client Beats. In questo tutorial creeremo uno stack ELK su una macchina Centos 7 e installeremo anche un client beat denominato "File Beat" sulla macchina client.
- 192.168.0.180 elk-stack (CentOS 7)
- 192.168.0.70 client (CentOS 7)
Prerequisito
La macchina su cui installeremo ELK dovrebbe avere Java versione 8 installata come . Quindi assicurati che java open-jdk versione 1.8.0_* sia installato e in esecuzione e nel caso non sia installato, quindi esegui il comando yum sottostante per l'installazione
[[email protetta] ~]# yum install java-1.8.0-openjdk
[[email protetta] ~]# java -versionopenjdk versione "1.8.0_131"OpenJDK Runtime Environment (build 1.8.0_131-b12)OpenJDK 64-Bit Server VM (build 25.131-b12, modalità mista)[[email protected] ] ~]#
Imposta il nome host e aggiorna il file /etc/hosts
[[email protected] ~]# hostnamectl set-hostname "elk-stack.example.com"
Aggiorna il file /etc/hosts
192.168.0.180 elk-stack.example.com elk-stack
Passaggi di installazione di ELK Stack
Ricerca elastica
Inizieremo importando le chiavi GPG per elasticsearch, questa chiave sarà condivisa anche con logstash e kibana. Per installare elasticsearch, esegui
[[email protetta] ~]# rpm –import https://packages.elastic.co/GPG-KEY-elasticsearch
[[email protetta] ~]#
Ora creeremo un repository per il repository elastic-search,
[[email protetta] ~]# vi /etc/yum.repos.d/elasticsearch.repo[elasticsearch]name=Elasticsearch repositorybaseurl=http://packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenabled=1
Una volta aggiunto il repository, installa elasticsearch utilizzando yum,
[[email protetta] ~]# yum install elasticsearch -y
Ora avviamo il servizio e imposteremo anche l'avvio all'avvio
[[email protected] ~]# systemctl daemon-reload[[email protected] ~]# systemctl start elasticsearch[[email protected] ~]# systemctl enable elasticsearch
Consenti la porta 9200 TCP nel firewall del sistema operativo. Nel caso in cui il firewall sia in esecuzione
[[email protetta] ~]# firewall-cmd --permanent --add-port 9200/tcp
Ora testeremo elasticsearch per assicurarci che risponda alle query
[[email protetta] ~]# curl -X GET http://localhost:9200
L'output del comando precedente dovrebbe essere qualcosa di simile al seguente:
Archivio di registro
Ora aggiungeremo il repository logstash,
[[email protetta] ~]# vi /etc/yum.repos.d/logstash.repo[logstash]name=Logstashbaseurl=http://packages.elasticsearch.org/logstash/2.2/centosgpgcheck=1gpgkey=http ://packages.elasticsearch.org/GPG-KEY-elasticsearchenabled=1
Ora installa logstash,
[[email protetta] ~]# yum install logstash -y
Kibana
Ora creeremo un repository per kibana,
[[email protetta] ~]# vi /etc/yum.repos.d/kibana.repo[kibana-4.5]name=Repository Kibana per 4.5.x packagesbaseurl=http://packages.elastic.co/kibana /4.5/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenabled=1
Ora installa kibana usando yum,
[[email protetta] ~]# yum install kibana -y
Dopo l'installazione, avvia il servizio e abilitalo all'avvio
[[email protected] ~]# systemctl avvia kibana[[email protected] ~]# systemctl abilita kibana
Consenti la porta 5601 in OS Firewall
[[email protetta] ~]# firewall-cmd --permanent --add-port 5601/tcp[[email protetta] ~]# firewall-cmd --reload
Successivamente, accederemo alla pagina Web di kibana per assicurarci che funzioni. Per farlo, apri il browser web e inserisci il seguente URL
http://Indirizzo IP:5601/
L'installazione dello stack ELK è ora completa e faremo le configurazioni necessarie.
Configurazione
Certificato SSL per logstash
Dopo l'installazione di logstash, creeremo ora un certificato SSL per proteggere la comunicazione tra logstash e filebeat (client). Poiché utilizzeremo l'indirizzo IP per connetterci al server, creeremo un certificato SSL per IP SAN.
Prima di creare un certificato SSL, inseriremo il nostro IP in openssl.cnf,
[[email protetta] ~]# vi /etc/pki/tls/openssl.cnf
e cerca il parametro con "subjectAltName" nella sezione [ v3_ca ] e aggiungi l'IP del tuo server,
subjectAltName =IP:192.168.0.180
Ora cambia la directory in /etc/ssl e crea un certificato SSL con una validità di 365 giorni,
[[email protected] ~]# cd /etc/ssl/[[email protected] ssl]# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crtGenerazione di una chiave privata RSA a 2048 bit.....++++...........+++scrittura di una nuova chiave privata in 'logstash-forwarder.key'-----[[ email protetto] ssl]#
Una volta che il certificato è pronto, questo dovrebbe essere copiato su tutti i client usando il comando scp.
Configurazione di Logstash
Ora creeremo un file di configurazione per logstash nella cartella '/etc/logstash/conf.d '. Questo file sarà diviso in tre sezioni, ovvero la sezione di input, filtro e output
[[email protetta] ~]# vi /etc/logstash/conf.d/logstash.conf# input sectioninput { beats { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash_frwrd.crt " ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40" }}
Questa sezione fa in modo che logstash sia in ascolto sulla porta 5044 per i log in entrata e fornisce anche i dettagli del certificato SSL per una connessione sicura.
La sezione successiva, ad esempio "sezione filtro", analizzerà i log prima di inviarli a elasticsearch ,
# Filter sectionfilter {if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date {match => [ "timestamp", "MMM d HH :mm:ss", "MMM gg HH:mm:ss" ]} }}
L'ultima sezione è "sezione di output" e definisce la posizione per l'archiviazione dei log,
# output sectionoutput { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}
Ora salva il file ed esci. Tutte queste sezioni possono anche essere divise in tre file separati, ma le abbiamo utilizzate in un unico file per facilità di configurazione. Ora avvieremo il servizio logstash e lo attiveremo all'avvio,
[[email protected] ~]# systemctl daemon-reload[[email protected] ~]# systemctl start logstash[[email protected] ~]# systemctl enable logstash
Consenti la porta 5044 TCP nel firewall del sistema operativo con il seguente comando in modo che Logstash ottenga i registri dai client
[[email protected] conf.d]# firewall-cmd --permanent --add-port=5044/tcpsuccess[[email protected] conf.d]# firewall-cmd --reloadsuccess[[email protected] conf .d]#
Installazione di Filebeat sui client
Filebeat deve essere installato su ogni sistema per il quale è necessario analizzare i log. Per prima cosa copiamo il file del certificato dal server elk-stack al client
[[email protetta] ~]# scp /etc/ssl/logstash_frwrd.crt [email protetta]:/etc/ssl
Per installare filebeat, aggiungeremo prima il repository per esso,
[[email protetta] ~]# vi /etc/yum.repos.d/filebeat.repo[beats]name=Elastic Beats Repositorybaseurl=https://packages.elastic.co/beats/yum/el/$ basearchenabled=1gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearchgpgcheck=1
Ora installa filebeat eseguendo sotto comando
[[email protetta] ~]# yum install filebeat
Ora apporteremo modifiche al file di configurazione per connettere i client filebeat al nostro stack ELK, ma prima di farlo assicurati che il certificato che abbiamo creato durante la configurazione logstash sia copiato sul client nella directory '/etc/ssl'. Una volta fatto, avvieremo la configurazione di filebeat,
[[email protetta] ~]# vi /etc/filebeat/filebeat.yml
Dobbiamo apportare modifiche alle seguenti tre sezioni,
In questa sezione, possiamo consentire i registri che devono essere analizzati. L'ho lasciato al valore predefinito, ovvero tutti i registri, ma puoi modificarlo per inviare solo uno o due file di registro. Per la sezione successiva, cambia il tipo_documento in "syslog",
e nell'ultima sezione, ovvero "output", definiremo l'indirizzo IP e la posizione del nostro server stack ELK per il certificato SSL,
Nota:disabilita l'output di elasticsearch, commenta la voce "hosts:["localhost:9200″]" nel caso sia abilitato.
Ora avvia il servizio e abilitalo all'avvio,
[[email protected] ~]# systemctl restart filebeat[[email protected] ~]# systemctl enable filebeat
Ecco fatto, le configurazioni sia sul lato server che sul lato client sono ora complete. Ora possiamo accedere all'interfaccia web di kibana per cercare i log analizzati.
Crea pattern indice, cambia logstash-* a filebeat-*
Fare clic su Crea
Fai clic su Scopri e quindi cerca, otterremo registri come di seguito
Questo è tutto da questo articolo, condividi i tuoi preziosi feedback e commenti.