GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar un clúster de pila elástica de varios nodos en RHEL 8/CentOS 8

Pila elástica ampliamente conocida como pila ELK , es un grupo de productos de código abierto como Elasticsearch , Logstash y Kibana . Elastic Stack es desarrollado y mantenido por la empresa Elastic. Usando la pila elástica, uno puede alimentar los registros del sistema a Logstash, es un motor de recopilación de datos que acepta los registros o datos de todas las fuentes y normaliza los registros y luego los reenvía a Elasticsearch para analizar , indexación , buscando y almacenamiento y finalmente usando Kibana uno puede representar los datos visualizados, usando Kibana también podemos crear diagramas y gráficos interactivos basados ​​en las consultas del usuario.

En este artículo, demostraremos cómo configurar un clúster de pila elástica de múltiples nodos (ELK Stack) en servidores RHEL 8 / CentOS 8. Los siguientes son detalles de mi clúster de Elastic Stack:

Búsqueda elástica:
  • Tres servidores con mínimo RHEL 8/CentOS 8
  • IP y nombre de host:192.168.56.40 (elasticsearch1.linuxtechi. local), 192.168.56.50 (elasticsearch2.linuxtechi. local), 192.168.56.60 (elasticsearch3.linuxtechi. local)
Archivo de registro:
  • Dos servidores con un mínimo de RHEL 8/CentOS 8
  • IP y nombre de host:192.168.56.20 (logstash1.linuxtechi. local), 192.168.56.30 (logstash2.linuxtechi. local)
Kibana:
  • Un servidor con RHEL 8/CentOS 8 mínimo
  • Nombre de host:kibana.linuxtechi.local
  • IP:192.168.56.10
Latido de archivo:
  • Un servidor con CentOS 7 mínimo
  • IP y nombre de host:192.168.56.70 (servidor web)

Comencemos con la configuración del clúster de Elasticsearch,

Configurar un clúster de Elasticsearch de 3 nodos

Como ya dije, mantuve nodos para el clúster de Elasticsearch, inicie sesión en cada nodo, establezca el nombre de host y configure los repositorios yum/dnf.

Use el siguiente comando hostnamectl para establecer el nombre de host en los nodos respectivos,

[[email protected] ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "elasticsearch2.linuxtechi. local"[[correo electrónico protegido] ~]# exec bash[[correo electrónico protegido] ~]#[[correo electrónico protegido] ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"[[correo electrónico protegido ] ~]# bash ejecutivo[[email protected] ~]#

Para el sistema CentOS 8, no necesitamos configurar ningún repositorio de paquetes del sistema operativo y para el servidor RHEL 8, si tiene una suscripción válida y luego la suscribió con Red Hat para obtener el repositorio de paquetes. En caso de que desee configurar el repositorio local yum/dnf para los paquetes del sistema operativo, consulte la siguiente URL:

Cómo configurar el repositorio local de Yum/DNF en el servidor RHEL 8 mediante DVD o archivo ISO

Configure el repositorio de paquetes de Elasticsearch en todos los nodos, cree un archivo elastic.repo en la carpeta /etc/yum.repos.d/ con el siguiente contenido

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

guardar y salir del archivo

Use el siguiente comando rpm en los tres nodos para importar la clave de firma pública de Elastic

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

Agregue las siguientes líneas en el archivo /etc/hosts en los tres nodos,

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

Instale Java en los tres nodos usando el comando yum / dnf,

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

Instale Elasticsearch usando debajo del comando dnf en los tres nodos,

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

Nota: En caso de que el firewall del sistema operativo esté habilitado y ejecutándose en cada nodo de Elasticsearch, permita los siguientes puertos usando el comando firewall-cmd,

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

Configure Elasticsearch, edite el archivo “/etc/elasticsearch/elasticsearch.yml ” en los tres nodos y agregue lo siguiente,

~]# 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: en cada nodo, agregue el nombre de host correcto en el parámetro node.name y la dirección IP en el parámetro network.host y los demás parámetros seguirán siendo los mismos.

Ahora inicie y habilite el servicio Elasticsearch en los tres nodos usando el siguiente comando systemctl,

~]# systemctl daemon-reload~]# systemctl habilitar elasticsearch.service~]# systemctl iniciar elasticsearch.service

Use el siguiente comando 'ss' para verificar si el nodo elasticsearch comienza a escuchar en el puerto 9200,

[[correo electrónico protegido] ~]# ss -tunlp | grep 9200tcp   ESCUCHAR  0       128       [::ffff:192.168.56.40]:9200              *:*     usuarios:(("java",pid=2734,fd=256))                 
 Use los siguientes comandos curl para verificar el estado del clúster de Elasticsearch

[[correo electrónico protegido] ~]# curl  http://elasticsearch1.linuxtechi.local:9200[[correo electrónico protegido] ~]# curl -X GET  http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?bonita

La salida del comando anterior sería algo así como a continuación,

El resultado anterior confirma que hemos creado con éxito un clúster de Elasticsearch de 3 nodos y que el estado del clúster también es verde.

Nota: Si desea modificar el tamaño del almacenamiento dinámico de JVM, debe editar el archivo “/etc/elasticsearch/jvm.options ” y cambie los siguientes parámetros que se adapten a su entorno,

  • -Xms1g
  • -Xmx1g

Ahora pasemos a los nodos de Logstash,

Instalar y configurar Logstash

Realice los siguientes pasos en ambos nodos de Logstash,

Inicie sesión en ambos nodos y configure el nombre de host usando el siguiente comando hostnamectl,

[[email protected] ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "logstash2.linuxtechi.local"[[correo electrónico protegido] ~]# exec bash[[correo electrónico protegido] ~]#

Agregue las siguientes entradas en el archivo /etc/hosts en ambos nodos logstash

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

Guardar y salir del archivo

Configure el repositorio de Logstash en ambos nodos, cree un archivo logstash.repo en la carpeta /ete/yum.repos.d/ con el siguiente contenido,

~]# vi /etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=Repositorio de Elasticsearch para paquetes 7.xbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Guarde y salga del archivo, ejecute el siguiente comando rpm para importar la clave de firma

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

Instale Java OpenJDK en ambos nodos usando el siguiente comando dnf,

~]# dnf instalar java-openjdk -y

Ejecute el siguiente comando dnf desde ambos nodos para instalar logstash,

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

Ahora configure logstash, realice los pasos a continuación en ambos nodos de logstash,

Cree un archivo logstash conf, para eso primero copiamos el archivo logstash de muestra en '/etc/logstash/conf.d/'

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

Edite el archivo conf y actualice el siguiente contenido,

# vi conf.d/logstash.confinput {  late {    port => 5044  }}output {  elasticsearch {    hosts => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2. linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]    índice => "%{[@metadata][beat]}-%{[@metadata][versión]}-%{+ AAAA.MM.dd}"    #usuario => "elástico"    #contraseña => "cambiarme"  }}

En la sección de salida, en el parámetro hosts, especifique el FQDN de los tres nodos de Elasticsearch, los demás parámetros se dejan como están.

Permita el puerto logstash "5044" en el firewall del sistema operativo usando el siguiente comando firewall-cmd,

~ # cortafuegos-cmd --permanente --add-port=5044/tcp~ # cortafuegos-cmd –recargar

Ahora inicie y habilite el servicio Logstash, ejecute los siguientes comandos systemctl en ambos nodos

~]# systemctl iniciar logstash~]# systemctl eanble logstash

Use el siguiente comando ss para verificar si el servicio logstash comienza a escuchar en 5044,

[[correo electrónico protegido] ~]# ss -tunlp | grep 5044tcp   LISTEN  0       128                         *:5044                *:*      usuarios:(("java",pid=2416,fd=96))                           

El resultado anterior confirma que logstash se instaló y configuró correctamente. Pasemos a la instalación de Kibana.

Instalar y configurar Kibana

Inicie sesión en el nodo de Kibana, configure el nombre de host con hostnamectl mando,

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

Edite el archivo /etc/hosts y agregue las siguientes líneas

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

Configure el repositorio de Kibana usando lo siguiente,

[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo[elasticsearch-7.x]name=Elasticsearch repositorio para paquetes 7.xbaseurl=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:// artefactos.elastic.co/GPG-KEY-elasticsearch

Ejecute el siguiente comando dnf para instalar kibana,

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

Configure Kibana editando el archivo “/etc/kibana/kibana.yml

[[email protected] ~]# 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"]…………

Iniciar y habilitar el servicio kibana

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

Permitir el puerto Kibana '5601' en el firewall del sistema operativo,

[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=5601/tcpsuccess[[correo electrónico protegido] ~]# firewall-cmd --reloadsuccess[[correo electrónico protegido] ~]#

Acceda al portal/GUI de Kibana usando la siguiente URL:

http://kibana.linuxtechi.local:5601

Desde el panel, también podemos verificar el estado de nuestro clúster de Elastic Stack

Esto confirma que hemos configurado correctamente el clúster de Elastic Stack de varios nodos en RHEL 8/CentOS 8.

Ahora enviemos algunos registros a los nodos logstash a través de filebeat desde otros servidores Linux. En mi caso, tengo un servidor CentOS 7, enviaré todos los registros importantes de este servidor a logstash a través de filebeat.

Inicie sesión en el servidor CentOS 7 e instale el paquete Filebeat usando el siguiente comando rpm,

[[email protected] ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpmRecuperando https://artifacts.elastic.co/downloads /beats/filebeat/filebeat-7.3.1-x86_64.rpmPreparando...                          ############################### [100%]Actualizando/instalando...   1:filebeat-7.3.1-1                 ############################## ## [100%][[correo electrónico protegido] ~]#

Edite el archivo /etc/hosts y agregue las siguientes entradas,

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

Ahora configure el filebeat para que pueda enviar registros a los nodos logstash utilizando la técnica de balanceo de carga, edite el archivo “/etc/filebeat/filebeat.yml ” y agregue los siguientes parámetros,

Debajo de 'filebeat.inputs: ' cambio de sección 'habilitado:falso ' a 'habilitado:verdadero ' y bajo los "caminos ” especifique los archivos de registro de ubicación que podemos enviar a logstash. En la sección de salida de Elasticsearch comente “output.elasticsearch ” y anfitrión parámetro. En la sección de resultados de Logstash, elimine los comentarios de “output.logstash: ” y “hosts: ” y agregue los dos nodos logstash en los parámetros de los hosts y también “loadbalance:true ”.

[[email protected] ~]# vi /etc/filebeat/filebeat.yml………………………….filebeat.inputs:- tipo:log habilitado: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"]    equilibrio de carga:verdadero…………………………………………

Inicie y habilite el servicio filebeat usando debajo de los comandos systemctl,

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

Ahora vaya a Kibana GUI, verifique si los nuevos índices son visibles o no,

Elija la opción Gestión en la barra lateral izquierda y luego haga clic en Gestión de índices en Elasticsearch,

Como podemos ver arriba, los índices son visibles ahora, creemos un patrón de índice,

Haga clic en "Patrones de índice" de la sección Kibana, nos pedirá que creemos un nuevo patrón, haga clic en "Crear patrón de índice ” y especifique el nombre del patrón como “filebeat

Haga clic en Siguiente paso

Elija "Marca de tiempo ” como filtro de tiempo para el patrón de índice y luego haga clic en “Crear patrón de índice”

Ahora haga clic en Descubrir para ver el patrón de índice de filebeat en tiempo real,

Esto confirma que el agente de Filebeat se configuró correctamente y podemos ver los registros en tiempo real en el panel de control de Kibana.

Eso es todo de este artículo, no dude en compartir sus opiniones y comentarios en caso de que estos pasos lo ayuden a configurar un clúster de pila elástica multinodo en el sistema RHEL 8/CentOS 8.


Cent OS
  1. Cómo instalar node.js en RHEL 8 / CentOS 8 Linux

  2. Cómo configurar el servidor SysLog en CentOS 7 / RHEL 7

  3. Cómo configurar el servidor NFS en CentOS 7 / RHEL 7

  4. Cómo configurar Icinga Web 2 en CentOS 7 / RHEL 7

  5. Cómo configurar mutt en CentOS/RHEL

Cómo configurar un clúster de alta disponibilidad en CentOS 8/RHEL 8

Cómo configurar Icinga Web 2 en CentOS 8 / RHEL 8

Cómo configurar un clúster de alta disponibilidad en CentOS 7/RHEL 7

Cómo configurar un Chef 12 en CentOS 7 / RHEL 7

Cómo configurar el servidor SysLog centralizado en CentOS 8 / RHEL 8

Cómo configurar un clúster de Redis en CentOS 8 - Parte 3