ELK stack es una plataforma de análisis de datos con todas las funciones, consta de la herramienta de código abierto Elasticsearch, Logstash y Kibana. Le ayuda a almacenar y administrar registros de forma centralizada y le brinda la capacidad de analizar los problemas.
Este artículo lo ayuda a instalar la pila ELK en Debian 10 / Debian 9.
Instalar pila ELK
Elasticsearch:almacena los registros entrantes de Logstash y proporciona la capacidad de buscar registros/datos en tiempo real
Logstash:procesamiento (recopilar, enriquecer y enviarlo a Elasticsearch) de registros entrantes enviados por beats (reenviador).
Kibana:proporciona visualización de eventos y registros.
Beats:se instala en las máquinas cliente y envía registros a Logstash o Elasticsearch a través del protocolo beats.
Instalar Java
Elasticsearch requiere que OpenJDK u Oracle JDK estén disponibles en su máquina. Aquí, para esta demostración, estoy usando OpenJDK.
sudo apt update sudo apt install -y openjdk-11-jre
Compruebe la versión de Java.
java -version
Salida:
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)
Si desea utilizar OracleJDK, lea:
LEER:Cómo instalar Oracle Java en Debian 10 / Debian 9
Añadir repositorio elástico
Instale la compatibilidad con wget y HTTPS para apt.
sudo apt install -y wget apt-transport-https curl
Los paquetes ELK se pueden obtener del repositorio de Elastic.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Instalar y configurar Elasticsearch
Para empezar, ahora instalaremos el servidor Elasticsearch, un motor de búsqueda de código abierto basado en Lucene. Proporciona un motor de búsqueda de texto completo distribuido en tiempo real con capacidad para múltiples inquilinos con una interfaz web HTTP y documentos JSON sin esquema.
Elasticsearch almacena los datos enviados por Logstash y los muestra a través de Kibana a pedido del usuario.
Instale Elasticsearch usando el siguiente comando.
sudo apt update sudo apt install -y elasticsearch-oss
Inicie el servicio Elasticsearch.
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
Espere unos minutos y ejecute el siguiente comando para ver el estado de la interfaz REST de Elasticsearch.
curl -X GET http://localhost:9200
Salida:
{ "name" : "debian10", "cluster_name" : "elasticsearch", "cluster_uuid" : "6y4OcEnYS3qkN_AetQAYMQ", "version" : { "number" : "7.8.0", "build_flavor" : "oss", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
El resultado anterior confirma que Elasticsearch funciona correctamente.
Instalar y configurar Logstash
Logstash es un motor de recopilación de datos y análisis de registros de código abierto. Recopila registros, los analiza y los almacena en Elasticsearch para realizar búsquedas. Hay más de 160 complementos disponibles para Logstash, que brinda la capacidad de procesar diferentes tipos de eventos sin trabajo adicional.
sudo apt install -y logstash-oss
El archivo de configuración de Logstash consta de tres secciones, a saber, entrada, filtro y salida. Puede poner las tres secciones en un solo archivo, o un archivo separado para cada sección, terminar con .conf.
Aquí, usamos un solo archivo para colocar las secciones de entrada, filtro y salida. Cree un archivo de configuración en el directorio /etc/logstash/conf.d/.
sudo nano /etc/logstash/conf.d/beats-syslog.conf
En la sección de entrada, configuraremos Logstash para escuchar en el puerto 5044 los registros entrantes, desde beats (Forwarder) que se encuentran en las máquinas cliente.
input { beats { port => 5044 ssl => false } }
En la sección de filtros, usaremos Grok para analizar los registros antes de enviarlos a Elasticsearch para su almacenamiento.
El siguiente filtro grok buscará registros syslog etiquetados e intentará analizarlos para crear un índice estructurado.
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Para ver más patrones de filtros GROK, echa un vistazo aquí.
En la sección de salida, definiremos dónde se almacenarán los registros, obviamente Elasticsearch en el caso de la pila ELK.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Ahora inicie y habilite el servicio Logstash.
sudo systemctl start logstash sudo systemctl enable logstash
Si tiene algún problema, eche un vistazo al archivo de Logstash.
sudo cat /var/log/logstash/logstash-plain.log
Instalar y configurar Kibana
Kibana proporciona visualización de datos almacenados en Elasticsearch. Instale Kibana usando el siguiente comando.
sudo apt install -y kibana-oss
De forma predeterminada, Kibana escucha en el host local, lo que significa que no puede acceder a la interfaz web de Kibana desde otra máquina. Edite el archivo /etc/kibana/kibana.yml.
sudo nano /etc/kibana/kibana.yml
Realice cambios en la siguiente línea con la dirección IP de su servidor.
server.host: "192.168.0.10"
Inicie y habilite Kibana al iniciar la máquina.
sudo systemctl start kibana sudo systemctl enable kibana
Instalar Filebeat
Filebeat es un software que se ejecuta en la máquina cliente. Envía registros al servidor Logstash para analizarlos o a Elasticsearch para almacenarlos, según la configuración.
Instale la compatibilidad con wget y HTTPS para apt.
sudo apt install -y wget apt-transport-https curl
Los paquetes ELK se pueden obtener del repositorio de Elastic.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Instale Filebeat usando el siguiente comando.
sudo apt update sudo apt install -y filebeat-oss
El archivo de configuración principal de filebeat es /etc/filebeat/filebeat.yml.
sudo nano /etc/filebeat/filebeat.yml
Necesitamos editar este archivo para enviar registros al servidor de Logstash.
Las siguientes configuraciones envían syslog (/var/log/syslog) al servidor Logstash. Para esta demostración, he comentado /var/log/*.log para evitar enviar todos los registros al servidor de Logstash.
. . . filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /var/log/syslog . . .
En la sección Salidas, comente la sección salida.elasticsearch:ya que no vamos a almacenar registros en Elasticsearch.
Ahora, vaya a la línea output.logstash:y modifique las entradas para enviar registros a Logstash y mencione la ruta al archivo SSL copiado.
. . . #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["192.168.0.10:5044"] . . .
Reinicie el servicio Filebeat.
sudo systemctl restart filebeat
Acceder a Kibana
Puede acceder a la interfaz web de Kibana utilizando la siguiente URL.
http://tu-dirección-ip:5601/O
http://nombre-de-su-servicio:5601En su primer inicio de sesión, debe asignar el índice de filebeat. Haz clic en Explorar por mi cuenta para crear un patrón de índice.
Haga clic en el Menú (icono de hamburguesa)>> Gestión de pilas>>> Patrones de índice>> Crear patrón de índice .
Escriba lo siguiente en el cuadro Patrón de índice y haga clic en Siguiente paso.
filebeat-*
Seleccione @timestamp y luego haga clic en Crear patrón de índice.
@timestamp
Revise los campos en el índice y su tipo principal registrado por Elasticsearch.
Haga clic en Descubrir en la navegación de la izquierda para ver los registros entrantes de una máquina cliente.
Conclusión
Eso es todo. Espero que haya aprendido a instalar la pila ELK en Debian 10/Debian 9. Comparta sus comentarios en la sección de comentarios.