Hoy en día, para dar sentido a los datos que fluyen desde los sistemas, detectar errores y monitorear el rendimiento, el Stack ELK (Elasticsearch, Logstash, Kibana) se ha convertido en una herramienta indispensable. En este artículo, realizaremos paso a paso la instalación de dos componentes principales del Stack ELK, Elasticsearch y Kibana, sobre Ubuntu 22.04. Abordaremos Logstash en otro artículo.
Preparativos
Antes de comenzar la instalación, asegúrese de que su servidor cumpla con los siguientes requisitos:
- Al menos 4 GB de RAM (recomendado 8 GB)
- Ubuntu 20.04 o 22.04 LTS
- Java 11 o 17 (OpenJDK)
- Permisos de root o acceso sudo
Para verificar la versión de Java, ejecute el comando java -version. Si no tiene Java, instálelo con sudo apt install openjdk-11-jdk -y.
Instalación de Elasticsearch
1. Agregar la clave GPG y el repositorio
Para agregar el repositorio oficial de Elasticsearch, primero importemos la clave GPG:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Luego, agréguelo a la lista de repositorios:
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
2. Instalar el paquete de Elasticsearch
Actualice el repositorio e instale Elasticsearch:
sudo apt update && sudo apt install elasticsearch -y
Una vez completada la instalación, habilite el servicio para que se inicie automáticamente:
sudo systemctl enable elasticsearch
3. Editar el archivo de configuración
El archivo de configuración principal se encuentra en /etc/elasticsearch/elasticsearch.yml. Realicemos un ajuste básico: establecer la dirección de red para permitir el acceso externo (tenga cuidado con las reglas del firewall). Abra el archivo:
sudo nano /etc/elasticsearch/elasticsearch.yml
Agregue o modifique las siguientes líneas:
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node (para un solo nodo)
Nota: En un entorno de producción, debe usar descubrimiento multicast o unicast. Este ejemplo es para pruebas.
4. Iniciar Elasticsearch
Guarde la configuración e inicie el servicio:
sudo systemctl start elasticsearch
Verifique el estado del servicio: sudo systemctl status elasticsearch. Si está funcionando, verifique que Elasticsearch responda con el siguiente comando:
curl -X GET "localhost:9200/"
Debería ver una salida similar a:
{"name" : "node-1", "cluster_name" : "elasticsearch", ...}
Instalación de Kibana
1. Instalar el paquete de Kibana
Dado que Kibana proviene del mismo repositorio, instalémoslo directamente:
sudo apt install kibana -y
Luego, habilite el servicio:
sudo systemctl enable kibana
2. Configuración de Kibana
El archivo de configuración de Kibana se encuentra en /etc/kibana/kibana.yml. Realice los siguientes ajustes para conectarse a Elasticsearch:
sudo nano /etc/kibana/kibana.yml
Modifique las siguientes líneas:
server.port: 5601
server.host: "0.0.0.0" (para acceso externo)
elasticsearch.hosts: ["http://localhost:9200"]
Si Elasticsearch está en un servidor diferente, actualice la parte de hosts en consecuencia.
3. Iniciar Kibana y acceder a la interfaz web
Inicie el servicio:
sudo systemctl start kibana
Ahora, en su navegador, vaya a http://ip-del-servidor:5601. Puede tardar unos segundos en cargar. La primera vez que lo abra, le solicitará un token. Puede usar el token de inscripción generado por Elasticsearch o crear uno nuevo con el comando /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana.
Configuración del firewall
Si utiliza un firewall, no olvide abrir los puertos de Elasticsearch (9200) y Kibana (5601):
sudo ufw allow 9200
sudo ufw allow 5601
En un entorno de producción, aplique reglas más estrictas.
Verificaciones finales
Para probar que la instalación funciona correctamente, vaya a la página de Index Management en Kibana o ejecute una consulta en Dev Tools. Por ejemplo, agreguemos un documento a Elasticsearch:
curl -X POST "localhost:9200/test/_doc" -H "Content-Type: application/json" -d '{"mensaje":"Hola ELK"}'
Luego, en la sección Discover de Kibana, podrá ver este índice.
Conclusión
Siguiendo estos pasos, ha realizado una instalación básica del Stack ELK. Ahora puede enviar sus logs del sistema a Elasticsearch y visualizarlos con Kibana. ¡Espere nuestro próximo artículo para agregar Logstash y crear pipelines más complejos!