INSTALACION Y PRIMEROS PASOS DE ELASTIC ELK

 

Ultima actualización: 12 Marzo 2024
 
Elastic Stack (ELK) es un conjunto popular de herramientas de código abierto utilizadas para el análisis y la visualización de datos. Su nombre es un acrónimo que proviene de las tres herramientas principales que lo componen: Elasticsearch, Logstash y Kibana.

El trabajo en conjunto de estas herramientas recolectan de manera fluida los datos datos de varias fuentes, los procesa y almacenarlos de manera eficiente para luego ser localizados y visualizados de una forma que sea mucho fácil, rápida de comprender y analizar.
 
ELK Stack es una opción popular para la gestión de registros, análisis de seguridad, dar seguimiento del rendimiento de aplicaciones y otros casos de uso basados en datos. Además, proporciona información en tiempo real a partir de datos consolidados.
 
Esta compuesto por tres elementos principales:

-Elasticsearch:
Es un motor de búsqueda diseñado para manejar grandes volúmenes de datos de manera rápida y eficiente. La arquitectura distribuida de la información proporciona una alta disponibilidad y tolerancia a fallos, lo que la hace ideal para sistemas críticos por ser tolerante a fallos y su alta disponibilidad. Así como distribuye la información entre todos los nodos igualmente distribuye el procesamiento de los datos entre los mismos. También destaca su habilidad para buscar dentro de información no estructurada y datos de series temporales.

- Logstash:
Funciona como un canal que toma datos de diversas fuentes, los prepara para su almacenamiento y análisis por parte de Elasticsearch. Recoge las entradas, trabaja los eventos, analiza los registros y los envía de forma organizada por una salida, antes de almacenarlos en las bases de datos. Es la parte de preprocesamiento que es efectuado antes de guardar la información en Elasticsearch.

- Kibana:
Proporciona una interfaz fácil de usar para visualizar, explorar e interactuar con el contenido indexado en un clúster de Elasticsearch. Es una herramienta de visualización de datos que te permite crear gráficos, tablas y otras visualizaciones a partir de los datos almacenados.  
 
- Beats
Son los diferentes complementos que recolectan información. Toman la información, ya sea de un fichero, logs de datos, eventos, métricas del sistema (CPU, RAM), hacen comprobaciones de qué servicios se encuentran activos, analizan a nivel de red los paquetes, el tiempo de respuesta entre ellos.

En esta imagen podemos ver un resumen de la arquitectura y como los datos son ingresados en ELK:

         
Beneficios:
  • Escalabilidad: Se puede escalar horizontalmente para manejar grandes volúmenes de datos.
  • Flexibilidad: Tiene la facilidad de ingerir datos desde una amplia variedad de fuentes.
  • Análisis en tiempo real: Permite realizar análisis en tiempo real de los datos.
  • Visualización: Kibana facilita la visualización de los datos en forma de dashboards, gráficos y tablas.
  • Seguridad: Ofrece una variedad de características de seguridad para proteger los datos.

 

Casos de uso:

El Elastic Stack se puede utilizar para una variedad de casos de uso, incluyendo:

  • Análisis de logs: Podemos utilizar elk para analizar logs de aplicaciones, servidores y dispositivos.
  • Monitorización de infraestructura: Es posible monitorizar el rendimiento y la disponibilidad de la infraestructura  de manera fácil y efectiva
  • Seguridad: El Elastic Stack puede utilizarse para detectar y prevenir amenazas de seguridad.
  • Análisis de negocios: Se puede utilizar para analizar datos de negocio para obtener información y insights.
  • Y muchos mas..
          
                                                                                                                                                       
De que trata este laboratorio?
 
En este laboratorios vamos a instalar los tres componentes principales de Elastic Stak (elasticsearch, kibana y logstash).  Configuraremos el logstash para que reciba data de forma local, conectamos el elasticksearch para que pueda recibir información desde el logstash y conectamos el kibana para que pueda graficar desde el elasticsearch.  Cabe destacar que esto es un ambiente de pruebas y se deben realizar varios ajustes para un ambiente de producción.
 
Requerimientos para este laboratorio:
4G RAM
15GB de Storage
2 Procesadores (al menos)
GNU/Linux Ubuntu 22.04 LTS 
VirtualBox 
 

Requisitos previos a la instalación.

Si no sabes como instalar Ubuntu aquí te dejo el link donde explico, paso a paso, todo lo necesario para hacer una instalación exitosa de Ubuntu 22.04 LTS.  Clic aquí.

Vamos a realizar el laboratorio completo con VirtualBox para desplegar este laboratorio. Si no conoces a VirtualBox te dejo un link con la instalacion y configuracion. Clic Aqui.

Primero lo que debemos hacer antes de empezar la instalación es actualizar todos los paquetes del sistema.
sudo apt-get -y update

Instalamos unos paquetes que serán necesarios durante la instalación.
sudo apt install -y wget curl gnupg2
 
Configuramos el firewall
sudo apt install ufw
 
Permitimos el trafico de los siguientes puertos y activamos el firewall.
sudo ufw allow 22/tcp
sudo ufw allow 9200/tcp
sudo ufw allow 5601/tcp
sudo ufw allow 5044/tcp
sudo ufw enable

Instalamos la version de Java y confirmamos que sea la 11.
sudo apt-get install -y openjdk-11-jdk
java -version

Verificamos la versión instalada y copiamos el nombre.
ls /usr/lib/jvm/
 
 
Editamos el archivo y agregamos a la variable de ambiente con el nombre y la ruta correcta del archivo.

sudo nano /etc/environment
-----------------------------------------------------------
#verificar la ruta antes
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
-----------------------------------------------------------
 
 
 
 
Empezamos la instalación con elasticsearch.
 
 
Descargamos las llaves GPG.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
 
Este paquete permite descargar repositorios por http/https,
sudo apt install apt-transport-https

Descargamos los repositorios de ELK.
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
 
Actualizamos los repositorios para que se carguen los que acabamos de instalar.
sudo apt update

Descargamos la instalacion de ElasticSearch.
sudo apt-get install -y elasticsearch 
 
 


Editamos el archivo de configuración y modificamos los siguientes valores.
 
sudo nano /etc/elasticsearch/elasticsearch.yml
-----------------------------------------------------------
network.host: 0.0.0.0   #localhost si es local solamente
discovery.seed_hosts: [ ]
x.pack.security.enabled: false
-----------------------------------------------------------
 
  
Cargamos el demonio, verificamos que este corriendo correctamente y activamos en el arranque del sistema.
sudo systemctl daemon-reload
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
sudo systemctl enable elasticsearch
 
Verificamos que el servicio este ejecutándose y publicando información.
sudo ss -antpl | sudo grep 9200
curl --X GET "localhost:9200"
 
 
Verificamos la conexión por web desde el mismo Ubuntu.
http://localhost:9200



Instalacion de Kibana


Descargamos la instalación de Kibana.
sudo apt install kibana -y

Modificamos el archivo de configuracion de kibana con los siguientes parametros.
sudo nano /etc/kibana/kibana.yml
-----------------------------------------------------------
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
-----------------------------------------------------------


Cargamos el demonio, verificamos que este corriendo correctamente y activamos en el arranque del sistema.
sudo /bin/systemctl daemon-reload
sudo systemctl start kibana
sudo systemctl status kibana
sudo systemctl enable kibana
 
 
Verificamos la conexión por web al kibana.
http://localhost:5601




Instalación de Logstash

Descargamos la instalacion de logstash
sudo apt-get install logstash

Editarmos este archivo para cargar la información de logstash
sudo nano /etc/logstash/conf.d/02-beats-input.conf
-----------------------------------------------------------
input {
  beats {
    port => 5044
  }
}
-----------------------------------------------------------
 

Configuramos logstash para enviar logs filtrados y para ser visualizados en kibana

sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf
-----------------------------------------------------------
output {
  elasticsearch {
    hosts => ["localhost:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}
-----------------------------------------------------------



Cargamos el demonio, verificamos que este corriendo correctamente y activamos en el arranque del sistema.
sudo systemctl start logstash
sudo systemctl status logstash
sudo systemctl enable logstash
 
 
Ya tenemos los tres componentes se comunica de forma satisfactoria y el sistema esta listo para empezar a instalar los complementos.




En las próximas publicaciones realizaremos la integración con los siguientes beats:
  • Filebeat
  • Metricbeat
  • Winlogbeat
  • Heartbeat
  • Packetbeat
  • Monitorear Mikrotik
  • Monitorear Fortigate

Este laboratorio fue realizado con colaboración de:
Un gran agradecimiento a Luis por guiarnos y ayudarnos en los primeros pasos.
 

Comments

Popular posts from this blog

INSTALACION DE ALMALINUX 9.3 EN VIRTUALBOX, PRIMEROS PASOS Y CONFIGURACION BASICA

INSTALACION DE MIKROTIK EN VIRTUALBOX Y CONFIGURACIONES BASICAS