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

Come installare Elasticsearch, Logstash e Kibana 4 su CentOS 7 / RHEL 7

Questo tutorial è per una vecchia versione di ELK Stack, alcuni collegamenti sono interrotti e potrebbero non funzionare come previsto. Una nuova versione è disponibile qui:Aggiornato:installa ELK Stack su CentOS 7 / RHEL 7.

In questo post, vedremo come installare Elasticsearch, Logstash e Kibana 4 su CentOS 7 / RHEL 7. Questo stack ELK ci aiuta a archiviare e gestire i log in una posizione centralizzata. Lo stack ELK è costituito da quattro componenti vitali che costituiscono uno stack meraviglioso per analizzare i problemi correlando gli eventi in un determinato momento.

La centralizzazione dei registri semplificherà la vita di un amministratore di sistema per analizzare i problemi e i problemi senza andare su ogni macchina per i registri e visualizzare tali registri per la gestione per i requisiti aziendali.

Componenti:

Logstash:esegue l'elaborazione (raccolta, analisi e invio a Elasticsearch) dei log in arrivo.

Elasticsearch – Archivia i log provenienti da Logstash.

Kibana 4 – Interfaccia Web per la visualizzazione dei log (ha una propria interfaccia).

I tre precedenti sono installati sul server.

Logstash-forwarder:installato sui computer client, invia il registro a Logstash tramite il protocollo lumberjack.

Versioni dell'applicazione:

Questo articolo utilizza la versione seguente dei software per lo stack ELK.

Elastisearch 1.5.0

logstash-1.4.2

Kibana 4

logstash-forwarder-0.4.0

Prerequisiti:

1. È necessario installare openJDK o Oracle JDK, si consiglia di installare Oracle JDK. Verifica la versione java utilizzando il comando seguente.

# java -version

java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

2. Configura il repository EPEL su CentOS 7 / RHEL 7.

3. Installa wget.

# yum -y install wget

Installa Elasticsearch:

Elasticsearch è un server di ricerca open source, offre una ricerca e analisi distribuite in tempo reale con interfaccia web RESTful. Elasticsearch archivia tutti i log inviati dal server logstash e visualizza i messaggi quando kibana4 richiede il riempimento completo della richiesta dell'utente tramite l'interfaccia web. Questo argomento copre le impostazioni di configurazione necessarie per ELK, puoi anche dare un'occhiata a Install Elasticsearch su CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1 per istruzioni dettagliate.

Installiamo Elasticsearch, può essere scaricato dal sito ufficiale. È possibile utilizzare il seguente comando per scaricare tramite terminale e installarlo.

# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.0.noarch.rpm

# rpm -Uvh elasticsearch-1.5.0.noarch.rpm

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

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

Attendi almeno un minuto per consentire il riavvio completo di Elasticsearch, altrimenti il ​​test avrà esito negativo. Ora Elastisearch dovrebbe essere in ascolto su 9200 per l'elaborazione della richiesta HTTP, possiamo usare CURL per ottenere la risposta.

# curl -X GET http://localhost:9200
{
"status" : 200,
"name" : "Delphi",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.5.0",
"build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",
"build_timestamp" : "2015-03-23T14:30:58Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}

Installa Logstash:

Logstash è uno strumento open source, utilizzato per raccogliere registri, analizzarli e archiviarli cercando. Sì, logstash viene fornito con un'interfaccia web (kibana3 è integrato) per visualizzare i log di cui non discuteremo qui, invece usiamo kibana4. L'elaborazione di vari tipi di eventi può essere estesa aggiungendo plug-in, al momento sono disponibili oltre 160 plug-in. Andiamo direttamente all'installazione.

# wget https://download.elasticsearch.org/logstash/logstash/packages/centos/logstash-1.4.2-1_2c0f5a1.noarch.rpm

# rpm -Uvh logstash-1.4.2-1_2c0f5a1.noarch.rpm

Una volta installato il server logstash, passiamo alla sezione successiva

Crea certificato SSL:

Logstash-forwarder che verrà installato sul client-server per spedire i log richiede un certificato SSL per convalidare l'identità del server logstash. Abbiamo due opzioni per creare un certificato SSL e dipende dalla configurazione del logstash-forwarder; se viene utilizzato il nome host ("server":[ "itzgeek:5050" ]), il nome soggetto di SSL deve corrispondere a "itzgeek". Se utilizzi ( “server”:[ “10.0.0.26:5050” ]) un indirizzo IP, devi creare un certificato SSL con IP SAN con valore 10.0.0.26.

Segui uno qualsiasi dei metodi per creare un certificato SSL.

Opzione 1:(FQDN nome host)

Prima di creare un certificato, assicurati di avere un record per il server logstash; assicurarsi che i server client siano in grado di risolvere il nome host del server logstash. Se non disponi di DNS, aggiungi gentilmente la voce host per il server logstash; dove 10.0.0.26 è l'indirizzo IP del server logstash e itzgeek è il nome host del tuo server logstash.

# vi /etc/hosts

10.0.0.26 itzgeek

Creiamo un certificato SSL.

Vai alla directory OpenSSL.

# cd /etc/pki/tls

Esegui il comando seguente per creare un certificato SSL, sostituisci quello "rosso" con il 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=itzgeek

Opzione 2:(Indirizzo IP)

Prima di creare un certificato SSL, è necessario aggiungere l'indirizzo IP del server logstash a SubjectAltName nel file di configurazione di OpenSSL.

# vi /etc/pki/tls/openssl.cnf

Vai alla sezione "[ v3_ca ]" e sostituisci quella "rossa" con l'ip del tuo server logstash.

subjectAltName = IP:10.0.0.26

Vai alla directory OpenSSL.

# cd /etc/pki/tls

Esegui il comando seguente per creare un certificato SSL.

# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Questo logstash-forwarder.crt dovrebbe essere copiato su tutti i server client che inviano i log al server logstash.

Configura Logstash:

I file di configurazione di Logstash possono essere trovati in /etc/logstash/conf.d/, solo una cartella vuota. Avremmo bisogno di creare file, file di configurazione logstash costituiti da tre sezioni di input, filtro e output; tutte e tre le sezioni possono essere trovate in un unico file oppure ogni sezione avrà file separati che terminano con .conf.

Qui useremo un singolo file per posizionare una sezione di input, filtro e output.

# vi /etc/logstash/conf.d/logstash_syslogs.conf

Nella prima sezione, inseriremo una voce per la configurazione dell'input. La configurazione seguente imposta lumberjack in ascolto sulla porta 5050 per i log in arrivo dal logstash-forwarder che si trova nei server client, inoltre utilizzerà il certificato SSL che abbiamo creato in precedenza.

input {
lumberjack {
port => 5050
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}

Nella seconda sezione, inseriremo una voce per la configurazione del filtro. Grok è un filtro in logstash, che esegue l'analisi dei log prima di inviarli a Elasticsearch per l'archiviazione. Il seguente filtro grok cercherà i log etichettati come "syslog" e tenterà di analizzarli per creare un indice strutturato.

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

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

}

Prendi in considerazione l'idea di visitare grokdebugger per i modelli di filtro.

Nella terza sezione, inseriremo una voce di configurazione dell'output. Questa sezione definisce la posizione in cui vengono archiviati i registri; ovviamente dovrebbe essere Elasticsearch.

output {
elasticsearch { host => localhost index => "logstash-%{+YYYY.MM.dd}" }
stdout { codec => rubydebug }
}

Ora avvia il servizio logstash.

# systemctl start logstash.service

I registri del server Logstash sono archiviati nel file seguente e ci aiuterà a risolvere i problemi.

# cat /var/log/logstash/logstash.log

Successivamente configureremo un logstash-forwarder per spedire i log al server logstash.

Configura Logstash-forwarder.

Logstash-forwarder è un software client che spedisce i log a un server logstash, dovrebbe essere installato su tutti i server client. Logstash-forwarder può essere scaricato dal sito Web ufficiale oppure puoi utilizzare il seguente comando per scaricarlo nel terminale e installarlo.

# wget https://download.elasticsearch.org/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm

# rpm -Uvh logstash-forwarder-0.4.0-1.x86_64.rpm

Logstash-forwader utilizza il certificato SSL per convalidare l'identità del server logstash, quindi copia logstash-forwarder.crt che abbiamo creato in precedenza dal server logstash al client. Apri il file di configurazione.

# vi /etc/logstash-forwarder.conf

Nella sezione "rete", menziona il server logstash con il numero di porta e il percorso del certificato logstash-forwarder che hai copiato dal server logstash. Questa sezione definisce il logstash-forwarder per inviare un log al server logstash "itzgeek" sulla porta 5050 e il client convalida l'identità del server con l'aiuto del certificato SSL.

Nota:sostituisci "itzgeek" con l'indirizzo IP in caso di utilizzo di IP SAN.

"servers": [ "itzgeek:5050" ],

"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",

"timeout": 15

Nella sezione "file", configura quali sono tutti i file da spedire. In questo articolo configureremo un logstash-forwarder per inviare un log (/var/log/messages) al server logstash con "syslog" come tipo.

{
"paths": [
"/var/log/messages"
],

"fields": { "type": "syslog" }
}

Riavvia il servizio.

# systemctl start logstash-forwarder.service

Puoi guardare un file di registro in caso di problemi.

# cat /var/log/logstash-forwarder/logstash-forwarder.err

Configura Kibana 4:

Kidbana fornisce la visualizzazione dei log, scaricalo dal sito ufficiale. Usa il seguente comando per scaricarlo nel terminale.

wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.2-linux-x64.tar.gz

Estrailo e spostalo in /opt/

tar -zxvf kibana-4.0.2-linux-x64.tar.gz

mv kibana-4.0.2-linux-x64 /opt/kibana4

Abilita il file PID per Kibana, questo è necessario per creare un file di inizializzazione di sistema.

# sed -i 's/#pid_file/pid_file/g' /opt/kibana4/config/kibana.yml

Kibana può essere avviato eseguendo /opt/kibana4/bin/kibana, per eseguire kibana come server creeremo un file systemd.

# vi /etc/systemd/system/kibana4.service

[Unit]
Description=Kibana 4 Web Interface
After=elasticsearch.service
After=logstash.service
[Service]
ExecStartPre=rm -rf /var/run/kibana.pid
ExecStart=/opt/kibana4/bin/kibana/
ExecReload=kill -9 $(cat /var/run/kibana.pid) && rm -rf /var/run/kibana.pid && /opt/kibana4/bin/kibana/
ExecStop=kill -9 $(cat /var/run/kibana.pid)
[Install]
WantedBy=multi-user.target

Avvia e abilita kibana per l'avvio automatico all'avvio del sistema.

# systemctl start kibana4.service

systemctl enable kibana4.service

Accedi al tuo portale kibana visitando il seguente link

http://your-ip-address:5601/

Otterrai una pagina successiva in cui devi mappare l'indice logstash per usare kibana. Scorri verso il basso su Nome campo ora e seleziona

@timestamp

Una volta selezionato, ti reindirizzerà alla pagina principale di kibana.

Kibana non viene fornito con alcun tipo di accesso protetto da password al portale. Con Nginx, possiamo configurare in modo tale che l'utente debba soddisfare il meccanismo di autenticazione prima di accedere al portale.

Questo è tutto, hai configurato correttamente lo stack ELK per la gestione centralizzata dei registri.

Questo tutorial è per una vecchia versione di ELK Stack, alcuni collegamenti sono interrotti e potrebbero non funzionare. Una nuova versione è disponibile qui:Come installare ELK Stack su CentOS 7 / RHEL 7.
Cent OS
  1. Come installare Graylog2 su CentOS 7 / RHEL 7

  2. Come installare Elasticsearch su CentOS 8 / RHEL 8

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

  4. Come installare Python 3.5 su CentOS/RHEL e Fedora

  5. Come installare Elasticsearch su CentOS/RHEL 8

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

Come installare Graylog 3.0 su CentOS 7 / RHEL 7

Come installare e utilizzare Firewalld in CentOS/RHEL

Come installare Samba su RHEL e CentOS Stream

Come installare e configurare Jenkins su CentOS 8 / RHEL 8

Come installare Wine 5.0 su CentOS, RHEL e Fedora