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

Come installare ELK Stack su RHEL 8

Lo stack ELK è anche noto come stack elastico, è composto da quattro progetti open source:Elasticsearch, Logstash, Kibana e Beats. Ti aiuta ad avere tutti i tuoi registri archiviati in un unico posto e offre la possibilità di analizzare e visualizzare i dati o i problemi correlando gli eventi in un determinato momento.

Questa guida ti aiuta a installare lo stack ELK su RHEL 8.

Componenti

Elasticsearch – Un motore di ricerca full-text open source. Memorizza i log in entrata da Logstash e offre la possibilità di cercare log/dati in tempo reale

Logstash:esegue l'elaborazione dei dati (raccogli, arricchisci e trasforma) dei log in arrivo inviati da beats (forwarder) e li invia a Elasticsearch

Kibana:fornisce la visualizzazione di dati o registri da Elasticsearch.

Beats:installato sui computer client, raccoglie e 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.

Nome host OS Indirizzo IP Scopo
elk.itzgeek.local RHEL 8 192.168.1.10 Pila ELK
client.itzgeek.local CentOS 7 192.168.1.20 Macchina client (Filebeat)

Prerequisiti

Installa Java

Poiché Elasticsearch è basato su Java, è necessario che sul tuo computer sia installato OpenJDK o Oracle JDK.

LEGGI:​​ Come installare Java su RHEL 8

Qui sto usando OpenJDK 1.8.

yum -y installa java

Verifica la versione Java.

versione java

Risultato:

openjdk versione "1.8.0_212"OpenJDK Runtime Environment (build 1.8.0_212-b04)OpenJDK 64-Bit Server VM (build 25.212-b04, modalità mista)

Configura repository ELK

Importa la chiave di firma elastica.

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

Configura il repository Elasticsearch sia sul server ELK che sul client.

cat < /etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=repository Elasticsearch per packagesbaseurl 7.x=https://artifacts.elastic.co/packages/oss -7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-mdEOF

Installa e configura Elasticsearch

Elasticsearch è un open source, il motore di ricerca full-text 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-oss

Modifica il file di configurazione di Elasticsearch in

vi /etc/elasticsearch/elasticsearch.yml

Imposta il nome del cluster, il nome del nodo, l'indirizzo IP di ascolto in base al tuo ambiente.

cluster.name:elkstack nome.nodo:elk.itzgeek.local host.rete:192.168.1.10 

Se imposti l'indirizzo IP di ascolto, devi definire host seed e nodi master iniziali.

discovery.seed_hosts:["elk.itzgeek.local "]cluster.initial_master_nodes:["elk.itzgeek.local "]

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

systemctl daemon-reloadsystemctl abilita elasticsearchsystemctl avvia elasticsearch

Usa CURL per verificare se Elasticsearch sta rispondendo alle query.

curl -X OTTIENI http://192.168.1.10:9200

Risultato:

{ "name" :"elk.itzgeek.local", "cluster_name" :"elkstack", "cluster_uuid" :"yws_6oYKS965bZ7GTh0e6g", "version" :{ "number" :"7.2.0", "build_flavor" :"oss", "build_type" :"rpm", "build_hash" :"508c38a", "build_date" :"2019-06-20T15:54:18.811730Z", "build_snapshot" :false, "lucene_version" :"8.0 .0", "minimum_wire_compatibility_version" :"6.8.0", "minimum_index_compatibility_version" :"6.0.0-beta1" }, "tagline" :"Sai, per la ricerca"}

Verifica lo stato del cluster eseguendo il comando seguente.

curl -XGET '192.168.1.10:9200/_cluster/health?pretty'

Risultato:lo stato del cluster dovrebbe essere verde.

{ "cluster_name" :"elkstack", "status" :"verde ", "timed_out" :false, "number_of_nodes" :1, "number_of_data_nodes" :1, "active_primary_shards" :0, "active_shards" :0, "relocating_shards" :0, "initializing_shards" :0, "unassigned_shards" :0, "delayed_unassigned_shards" :0, "number_of_pending_tasks" :0, "number_of_in_flight_fetch" :0, "task_max_waiting_in_queue_millis" :0, "active_shards_percent_as_number" :100.0}

Installa e configura Logstash

Logstash è uno strumento open source per la gestione dei log. Raccoglie i log, li analizza e li archivia su Elasticsearch. 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-oss

La configurazione di Logstash può essere trovata in /etc/logstash/conf.d/ .

Il file di configurazione di Logstash è costituito da tre sezioni: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/beats.conf

Nella sezione di input, configureremo Logstash in modo che sia in ascolto sulla porta 5044 per i log in arrivo dai beat (forwarder) installati sui computer client.

input { battiti { porta => 5044 }}

Nella sezione dei filtri, utilizzeremo Grok per analizzare i log prima di inviarli a Elasticsearch.

Il seguente filtro grok cercherà il syslog log etichettati e tenta di analizzarli per creare un indice strutturato. Questo filtro è abbastanza utile solo per monitorare i messaggi di syslog (/var/log/messages).

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, visita la pagina di grokdebugger.

Nella sezione di output definiremo la posizione in cui verranno archiviati i log, ovviamente un nodo Elasticsearch.

output { elasticsearch { hosts => ["192.168.1.10:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }}

Ora avvia e abilita il servizio Logstash.

systemctl avvia logstashsystemctl abilita logstash

Attendi un minuto per consentire l'avvio di Logstash, quindi esegui il comando seguente per verificare se è in ascolto sulla porta 5044.

netstat -antup | grep -i 5044

Risultato:

tcp6 0 0 :::5044 :::* ASCOLTA 31014/java

Puoi risolvere i problemi di Logstash con l'aiuto dei log.

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 install kibana-oss

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 a Kibana da macchine esterne. Per consentirlo, modifica la riga sottostante e menziona l'IP del tuo server ELK.

server.host:"0.0.0.0 "

Decommenta la riga seguente e aggiornala con l'URL dell'istanza Elasticsearch.

elasticsearch.hosts:["http://192.168.1.10:9200 "]

Avvia e abilita kibana all'avvio del sistema.

systemctl avvia kibanasystemctl abilita kibana

Controlla se Kibana è in ascolto sulla porta 5601.

netstat -antup | grep -i 5601

Risultato:

tcp 0 0 0.0.0.0:5601 0.0.0.0:* ASCOLTA 3631/node

Firewall

Configura un firewall sul server ELK per ricevere i log dalle macchine client.

5044 – Affinché Logstash riceva i log

5061 – Per accedere al Kibana da macchine esterne.

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.

Configura il repository elastico sulla macchina client per ottenere il pacchetto Filebeat.

Installa Filebeat usando il seguente comando.

yum -y install filebeat

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.

Modifica il file di configurazione di filebeat.

vi /etc/filebeat/filebeat.yml

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

#------------ Output Elasticsearch ------------------ ------------# output.elasticsearch:# Array di host a cui connettersi. # hosts:["localhost:9200"] # Protocollo opzionale e credenziali di autenticazione di base. #protocollo:"https" #username:"elastic" #password:"changeme"

Ora trova la riga output.logstash e modificare le voci come di seguito. Questa sezione definisce filebeat per inviare i log al server Logstash 192.168.1.10 sulla porta 5044 .

. . .#----------------------------- Output Logstash ------------------ ---------------output.logstash:# Gli host di Logstash:["192.168.1.10:5044 "]. . .

In cima a /etc/filebeat/filebeat.yml , vedresti la sezione dei cercatori. Qui è necessario specificare quali registri devono essere inviati a Logstash.

Ogni cercatore inizia con un carattere.

Qui configureremo filebeat per inviare i log di sistema /var/log/messages al server Logstash. Per farlo, modifica il cercatore esistente in percorsi sezione come mostrato di seguito.

. . .filebeat.inputs:# Each - è un input. La maggior parte delle opzioni può essere impostata a livello di input, quindi# puoi utilizzare input diversi per varie configurazioni.# Di seguito sono riportate le configurazioni specifiche degli input.- digita:log # Cambia in true per abilitare questa configurazione di input. abilitato:true # Percorsi che devono essere scansionati e recuperati. Percorsi basati su glob. percorsi:- /var/log/messages #- c:\programdata\elasticsearch\logs\*. . .

Riavvia il servizio.

systemctl riavvia filebeatsystemctl abilita filebeat

Accedi a Kibana

Accedi al Kibana utilizzando il seguente URL.

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

Otterresti la home page di Kibana. Fai clic su Esplora da solo .

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

Digita quanto segue nel Pattern dell'indice casella.

filebeat-*
Dovresti vedere almeno un indice filebeat qualcosa come di seguito. Fai clic su Passaggio successivo .

Seleziona @timestamp e quindi fare clic su Crea modello indice .

@timestamp

Verifica i tuoi modelli di indice e le relative mappature.

Ora, fai clic su Scopri per visualizzare i log ed eseguire query di ricerca.

Conclusione

È tutto. Hai imparato con successo come installare ELK Stack su RHEL 8. Condividi il tuo feedback nella sezione commenti.


Cent OS
  1. Come installare Elasticsearch, Logstash e Kibana (ELK Stack) su CentOS 8

  2. Come installare Graylog2 su CentOS 7 / RHEL 7

  3. Come installare Elasticsearch su CentOS 8 / RHEL 8

  4. Come installare Elasticsearch su CentOS/RHEL 8

  5. Come installare lo stack ELK su CentOS 7

Come configurare lo stack ELK su Debian 10 / Debian 9

Come installare ELK Stack su Ubuntu 18.04

Come installare ELK Stack su AlmaLinux 8

Come installare ELK Stack su CentOS 7

Come installare ELK Stack su CentOS 8

Come installare ELK Stack su Debian 8