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

Come configurare il cluster di stack elastico multinodo su RHEL 8 / CentOS 8

Stack elastico ampiamente noto come stack ELK , è un gruppo di prodotti opensource come Elasticsearch , Archiviazione e Kibana . Elastic Stack è sviluppato e mantenuto dalla società Elastic. Utilizzando lo stack elastico, è possibile inviare i log di sistema a Logstash, è un motore di raccolta dati che accetta i log oi dati da tutte le fonti e normalizza i log e quindi inoltra i log a Elasticsearch per l'analisi , indicizzazione , cerca e archiviazione e infine utilizzando Kibana si possono rappresentare i dati visualizzati, utilizzando Kibana possiamo anche creare grafici e diagrammi interattivi basati sulle query dell'utente.

In questo articolo dimostreremo come configurare il cluster ELK Stack (Multi Node Elastic Stack) sui server RHEL 8/CentOS 8. Di seguito sono riportati i dettagli per il mio Cluster Stack Elastico:

Ricerca elastica:
  • Tre server con RHEL 8 / CentOS 8 minimo
  • IP e nome host – 192.168.56.40 (elasticsearch1.linuxtechi. local), 192.168.56.50 (elasticsearch2.linuxtechi. local), 192.168.56.60 (elasticsearch3.linuxtechi. local)
Archivio:
  • Due server con RHEL 8 / CentOS 8 minimo
  • IP e nome host – 192.168.56.20 (logstash1.linuxtechi. local) , 192.168.56.30 (logstash2.linuxtechi. local)
Kibana:
  • Un server con RHEL 8 / CentOS 8 minimo
  • Nome host – kibana.linuxtechi.local
  • IP – 192.168.56.10
Filebeat:
  • Un server con CentOS 7 minimo
  • IP e nome host – 192.168.56.70 (server web)

Iniziamo con la configurazione del cluster Elasticsearch,

Installazione del cluster Elasticsearch a 3 nodi

Come ho già affermato di aver mantenuto i nodi per il cluster Elasticsearch, accedere a ciascun nodo, impostare il nome host e configurare i repository yum/dnf.

Utilizzare il comando hostnamectl seguente per impostare il nome host sui rispettivi nodi,

[[email protected] ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "elasticsearch2.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"[[email protected] ] ~]# exec bash[[email protetta] ~]#

Per CentOS 8 System non è necessario configurare alcun repository di pacchetti del sistema operativo e per RHEL 8 Server, se disponi di un abbonamento valido e quindi lo hai sottoscritto con Red Hat per ottenere il repository di pacchetti. Nel caso in cui desideri configurare il repository yum/dnf locale per i pacchetti del sistema operativo, fai riferimento all'URL seguente:

Come configurare il repository Yum/DNF locale sul server RHEL 8 utilizzando DVD o file ISO

Configura il repository del pacchetto Elasticsearch su tutti i nodi, crea un file elastic.repo  nella cartella /etc/yum.repos.d/ con il seguente contenuto

~]# vi /etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=Repository Elasticsearch per packagesbaseurl 7.x=https://artifacts.elastic.co/packages/7. x/ymgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

salva ed esci dal file

Utilizza il comando rpm di seguito su tutti e tre i nodi per importare la chiave di firma pubblica di Elastic

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

Aggiungi le seguenti righe nel file /etc/hosts su tutti e tre i nodi,

192.168.56.40            elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60            elasticsearch3.linuxtechi.local

Installa Java su tutti e tre i nodi usando il comando yum / dnf,

[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y

Installa Elasticsearch utilizzando il comando sotto dnf su tutti e tre i nodi,

[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y

Nota: Nel caso in cui il firewall del sistema operativo sia abilitato e in esecuzione in ciascun nodo Elasticsearch, consenti le seguenti porte utilizzando il comando sotto firewall-cmd,

~]# firewall-cmd --permanent --add-port=9300/tcp~]# firewall-cmd --permanent --add-port=9200/tcp~]# firewall-cmd --reload

Configura Elasticsearch, modifica il file “/etc/elasticsearch/elasticsearch.yml ” su tutti e tre i nodi e aggiungi quanto segue,

~]# vim /etc/elasticsearch/elasticsearch.yml…………………………………………cluster.name:opn-clusternode.name:elasticsearch1.linuxtechi.localnetwork.host:192.168 .56.40http.port:9200discovery.seed_hosts:["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]cluster.initial_master_nodes:["elasticsearch1.linuxtechi.local", "elasticsearch2 .linuxtechi.local", "elasticsearch3.linuxtechi.local"]……………………………………………

Nota: su Ogni nodo, aggiungi il nome host corretto nel parametro node.name e l'indirizzo IP nel parametro network.host e gli altri parametri rimarranno gli stessi.

Ora avvia e abilita il servizio Elasticsearch su tutti e tre i nodi utilizzando il seguente comando systemctl,

~]# systemctl daemon-reload~]# systemctl abilita elasticsearch.service~]# systemctl avvia elasticsearch.service

Utilizza il comando 'ss' di seguito per verificare se il nodo elasticsearch è in ascolto sulla porta 9200,

[[email protetta] ~]# ss -tunlp | grep 9200tcp   LISTEN  0       128       [::ffff:192.168.56.40]:9200             *:*     users:(("java",pid=2734,fd=256))     >    #        [[email] 

Utilizza i seguenti comandi curl per verificare lo stato del cluster Elasticsearch

[[email protected] ~]# curl  http://elasticsearch1.linuxtechi.local:9200[[email protected] ~]# curl -X GET  http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?carino

L'output sopra il comando sarebbe qualcosa come sotto,

L'output sopra conferma che abbiamo creato correttamente un cluster Elasticsearch a 3 nodi e anche lo stato del cluster è verde.

Nota: Se desideri modificare la dimensione dell'heap JVM, devi modificare il file "/etc/elasticsearch/jvm.options ” e modifica i parametri seguenti in base al tuo ambiente,

  • -Xms1g
  • -Xmx1g

Passiamo ora ai nodi Logstash,

Installa e configura Logstash

Esegui i seguenti passaggi su entrambi i nodi Logstash,

Accedi a entrambi i nodi imposta il nome host usando il seguente comando hostnamectl,

[[email protected] ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "logstash2.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#

Aggiungi le seguenti voci nel file /etc/hosts in entrambi i nodi logstash

~]# vi /etc/hosts192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50            elasticsearch2.linuxtechi.local192.168.56.60            elasticsearch3.linuxtechi.local

Salva ed esci dal file

Configura il repository Logstash su entrambi i nodi, crea un filelogstash.repo nella cartella /ete/yum.repos.d/ con il seguente contenuto,

~]# vi /etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=repository Elasticsearch per packagesbaseurl 7.x=https://artifacts.elastic.co/packages/7. x/ymgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Salva ed esci dal file, esegui il seguente comando rpm per importare la chiave di firma

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

Installa Java OpenJDK su entrambi i nodi usando il seguente comando dnf,

~]# dnf install java-openjdk -y

Esegui il seguente comando dnf da entrambi i nodi per installare logstash,

[[email protetta] ~]# dnf install logstash -y[[email protetta] ~]# dnf install logstash -y

Ora configura logstash, esegui i passaggi seguenti su entrambi i nodi logstash,

Crea un file logstash conf, per questo prima abbiamo copia del file logstash di esempio in '/etc/logstash/conf.d/'

# cd /etc/logstash/# cp logstash-sample.conf conf.d/logstash.conf

Modifica il file conf e aggiorna il seguente contenuto,

# vi conf.d/logstash.confinput {  beats {    port => 5044  }}output {  elasticsearch {    hosts => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2. linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]    index => "%{[@metadata][beat]}-%{[@metadata][versione]}-%{+ AAAA.MM.gg}"    #user => "elastico"    #password => "cambiami"  }}

Nella sezione di output, nel parametro hosts specifica l'FQDN di tutti e tre i nodi Elasticsearch, gli altri parametri rimangono così come sono.

Consenti la porta logstash "5044" nel firewall del sistema operativo utilizzando il seguente comando firewall-cmd,

~ # firewall-cmd --permanent --add-port=5044/tcp~ # firewall-cmd –reload

Ora avvia e abilita il servizio Logstash, esegui i seguenti comandi systemctl su entrambi i nodi

~]# systemctl avvia logstash~]# systemctl abilita logstash

Utilizza il comando ss di seguito per verificare se il servizio logstash inizia ad essere in ascolto su 5044,

[[email protetta] ~]# ss -tunlp | grep 5044tcp   ASCOLTA  0       128                        *:5044               *:*      users:(("java",pid=2416,fd=96))    #               [[e-mail] 

L'output sopra conferma che logstash è stato installato e configurato correttamente. Passiamo all'installazione di Kibana.

Installa e configura Kibana

Accedi al nodo Kibana, imposta il nome host con hostnamectl comando,

[[email protected] ~]# hostnamectl set-hostname "kibana.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#

Modifica il file /etc/hosts e aggiungi le seguenti righe

192.168.56.40            elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60            elasticsearch3.linuxtechi.local

Imposta il repository Kibana usando il seguente,

[[email protetta] ~]# vi /etc/yum.repos.d/kibana.repo[elasticsearch-7.x]name=Repository Elasticsearch per 7.x packagesbaseurl=https://artifacts.elastic.co /packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md[[email protected] ~]# rpm --import https:// artifacts.elastic.co/GPG-KEY-elasticsearch

Esegui sotto il comando dnf per installare kibana,

[[email protetta] ~]# yum install kibana -y

Configura Kibana modificando il file “/etc/kibana/kibana.yml

[[email protetta] ~]# vim /etc/kibana/kibana.yml…………server.host:"kibana.linuxtechi.local"server.name:"kibana.linuxtechi.local"elasticsearch.hosts:["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]…………

Avvia e abilita il servizio kibana

[[email protected] ~]# systemctl avvia kibana[[email protected] ~]# systemctl abilita kibana

Consenti la porta Kibana "5601" nel firewall del sistema operativo,

[[email protected] ~]# firewall-cmd --permanent --add-port=5601/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#

Accedi al portale/GUI di Kibana utilizzando il seguente URL:

http://kibana.linuxtechi.local:5601

Dalla dashboard, possiamo anche controllare lo stato del nostro cluster Elastic Stack

Ciò conferma che abbiamo configurato correttamente il cluster Elastic Stack multinodo su RHEL 8 / CentOS 8.

Ora inviamo alcuni log ai nodi logstash tramite filebeat da altri server Linux, nel mio caso ho un server CentOS 7, spingerò tutti i log importanti di questo server in logstash tramite filebeat.

Accedi al server CentOS 7 e installa il pacchetto filebeat utilizzando il seguente comando rpm,

[[email protetta] ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpmRetrieving https://artifacts.elastic.co/downloads /beats/filebeat/filebeat-7.3.1-x86_64.rpmPreparazione...                        ####################################### [100%]Aggiornamento/installazione...   1:filebeat-7.3.1-1                #################################### ## [100%][[email protetta] ~]#

Modifica il file /etc/hosts e aggiungi le seguenti voci,

192.168.56.20            logstash1.linuxtechi.local192.168.56.30             logstash2.linuxtechi.local

Ora configura il filebeat in modo che possa inviare i log ai nodi logstash usando la tecnica di bilanciamento del carico, modifica il file “/etc/filebeat/filebeat.yml ” e aggiungi i seguenti parametri,

Sotto "filebeat.inputs: ' modifica sezione 'abilitato:falso ' a 'abilitato:vero ' e sotto i "percorsi ” parametro specifica i file di registro della posizione che possiamo inviare a logstash, In output la sezione Elasticsearch commenta “output.elasticsearch ” e host parametro. Nella sezione Output di Logstash, rimuovi i commenti per "output.logstash: " e "host: " e aggiungi entrambi i nodi logstash nei parametri host e anche "bilanciamento del carico:vero ”.

[[email protetta] ~]# vi /etc/filebeat/filebeat.yml……………………….filebeat.inputs:- type:log activate:true paths:    - /var/log/messages - /var/log/dmesg    - /var/log/maillog    - /var/log/boot.log#output.elasticsearch:  #  hosts:["localhost:9200"]output.logstash:    hosts:["logstash1.linuxtechi. local:5044", "logstash2.linuxtechi.local:5044"]    bilanciamento del carico:true………………………………………

Avvia e abilita il servizio filebeat usando sotto i comandi systemctl,

[[email protected] ~]# systemctl start filebeat[[email protected] ~]# systemctl enable filebeat

Ora vai alla GUI di Kibana, verifica se i nuovi indici sono visibili o meno,

Scegli l'opzione Gestione dalla barra laterale sinistra e quindi fai clic su Gestione indice in Elasticsearch,

Come possiamo vedere sopra, gli indici ora sono visibili, creiamo un pattern di indice,

Fare clic su "Modelli indice" dalla sezione Kibana, ci verrà chiesto di creare un nuovo modello, fare clic su "Crea modello indice ” e specifica il nome del pattern come “filebeat

Fare clic su Passaggio successivo

Scegli "Data e ora ” come filtro temporale per il pattern dell'indice e quindi fare clic su “Crea pattern dell'indice”

Ora fai clic su Scopri per vedere il modello di indice filebeat in tempo reale,

Ciò conferma che l'agente Filebeat è stato configurato correttamente e siamo in grado di vedere i registri in tempo reale sulla dashboard di Kibana.

Questo è tutto da questo articolo, non esitare a condividere il tuo feedback e commenti nel caso in cui questi passaggi ti aiutino a configurare il cluster di stack elastico multinodo sul sistema RHEL 8 / CentOS 8.


Cent OS
  1. Come installare node.js su RHEL 8 / CentOS 8 Linux

  2. Come configurare il server SysLog su CentOS 7 / RHEL 7

  3. Come configurare il server NFS su CentOS 7 / RHEL 7

  4. Come configurare Icinga Web 2 su CentOS 7 / RHEL 7

  5. Come impostare mutt in CentOS/RHEL

Come configurare il cluster ad alta disponibilità su CentOS 8 / RHEL 8

Come configurare Icinga Web 2 su CentOS 8 / RHEL 8

Come configurare il cluster ad alta disponibilità su CentOS 7 / RHEL 7

Come configurare uno Chef 12 su CentOS 7 / RHEL 7

Come configurare il server SysLog centralizzato su CentOS 8 / RHEL 8

Come configurare un cluster Redis in CentOS 8 – Parte 3