Instalación Elastic · 12 min read · Nov 11, 2025

Cómo instalar Elastic Stack en Ubuntu 20.04 LTS

Elastic Stack (anteriormente ELK Stack) es un grupo de software de código abierto desarrollado por Elastic para recopilar datos de diversas fuentes. Te permite recopilar, almacenar, procesar, analizar y visualizar datos de varias fuentes en cualquier formato en la plataforma central de Elastic Stack.

El Elastic Stack consta de varios paquetes de software: “Elasticsearch” para almacenar tus datos, “Kibana” como un panel de control para acceder y visualizar tus datos, la dinámica tubería de recolección de datos “Logstash” con complementos extensibles para procesar cualquier dato, y “Beats” como una plataforma ligera de envío de datos que envía datos desde máquinas en el borde.

El Elastic Stack se puede implementar en Promises en tu servidor o puedes comprar el SaaS (Software como Servicio) de Elastic Cloud oficial.

En este tutorial te mostraremos cómo instalar Elastic Stack en un servidor Ubuntu 20.04. Instalaremos Elasticsearch y Kibana en el mismo servidor y luego instalaremos y configuraremos “Filebeat” en el otro servidor para enviar registros directamente al servidor de Elasticsearch.

Requisitos

Para este tutorial, utilizaremos dos servidores que ejecutan Ubuntu 20.04. El software de Elastic Stack se instalará en el servidor con 4 GB de RAM, y utilizaremos otro servidor con 1 GB como cliente para Filebeat.

¿Qué haremos?

  • Agregar el repositorio de Elastic Stack
  • Instalar y configurar Elasticsearch
  • Instalar y configurar Kibana
  • Configurar Nginx como un proxy inverso para Kibana
  • Instalar y configurar Filebeat
  • Configurar un nuevo rol para el usuario de Kibana
  • Crear un nuevo patrón de índice para Filebeat

Paso 1 - Agregar el repositorio de Elastic Stack

Primero, agregaremos la clave GPG y el repositorio del software de Elastic Stack a ambos servidores Ubuntu.

Antes de continuar, instala ‘apt-transport-https’ para asegurar tu instalación de software a través de una conexión segura HTTPS.

sudo apt install apt-transport-https

A continuación, agrega la clave GPG y el repositorio de Elastic Stack usando el siguiente comando.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Ahora actualiza todos los repositorios disponibles en el sistema Ubuntu.

sudo apt update

Y estás listo para instalar todo el software de Elastic Stack en ambos servidores.

agregar repositorio elastic

Paso 2 - Instalar y configurar Elasticsearch

En este paso, instalaremos y configuraremos Elasticsearch en el servidor de nodo único ‘ELK20’ con la dirección IP interna ‘172.16.0.3’.

Antes de instalar Elasticsearch, edita el archivo ‘/etc/hosts’ usando el editor vim.

vim /etc/hosts

Ahora escribe tu nombre de host con la dirección IP interna como se muestra a continuación.

172.16.0.3    ELK20

Guarda y cierra.

A continuación, instala el paquete de Elasticsearch usando el comando apt a continuación.

sudo apt install elasticsearch

Una vez que se complete la instalación, ve al directorio ‘/etc/elasticsearch’ y edita el archivo de configuración ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Descomenta ‘node.name’ y escribe el nombre de tu servidor.

node.name: ELK20

En la línea ‘network.host’, escribe la dirección IP del servidor en la que se ejecutará el servicio de Elasticsearch, y se recomienda usar solo la dirección IP interna.

network.host: 172.16.0.3

Descomenta la línea ‘http.port’ y déjala como predeterminada, el servicio de Elasticsearch se ejecutará en el puerto predeterminado ‘9200’.

http.port: 9200

Descomenta la línea ‘cluster.initial_master_nodes’ y escribe el nombre de tu servidor.

cluster.initial_master_nodes: ["ELK20"]

Y por último, habilita la seguridad de Elasticsearch agregando la siguiente configuración al final de la línea.

xpack.security.enabled: true

Guarda y cierra.

A continuación, recarga el administrador de servicios systemd, luego inicia el servicio de Elasticsearch y agrégalo al arranque del sistema.

systemctl daemon-reload  
  
systemctl start elasticsearch  
systemctl enable elasticsearch

El servicio de Elasticsearch está en funcionamiento en el servidor Ubuntu 20.04.

instalar y configurar elasticsearch

A continuación, generaremos la contraseña para el usuario integrado en Elasticsearch.

Ve al directorio ‘/usr/share/elasticsearch’ y ejecuta el comando de utilidad de Elasticsearch ‘elasticsearch-setup-passwords’ como se muestra a continuación.

cd /usr/share/elasticsearch/  
bin/elasticsearch-setup-passwords auto -u "http://172.16.0.3:9200"

Escribe ‘y’ para confirmar y generar la contraseña.

Iniciando la configuración de contraseñas para los usuarios reservados elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.  
Las contraseñas se generarán aleatoriamente y se imprimirán en la consola.  
Por favor confirma que deseas continuar [y/N] y

A continuación se muestra el resultado que obtendrás.

Contraseña cambiada para el usuario apm_system  
CONTRASEÑA apm_system = DP5RpFfbCyL6UpIFO8Q3  
  
Contraseña cambiada para el usuario kibana_system  
CONTRASEÑA kibana_system = U6gDLoJCqqChqcbD1IYV  
  
Contraseña cambiada para el usuario kibana  
CONTRASEÑA kibana = U6gDLoJCqqChqcbD1IYV  
  
Contraseña cambiada para el usuario logstash_system  
CONTRASEÑA logstash_system = KrHaGvHGfkAz12dcSeWo  
  
Contraseña cambiada para el usuario beats_system  
CONTRASEÑA beats_system = VnUUOtShQoFAGEZ62G7m  
  
Contraseña cambiada para el usuario remote_monitoring_user  
CONTRASEÑA remote_monitoring_user = xgaLXw6jp3Ses6CZ2hEB  
  
Contraseña cambiada para el usuario elastic  
CONTRASEÑA elastic = elu2ZlMm4mOkM7fgCeUM

Como se puede ver, se ha generado la contraseña para algunos usuarios integrados en Elasticsearch.

Para probar nuestra instalación de Elasticsearch, ejecuta el comando curl con el usuario predeterminado ‘ elastic ‘ como se muestra a continuación.

curl -X GET -u elastic "http://172.16.0.3:9200/?pretty"

Escribe la contraseña para el usuario ‘ elastic ‘, y a continuación se muestra el resultado que obtendrás.

prueba de autenticación de elasticsearch

Como resultado, el servidor de Elasticsearch está en funcionamiento con la autenticación habilitada.

Paso 3 - Instalar y configurar Kibana

En este paso, instalaremos y configuraremos Kibana en el mismo servidor que Elasticsearch. Conectaremos Kibana al servidor de Elasticsearch con el usuario predeterminado ‘kibana_system’ y la contraseña generada anteriormente.

Instala Kibana usando el comando apt a continuación.

sudo apt install kibana

Una vez que se complete la instalación, ve al directorio ‘/etc/kibana’ y edita el archivo de configuración ‘kibana.yml’ usando el editor vim.

cd /etc/kibana/  
vim kibana.yml

Descomenta las siguientes líneas y cambia los valores por los tuyos. Se recomienda ejecutar Kibana en la red local porque utilizaremos Nginx como un proxy inverso para Kibana.

server.port: 5601  
server.host: "172.16.0.3"  
server.name: "ELK20"

Después de eso, cambia ‘elasticsearch.url’ con la dirección IP de tu Elasticsearch.

elasticsearch.url: "http://172.16.0.3:9200"

Descomenta las siguientes líneas “elasticsearch.username” y ‘elasticsearch.password’, y cambia los detalles con el usuario y la contraseña que generaste.

elasticsearch.username: "kibana_system"  
elasticsearch.password: "N88VBkkelfSV3mBfO6Vh"

Guarda y cierra.

A continuación, recarga el administrador de systemd usando el siguiente comando.

systemctl daemon-reload

Después de eso, inicia el servicio de Kibana y agrégalo al arranque del sistema.

systemctl start kibana  
systemctl enable kibana

Y el servicio de Kibana está en funcionamiento en el sistema Ubuntu 20.04.

instalar y configurar kibana

A continuación, crearemos un nuevo usuario que se utilizará para iniciar sesión en el panel de control de Kibana.

Crea un nuevo usuario llamado ‘hakase’ y la contraseña ‘hakasepasskibana’ con el rol ‘kibana_admin’ como se muestra a continuación.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin" ]  
}  
'

Escribe la contraseña para el usuario ‘elastic’, y obtendrás el resultado a continuación.

crear usuario kibana con rol kibana_admin

Como resultado, se ha creado el nuevo usuario ‘hakase’ y podrá iniciar sesión en el panel de control de Kibana.

Paso 4 - Configurar Nginx como un proxy inverso para Kibana

En este paso, instalaremos y configuraremos Nginx como un proxy inverso para Kibana.

Instala los paquetes de Nginx usando el comando apt a continuación.

sudo apt install nginx -y

Una vez que se complete la instalación, ve al directorio ‘/etc/nginx/sites-available/‘ y crea un nuevo archivo de host virtual ‘kibana’ usando el editor vim.

cd /etc/nginx/sites-available/  
vim kibana

Cambia el nombre de dominio y la dirección IP de ‘proxy_pass’ por la tuya, luego pégalo en él.

server {  
    listen 80;  
   
    server_name elk.hakase-labs.io;  
   
    location / {  
        proxy_pass http://172.16.0.3:5601;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection 'upgrade';  
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}

Guarda y cierra.

A continuación, activa el host virtual de Nginx para Kibana y verifica la configuración de Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/  
nginx -t

Asegúrate de que no haya errores, luego reinicia el servicio de Nginx.

systemctl restart nginx

Como resultado, se ha completado la instalación y configuración de Nginx como un proxy inverso para Kibana. Y el panel de control de Kibana ahora es accesible a través del nombre de dominio ‘elk.hakase-labs.io’.

configurar nginx como un proxy inverso para kibana

Abre tu navegador web y escribe el nombre de dominio de tu instalación de Kibana en la barra de direcciones.

http://elk.hakase-labs.io/

Y obtendrás la página de inicio de sesión de Kibana como se muestra a continuación.

página de inicio de sesión de kibana

Escribe el usuario ‘hakase’ con la contraseña ‘hakasepass’ y haz clic en el botón ‘ Iniciar sesión ‘.

Una vez que hayas iniciado sesión, se te pedirá que importes los datos de muestra o explores tus datos.

kibana seleccionar opción para explorar datos

Haz clic en el botón ‘ Explorar mis propios datos ‘.

Ahora obtendrás el panel de control de Kibana como se muestra a continuación.

Panel de control de Kibana

Como resultado, se ha completado la instalación de Kibana y Nginx.

Paso 4 - Instalar y configurar Filebeat

En este paso, instalaremos “Filebeat” en la máquina cliente con el nombre de host “client01” y la dirección IP “xxx.xxx.xxx.xxx”. Filebeat enviará registros directamente al servidor de Elasticsearch.

Antes de instalar “Filebeat”, asegúrate de que el repositorio de Elastic Stack se haya agregado a tu sistema.

Ahora instala el paquete de filebeat usando el comando apt a continuación.

sudo apt install filebeat

Una vez que se complete la instalación, ve al directorio ‘/etc/filebeat’ y edita el archivo de configuración ‘filebeat.yml’ usando el editor vim.

cd /etc/filebeat/  
vim filebeat.yml

En la parte superior de la configuración ‘filebeat.inputs’, cambia ‘enabled: false’ a ‘enabled: true’ como se muestra a continuación.

filebeat.inputs:  
- type: log  
  enabled: true  
  paths:  
    - /var/log/*.log

A continuación, ve a la configuración de Kibana y cambia el host con la dirección IP y el puerto de Kibana, cambia el nombre de usuario por el usuario predeterminado ‘kibana’, y la contraseña generada anteriormente.

setup.kibana:  
  host: "172.16.0.3:5601"  
  username: "kibana"    
  password: "U6gDLoJCqqChqcbD1IYV"

Después de eso, ve a la configuración ‘output.elasticsearch’ y cambia los detalles por los tuyos.

output.elasticsearch:  
  hosts: ["172.16.0.3:9200"]  
  username: "elastic"  
  password: "elu2ZlMm4mOkM7fgCeUM"

Guarda y cierra.

Ahora recarga el administrador de systemd, inicia el servicio de filebeat y agrégalo al arranque del sistema.

systemctl daemon-reload  
  
systemctl start filebeat  
systemctl enable filebeat

El servicio de filebeat está en funcionamiento en la máquina “ client01 “.

Instalar y configurar Filebeat

A continuación, necesitamos cargar la plantilla de índice de filebeat en el servidor de Elasticsearch usando el siguiente comando.

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["http://172.16.0.3:9200"]'

A continuación se muestra el resultado que obtendrás.

Como resultado, la plantilla de índice de filebeat se ha cargado en el servidor de Elasticsearch, y estará disponible en el panel de control de Kibana como un patrón de índice ‘filebeat-*’.

Paso 5 - Configurar un nuevo rol para el usuario de Kibana

En este paso, crearemos un nuevo rol de Elasticsearch que permita a nuestro usuario ‘hakase’ acceder y gestionar todos los índices en el servidor de Elasticsearch a través de la API de Elasticsearch.

Crea un nuevo rol llamado ‘ events_index ‘ que permita a los usuarios solo gestionar índices en el servidor de Elasticsearch usando el siguiente comando.

curl -XPOST -u elastic 'http://172.16.0.3:9200/_security/role/events_index' -H "Content-Type: application/json" -d '{  
  "indices" : [  
    {  
      "names" : [ "*" ],  
      "privileges" : [ "all" ]  
    }  
  ]  
}'

Crear nuevo rol elasticsearch

Después de eso, verifica el rol ‘ events_index ‘ usando el siguiente comando.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"

A continuación se muestra el resultado que obtendrás.

verificar rol elasticsearch

Como se puede ver, el rol ‘events_index’ solo tendrá privilegios para gestionar índices.

A continuación, agrega el rol ‘events_index’ a nuestro usuario ‘hakase’ usando el siguiente comando.

curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'  
{  
  "password" : "hakasepasskibana",  
  "roles" : [ "kibana_admin", "events_index" ]  
}  
'

Escribe la contraseña para el usuario ‘ elastic ‘, y el rol ‘ events_index ‘ ha sido asignado al usuario ‘ hakase ‘.

Verifica todos los roles disponibles bajo el usuario ‘hakase’ usando el siguiente comando.

curl -X GET -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty"

A continuación se muestra el resultado que obtendrás.

asignar rol al usuario elasticsearch

Como resultado, hemos creado un nuevo rol para gestionar índices en el servidor de Elasticsearch.

Paso 6 - Crear un nuevo patrón de índice para Filebeat

Después de crear un nuevo rol llamado ‘events_index’, crearemos un nuevo patrón de índice para Filebeat a través del usuario ‘ hakase ‘.

- Crear patrón de índice

En el panel de control de Kibana, haz clic en la opción del menú de la izquierda, ve a la sección “ Administración “, y haz clic en “ Gestión de Stack “.

En la sección “ Kibana “, haz clic en “ Patrón de índice “.

Crear patrón de índice de Kibana

Haz clic en el botón “Crear patrón de índice” para crear un nuevo patrón de índice.

En el campo “patrón de índice”, escribe “ filebeat-* “ y haz clic en el botón “ Siguiente paso “.

Crear patrón de índice de Filebeat en kibana

En el campo “Nombre del filtro de tiempo”, elige “ @timestamp “ y haz clic en el botón “ Crear patrón de índice “.

Configurar Timestamp como filtro predeterminado

Y el patrón de índice “ filebeat-* “ ha sido creado, y se selecciona como patrón de índice predeterminado (si no tienes ningún patrón de índice antes).

El patrón de índice de Filebeat ha sido creado

- Mostrar datos en Kibana

Para mostrar los datos recopilados por filebeat, haz clic en el menú de opciones en la parte superior izquierda, luego haz clic en “ Descubrir “.

Y obtendrás todos los datos recopilados por filebeat desde la máquina “ client01 “.

Datos en la máquina client01 mostrados en el panel de control de Kibana

Para mostrar datos basados en tu filtro, puedes usar el “ KQL “ o el Lenguaje de Consulta de Kibana.

Escribe la siguiente consulta en el campo “ KQL “.

host.name : client01 and log.file.path: "/var/log/auth.log"

Y obtendrás toda la información sobre la autenticación SSH en la máquina “client01”.

Usando KQL Lenguaje de Consulta de Kibana

Como resultado, la instalación de Elastic Stack con seguridad habilitada en Ubuntu 20.04 se ha completado con éxito.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.