GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su CentOS 7 / RHEL 7

Lo stack ELK è anche noto come stack elastico, è costituito da Elasticsearch, Logstash e Kibana. Ti aiuta ad avere tutti i tuoi log archiviati in un unico posto e ad analizzare i problemi correlando gli eventi in un determinato momento.

Questa guida ti aiuta a installare lo stack ELK su CentOS 7 / RHEL 7 .

Componenti

Archiviazione – Esegue l'elaborazione (raccogli, arricchisci e invialo a Elasticsearch) dei log in arrivo inviati da beats (forwarder).

Ricerca elastica – Memorizza i log in entrata da Logstash e offre la possibilità di cercare log/dati in tempo reale

Kibana – Fornisce la visualizzazione dei registri.

Batti – Installato sui computer client, invia i log a Logstash tramite il protocollo Beats.

Ambiente

Per avere uno stack ELK completo, avremmo bisogno di due macchine per testare la raccolta dei log.

Pila ELK

Sistema operativo:CentOS 7 Indirizzo IP minimo:192.168.1.10HostName:server.itzgeek.local

Filebeat

Sistema operativo:CentOS 7 Indirizzo IP minimo:192.168.1.20HostName:client.itzgeek.local

Prerequisiti

Installa Java

Poiché Elasticsearch è basato su Java, assicurati di avere OpenJDK o Oracle JDK installato sulla tua macchina.

LEGGI :Come installare Oracle Java 8 su CentOS 7 / RHEL 7

Qui sto usando OpenJDK 1.8.

yum -y install java-1.8.0 wget

Verifica la versione Java.

versione java

Risultato:

Java versione "1.8.0_181"Java(TM) SE Runtime Environment (build 1.8.0_181-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, modalità mista)

Configura repository ELK

Importa la chiave di firma elastica.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Configura il repository Elasticsearch e installalo.

vi /etc/yum.repos.d/elk.repo

Aggiungi i seguenti contenuti a elk.repo file.

[elasticsearch-6.x]name=repository Elasticsearch per packagesbaseurl 6.x=https://artifacts.elastic.co/packages/6.x/ymgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Installa Elasticsearch

Elasticsearch è un motore di ricerca open source, offre una ricerca e analisi distribuite in tempo reale con l'interfaccia web RESTful. Elasticsearch memorizza tutti i dati inviati dal Logstash e visualizzati tramite l'interfaccia web (Kibana) su richiesta degli utenti.

Installa Elasticsearch.

yum install -y elasticsearch

Configura Elasticsearch per l'avvio durante l'avvio del sistema.

systemctl daemon-reloadsystemctl abilita elasticsearchsystemctl avvia elasticsearch

Usa CURL per verificare se Elasticsearch risponde o meno alle query.

curl -X OTTIENI http://localhost:9200

Risultato:

 { "name" :"1DwGO86", "cluster_name" :"elasticsearch", "cluster_uuid" :"xboS_6K5Q2OO1XA-QJ9GIQ", "version" :{ "number" :"6.4.0", "build_flavor" :" default", "build_type" :"rpm", "build_hash" :"595516e", "build_date" :"2018-08-17T23:18:47.308994Z", "build_snapshot" :false, "lucene_version" :"7.4.0 ", "minimum_wire_compatibility_version" :"5.6.0", "minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"Sai, per la ricerca"}

Installa Logstash

Logstash è uno strumento open source per la gestione di eventi e log, raccoglie i log, li analizza e li archivia su Elasticsearch per la ricerca. Sono disponibili oltre 160 plug-in per Logstash che offre la capacità di elaborare i diversi tipi di eventi senza lavoro aggiuntivo.

Installa il pacchetto Logstash.

yum -y install logstash

Crea certificato SSL (facoltativo)

Filebeat (Logstash Forwarder) sono normalmente installati sui server client e utilizzano il certificato SSL per convalidare l'identità del server Logstash per una comunicazione sicura.

Crea un certificato SSL con il nome host o IP SAN.

Opzione 1:(FQDN nome host)

Se utilizzi il nome host del server Logstash nella configurazione beats (forwarder), assicurati di avere un record per il server Logstash e assicurati anche che la macchina client possa risolvere il nome host del server Logstash.

Vai alla directory OpenSSL.

cd /etc/pki/tls/

Ora crea il certificato SSL. Sostituisci verde uno con il nome host del tuo vero server Logstash.

openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=server.itzgeek.local 

Opzione 2:(Indirizzo IP)

Se intendi utilizzare un indirizzo IP invece del nome host, segui i passaggi per creare un certificato SSL per IP SAN.

Per creare un certificato SAN IP, dovresti aggiungere un indirizzo IP del server Logstash a SubjectAltName nel file di configurazione di OpenSSL.

vi /etc/pki/tls/openssl.cnf

Cerca la sezione "[ v3_ca ]" e sostituisci verde uno con l'IP del tuo server Logstash.

subjectAltName =IP:192.168.1.10 

Vai alla directory OpenSSL.

cd /etc/pki/tls/

Ora crea un certificato SSL eseguendo il seguente comando.

openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
Questologstash-forwarder.crt deve essere copiato su tutte le macchine client che inviano i log al server Logstash.

Configura Logstash

La configurazione di Logstash può essere trovata in /etc/logstash/conf.d/ . Il file di configurazione di Logstash è costituito da tre sezioni di input, filtro e output. Tutte e tre le sezioni possono essere trovate in un unico file o in file separati che terminano con .conf.

Ti consiglio di utilizzare un unico file per posizionare le sezioni di input, filtro e output.

vi /etc/logstash/conf.d/logstash.conf

Nella prima sezione, inseriremo una voce per la configurazione dell'input. La configurazione seguente imposta Logstash in modo che sia in ascolto sulla porta 5044 per i log in arrivo dai beat (forwarder) che si trovano sui computer client.

Inoltre, aggiungi i dettagli del certificato SSL nella sezione di input per la comunicazione sicura – Facoltativo.

input { beats { port => 5044 # Imposta su False se non usi SSL ssl => true # Elimina le righe sottose non usi SSL ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" }}

Nella sezione filtri. Utilizzeremo Grok per analizzare i log prima di inviarli a Elasticsearch. Il seguente filtro grok cercherà il syslog log etichettati e prova ad analizzarli per creare un indice strutturato.

filtro {if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date {match => [ "timestamp", "MMM d HH:mm :ss", "MMM gg HH:mm:ss" ]} }}

Per ulteriori modelli di filtro, dai un'occhiata alla pagina di grokdebugger.

Nella sezione di output, definiremo la posizione in cui verranno archiviati i log; ovviamente dovrebbe essere Elasticsearch.

output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}

Ora avvia e abilita il servizio Logstash.

systemctl avvia logstashsystemctl abilita logstash

Puoi risolvere qualsiasi problema esaminando i log di Logstash.

cat /var/log/logstash/logstash-plain.log

Installa e configura Kibana

Kibana fornisce la visualizzazione dei log archiviati su Elasticsearch. Installa Kibana usando il seguente comando.

yum -y installa kibana

Modifica il file kibana.yml.

vi /etc/kibana/kibana.yml

Per impostazione predefinita, Kibana è in ascolto su localhost, il che significa che non puoi accedere all'interfaccia di Kibana da macchine esterne. Per consentirlo, modifica la riga sottostante con l'IP della tua macchina.

server.host:"192.168.1.10 "

Decommenta la riga seguente e aggiornala con l'URL dell'istanza Elasticsearch. Nel mio caso, è localhost.

elasticsearch.url:"http://localhost:9200 "

Avvia e abilita kibana all'avvio del sistema.

systemctl avvia kibanasystemctl abilita kibana

Firewall

Configura un firewall sul nodo dello stack ELK per ricevere i log dalle macchine client.

5044 – Affinché Logstash riceva i log

5061 – Per accedere all'interfaccia Kibana dalla macchina esterna.

firewall-cmd --permanent --add-port=5044/tcpfirewall-cmd --permanent --add-port=5601/tcpfirewall-cmd --reload

Successivamente, configureremo i beat per spedire i log al server Logstash.

Installa e configura Filebeat

Sono disponibili quattro client beat

  1. Packetbeat – Analizza i dati dei pacchetti di rete.
  2. Filebeat – Informazioni in tempo reale sui dati di registro.
  3. Topbeat – Ottieni informazioni dettagliate dai dati dell'infrastruttura.
  4. battito metrico – Invia le metriche a Elasticsearch.

Per analizzare i log di sistema della macchina client (es. client.itzgeek.local), è necessario installare filebeat . Crea il file beats.repo.

vi /etc/yum.repos.d/beats.repo

Aggiungi il contenuto seguente al file repository sopra.

[elasticsearch-6.x]name=repository Elasticsearch per packagesbaseurl 6.x=https://artifacts.elastic.co/packages/6.x/ymgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Ora installa Filebeat usando il seguente comando.

yum -y install filebeat

Configura una voce host sul computer client nel caso in cui il tuo ambiente non disponga di un server DNS .

vi /etc/hosts

Crea una voce host come di seguito sul computer client.

 192.168.1.10 server.itzgeek.local server

Filebeat (beats) utilizza il certificato SSL per convalidare l'identità del server Logstash, quindi copia il logstash-forwarder.crt dal server Logstash al client.

Salta questo passaggio, nel caso in cui non utilizzi SSL in Logstash.

scp -pr [email protected] :/etc/pki/tls/certs/logstash-forwarder.crt /etc/ssl/certs/

Il file di configurazione di Filebeat è in formato YAML, il che significa che il rientro è molto importante. Assicurati di utilizzare lo stesso numero di spazi utilizzati nella guida.

Apri il file di configurazione di filebeat.

vi /etc/filebeat/filebeat.yml

In cima, vedresti la sezione dei cercatori. Qui è necessario specificare quali registri devono essere inviati a Logstash e come devono essere gestiti. Ogni cercatore inizia con carattere.

A scopo di test, configureremo filebeat per inviare /var/log/messages al server Logstash. Per farlo, modifica il cercatore esistente in percorsi sezione.

Commenta il – /var/log/*.log per evitare di inviare tutti i .log file presenti in quella directory in Logstash.

filebeat.inputs:- digita:registro # Cambia in true per abilitare questa configurazione di input. abilitato:vero # percorsi di cui eseguire la scansione e il recupero. percorsi: - /var/log/messages # - /var/log/*.log. . .

Commenta la sezione output.elasticsearch: poiché non memorizzeremo i log direttamente su Elasticsearch.

Ora trova la riga output.logstash e modificare le voci come di seguito. Questa sezione definisce filebeat per inviare i log al server Logstash server.itzgeek.local sulla porta 5044 e menziona il percorso in cui è posizionato il certificato SSL copiato

Sostituisci server.itzgeek.local con l'indirizzo IP nel caso utilizzi IP SAN .

. . .output.logstash:# Il server Logstash host:["server.itzgeek.local :5044"] # Commenta questa riga se Logstash non utilizza SSL ssl.certificate_authorities:["/etc/ssl/certs/logstash-forwarder.crt "]. . .

Riavvia il servizio.

systemctl riavvia filebeat

I registri dei battiti si trovano in genere in un file syslog.

cat /var/log/filebeat/filebeat

Accedi a Kibana

Accedi al Kibana utilizzando il seguente URL.

http://il-tuo-indirizzo-ip:5601/

Otterresti la home page di Kibana.

Al tuo primo accesso, devi mappare l'indice di filebeat. Vai a Gestione>> Modelli di indice .

Digita quanto segue nel Pattern dell'indice casella.

filebeat-*

Dovresti vedere almeno un indice filebeat qualcosa come sopra. Fare clic su Passaggio successivo.

Seleziona @timestamp e quindi fare clic su Create .

@timestamp

Verifica i tuoi modelli di indice e le relative mappature.

Ora, fai clic su Scopri per visualizzare i registri in arrivo ed eseguire query di ricerca.

Questo è tutto.


Cent OS
  1. Come installare Elasticsearch, Logstash e Kibana 4 su CentOS 7 / RHEL 7

  2. Come installare Graylog2 su CentOS 7 / RHEL 7

  3. Come installare Elasticsearch su CentOS 8 / RHEL 8

  4. Come installare Elasticsearch, Logstash e Kibana 4 su Ubuntu 14.04 / 15.04

  5. Come installare Elasticsearch su CentOS/RHEL 8

Imposta ELK Stack su Ubuntu 16.04 – Installa ElasticSearch, Logstash e Kibana su Ubuntu 16.04

Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su Ubuntu 18.04 / Ubuntu 16.04

Come installare ELK Stack (Elasticsearch, Logstash e Kibana) su Ubuntu 20.04

Come installare ELK Stack su CentOS 7

Come installare ELK Stack su CentOS 8

Come installare Elasticsearch Logstash Kibana (stack elastico) su Ubuntu 18.04