Cómo instalar Elasticsearch, Logstash y Kibana (ELK Stack) en CentOS/RHEL 7

Cómo instalar Elasticsearch, Logstash y Kibana (ELK Stack) en CentOS/RHEL 7

Si usted es una persona que está, o ha estado en el pasado, a cargo de inspeccionar y analizar los registros del sistema en Linux, sabe en qué pesadilla puede convertirse esa tarea si se monitorean múltiples servicios simultáneamente.

En días pasados, esa tarea tenía que realizarse principalmente de forma manual, y cada tipo de registro se manejaba por separado. Afortunadamente, la combinación de Elasticsearch. Logstash. y Kibana. en el lado del servidor, junto con Filebeat. en el cliente lado, hace que esa tarea una vez difícil parezca un paseo por el parque hoy.

Los primeros tres componentes forman lo que se llama una pila ELK. cuyo propósito principal es recolectar registros de varios servidores al mismo tiempo (también conocido como registro centralizado).

Lectura sugerida: 4 buenas herramientas de administración y monitoreo de registros de código abierto para Linux

Una interfaz web incorporada basada en Java le permite inspeccione los registros rápidamente de un vistazo para facilitar la comparación y la resolución de problemas. Filebeat. que puede describirse como un agente de envío de registros, envía estos registros de cliente a un servidor central.

Veamos cómo encajan todas estas piezas. Nuestro entorno de prueba constará de las siguientes máquinas:

Servidor central. CentOS 7. (dirección IP: 192.168. 0,29. . 2 GB. de RAM. Cliente n. ° 1. CentOS 7. (dirección IP: 192.168.0.100. . 1 GB. de RAM. Cliente n. ° 2. Debian 8. (dirección IP: 192.168.0.101. . 1 GB. de RAM. freestar.config.enabled_slots.push

Tenga en cuenta que los valores de RAM. proporcionados aquí no son requisitos previos estrictos, sino valores recomendados para implementación exitosa de la pila ELK. en el servidor central. Menos RAM. en los clientes no hará mucha diferencia, si es que hay alguna, en absoluto.

Instalación de ELK Stack en el servidor

Comencemos por instalar Pila ELK. en el servidor, junto con una breve explicación de lo que hace cada componente:

  1. Elasticsearch. almacena los registros que son enviados por los clientes.
  2. Logstash. procesa esos registros.
  3. Kibana. proporciona la interfaz web que nos ayudará a inspeccionar y analizar los registros.

Instale los siguientes paquetes en el servidor central. En primer lugar, instalaremos Java JDK. versión 8. (actualización 102. la última en el momento de escribir este artículo), que es una dependencia de los componentes ELK.

Es posible que desee comprobar primero en la página de descargas de Java aquí para ver si hay una actualización más nueva disponible.

# yum update # cd/opt # wget–no-cookies–no-check-certificate–header “Cookie: gpw_e24 = http% 3A% 2F% 2Fwww.oracle.com% 2F; oraclelicense = accept-securebackup-cookie” “http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.rpm “# rpm-Uvh jre-8u102-linux-x64.rpm

Es hora de comprobar si instalación completada correctamente:

# java-version Verificar la versión de Java desde la línea de comandos  Verificar la versión de Java desde la línea de comandos Verificar la versión de Java desde la línea de comandos

Para instalar las últimas versiones de Elasticsearch. Logstash. y Kibana. tendremos que crear repositorios para yum. manualmente de la siguiente manera:

Habilitar Elasticsearch Repository

1.. Importe la clave GPG pública de Elasticsearch al administrador de paquetes rpm:

# rpm–import http://packages.elastic.co/GPG-KEY-elasticsearch

2.. Inserte las siguientes líneas en el archivo de configuración del repositorio elasticsearch.repo:

/etc/yum.repos.d/elasticsearch.repo [elasticsearch] name = Elasticsearch repositorio baseurl = http://paquetes .elastic.co/elasticsearch/2.x/centos gpgcheck = 1 gpgkey = http://packages.elastic.co/GPG-KEY-elasticsearch habilitado = 1

3.. Instale el paquete Elasticsearch.

# yum install elasticsearch

Cuando se complete la instalación, se le pedirá que inicie y habilite elasticsearch:

 Instalar Elasticsearch en Linux  Instalar Elasticsearch en Linux Instalar Elasticsearch en Linux

4.. Inicie y habilitar el servicio.

# systemctl daemon-reload # systemctl habilitar elasticsearch # systemctl iniciar elasticsearch

5.. Permitir el tráfico a través del puerto TCP 9200. en su firewall:

# firewall-cmd–add-port = 9200/tcp # firewall-cmd–add-port = 9200/tcp–permanent

6.. Compruebe si Elasticsearch. responde a solicitudes simples a través de HTTP.

# curl-X GET http://localhost: 9200

La salida del comando anterior debe ser similar a:

Verificar instalación de Elasticsearch  Verificar instalación de Elasticsearch Verificar la instalación de Elasticsearch

Asegúrese de completar los pasos anteriores y luego proceda con Logstash. Dado que tanto Logstash. como Kibana. comparten la clave Elasticsearch GPG. no es necesario volver a importarla antes de instalar los paquetes.

Lectura sugerida: Administrar registros del sistema (configurar, rotar e importar a la base de datos) en CentOS 7

Habilitar el repositorio de Logstash

7.. Inserte las siguientes líneas en el archivo de configuración del repositorio logstash.repo:

/etc/yum.repos.d/logstash.repo [logstash] nombre = Logstash baseurl = http://packages.elasticsearch.org/logstash/2.2/centos gpgcheck = 1 gpgkey = http://packages.elasticsearch .org/GPG-KEY-elasticsearch enabled = 1

8.. Instale el paquete Logstash.

# yum install logstash

9 .. Agregue un certificado SSL. basado en la dirección IP del servidor ELK en la siguiente línea debajo de [v3 _ca] sección en/etc/pki/tls/openssl.cnf:

[v3_ca] subjectAltName = IP: 192.168.0.29.  Agregar dirección IP del servidor Elasticsearch  Agregar dirección IP del servidor Elasticsearch Agregar dirección IP del servidor Elasticsearch

10.. Generar un certificado autofirmado válido para 365. días:

# cd/etc/pki/tls # openssl req-config/etc/pki/tls/openssl.cnf-x509-days 3650-batch-nodes-newkey rsa: 2048-keyout private/logstash-forwarder.key-out certs/logstash-forwarder.crt

11.. Configurar Logstash. archivos de entrada, salida y filtro:

Entrada. cree/etc/logstash/conf.d/input.conf e inserte las siguientes líneas en ello. Esto es necesario para que Logstash “ aprenda. cómo procesar ritmos provenientes de clientes. Asegúrese de que la ruta al certificado y la clave coincidan con las rutas correctas como se describe en el paso anterior:

/etc/logstash/conf.d/input.conf input beats port => 5044 ssl => true ssl_certificate => “/etc/pki/tls/certs/logstash-forwarder.crt” ssl_key => “/etc/pki/tls/private/logstash-forwarder.key”

Salida (/etc/logstash/conf. d/output.conf) archivo:

/etc/logstash/conf.d/output.conf output elasticsearch hosts => [“localhost: 9200″] sniffing => true manage_template => false index => ” % [@ metadata] [beat]-% + YYYY.MM.dd “document_type =>”% [@ metadata] [type] ”

Filtro (/etc/logstash/conf. d/filter.conf) archivo. Registraremos los mensajes de syslog para simplificar:

/etc/logstash/conf.d/filter.conf filter if [type] == “syslog” grok match => “message” => “% SYSLOGLINE” fecha match => [“marca de tiempo”, “MMM d HH: mm: ss”, “MMM dd HH: mm: ss”]

12.. Verifique Logstash. archivos de configuración.

# service logstash configtest Verificar configuración de Logstash  Verificar la configuración de Logstash Verificar la configuración de Logstash

13.. Inicie y habilite logstash:

# systemctl daemon-reload # systemctl start logstash # systemctl enable logsta sh

14.. Configure el firewall para permitir que Logstash obtenga los registros de los clientes (puerto TCP 5044. :

# firewall-cmd–add-port = 5044/tcp # firewall-cmd–add-port = 5044/tcp–permanent Habilitar repositorio de Kibana

14.. Inserte las siguientes líneas en el archivo de configuración del repositorio kibana.repo:

/etc/yum.repos.d/kibana.repo [kibana] name = Kibana repositorio baseurl = http://packages.elastic.co/kibana/4.4/centos gpgcheck = 1 gpgkey = http://paquetes .elastic.co/GPG-KEY-elasticsearch enabled = 1

15.. Instale el paquete Kibana.

# yum install kibana

16.. Inicie y habilite Kibana.

# systemctl daemon-reload # systemctl start kibana # systemctl enable kibana

17.. Asegúrese de que puede acceder a la interfaz web de Kibana desde otra computadora (permita el tráfico en el puerto TCP 5601. :

# firewall-cmd–add-port = 5601/tcp # firewall-cmd–add-por t = 5601/tcp–permanent

18.. Inicie Kibana. (http://192.168.0.29:5601) para verificar que puede acceder a la interfaz web:

 Acceder a la interfaz web de Kibana  Acceder a la interfaz web de Kibana Acceder a la interfaz web de Kibana

Regresaremos aquí después de haber instalado y configurado Filebeat. en los clientes.

Lectura sugerida: Supervise los registros del servidor en tiempo real con la herramienta“ Log.io ”en Linux

Instale Filebeat en los servidores cliente

Le mostraremos cómo hacer esto para el Cliente n. ° 1. (luego repita para el Cliente n. ° 2. cambiando las rutas si corresponde a su distribución).

1.. Copie el certificado SSL del servidor a los clientes:

# scp/etc/pki/tls/certs/logstash-forwarder.crt [correo electrónico protegido]:/etc/pki/tls/certs/

2.. Importe la clave pública GPG Elasticsearch. al administrador de paquetes rpm:

# rpm–import http://packages .elastic.co/GPG-KEY-elasticsearch

3.. Cree un repositorio para Filebeat. (/etc/yum.repos.d/filebeat.repo) en Distribuciones basadas en CentOS.

/etc/yum.repos.d/filebeat.repo [filebeat] name = Filebeat para clientes ELK baseurl = https://packages.elastic.co/beats/yum/el/$ basearch habilitado = 1 gpgkey = https://paquete es.elastic.co/GPG-KEY-elasticsearch gpgcheck = 1

4.. Configure la fuente para instalar Filebeat en Debian. y sus derivados:

# aptitude install apt-transport-https # echo “deb https://packages.elastic.co/beats/apt stable main”>/etc/apt/sources.list.d/filebeat.list # aptitude update

5.. Instale el paquete Filebeat.

# yum install filebeat [en CentOS. y distribuciones basadas] # aptitude install filebeat [en Debian. y sus derivados]

6.. Inicie y habilite Filebeat:

# systemctl start filebeat # systemctl enable filebeat Configure Filebeat

Una advertencia aquí. La configuración de Filebeat. se almacena en un archivo YAML. que requiere una sangría estricta. Tenga cuidado con esto al editar/etc/filebeat/filebeat.yml de la siguiente manera:

  1. En rutas. indique qué archivos de registro deben “enviarse” al servidor ELK.
  2. En buscadores. :

input_type: log document_type: syslog

  1. En salida.
    1. Descomente la línea que comienza con logstash.
    2. Indique la dirección IP de su servidor ELK y el puerto donde Logstash escucha en hosts.
    3. Asegúrese de que la ruta al certificado apunte al archivo real que creó en el Paso I. (sección Logstash. anterior.

Los pasos anteriores son ilustrado en la siguiente imagen:

Configurar Filebeat en servidores cliente Configurar Filebeat en servidores cliente Configure Filebeat en los servidores cliente

Guarde los cambios, y luego reinicie Filebeat. en los clientes:

# systemctl restart filebeat

Una vez que hayamos completado los pasos anteriores en los clientes, no dude en continuar.

Probando Filebeat

Para verificar que los registros de th Los clientes se pueden enviar y recibir correctamente, ejecute el siguiente comando en el servidor ELK.

# curl-XGET ‘http://localhost: 9200/filebeat-*/_ search? pretty’

El resultado debe ser similar a (observe cómo se reciben los mensajes de /var/log/messages. y /var/log/secure. de client1. y client2. :

 Prueba de Filebeat  Probando Filebeat Prueba de Filebeat

De lo contrario, compruebe si hay errores en el archivo de configuración de Filebeat.

# journalctl-xe

después de intentar reiniciar Filebeat le indicará la (s) línea (s) ofensivas.

Probando Kibana

Una vez que hayamos verificado que los clientes envían los registros y se reciben correctamente en el servidor. Lo primero que tendremos que hacer en Kibana. es configurar un patrón de índice y establecerlo como predeterminado.

Puede describir un índice como una base de datos completa en un contexto de base de datos relacional . Iremos con filebeat-* (o puede usar un criterio de búsqueda más preciso como se explica en la documentación oficial).

Ingrese filebeat-* en el nombre del índice. o campo de patrón. y luego haga clic en Crear.

 Probando Kibana  Probando Kibana Probando Kibana

Tenga en cuenta que estará se le permitió ingresar un criterio de búsqueda más detallado más tarde. A continuación, haga clic en la estrella dentro del rectángulo verde para configurarlo como el patrón de índice predeterminado:

 Configurar índice de Kibana predeterminado Patrón  Configurar patrón de índice de Kibana predeterminado Configurar patrón de índice de Kibana predeterminado

Finalmente, en el En el menú Descubrir. encontrará varios campos para agregar al informe de visualización de registros. Simplemente coloque el cursor sobre ellos y haga clic en Agregar.

 Agregar informe de visualización de registros  Agregar informe de visualización de registro Agregar visualización de registro Informe

Los resultados se mostrarán en el área central de la pantalla como se muestra arriba. Siéntase libre de jugar (agregar y eliminar campos del informe de registro) para familiarizarse con Kibana.

De forma predeterminada, Kibana. mostrará los registros que se procesaron durante los últimos 15. minutos (consulte la esquina superior derecha), pero puede cambiar ese comportamiento seleccionando otro período de tiempo:

 Kibana Log Reports  Kibana Log Reports Kibana Log Reports

Resumen

En este artículo, hemos explicado cómo configurar una pila ELK para recopilar los registros del sistema enviados por dos clientes, una máquina CentOS 7 y una Debian 8.

Ahora puede consultar la documentación oficial de Elasticsearch y encontrar más detalles sobre cómo usar esta configuración para inspeccionar y analizar sus registros de manera más eficiente.

Si tiene alguna pregunta, no dude en preguntar. Esperamos con interés escuchar de usted.