Instalación Elastic · 14 min read · Nov 25, 2025

Cómo instalar Elastic Stack en Ubuntu 18.04 LTS

Elasticsearch es un motor de búsqueda de código abierto basado en Lucene, desarrollado en Java. Proporciona un motor de búsqueda de texto completo distribuido y multitenant con una interfaz web de panel de control HTTP (Kibana). Los datos se consultan, recuperan y almacenan en un esquema de documento JSON. Elasticsearch es un motor de búsqueda escalable que se puede utilizar para buscar todo tipo de documentos de texto, incluidos archivos de registro. Elasticsearch es el corazón de la ‘Elastic Stack’ o ELK Stack.

Logstash es una herramienta de código abierto para gestionar eventos y registros. Proporciona canalización en tiempo real para colecciones de datos. Logstash recopilará sus datos de registro, convertirá los datos en documentos JSON y los almacenará en Elasticsearch.

Kibana es una herramienta de visualización de datos de código abierto para Elasticsearch. Kibana proporciona una bonita interfaz web de panel de control. Le permite gestionar y visualizar datos de Elasticsearch. No solo es hermosa, sino también poderosa.

En este tutorial, le mostraré cómo instalar y configurar Elastic Stack en un servidor Ubuntu 18.04 para el monitoreo de registros del servidor. Luego le mostraré cómo instalar y configurar ‘Elastic beats’ en un servidor cliente Ubuntu 18.04 y CentOS 7.

Prerrequisitos

  • 3 Servidores - Ubuntu 18.04 con 4GB de RAM/memoria como ‘elk-master’ - 10.0.15.10
  • Ubuntu 18.04 con 512MB/1GB de RAM/memoria como ‘elk-client01’ - 10.0.15.21
  • CentOS 7.5 con 512MB/1GB de RAM/memoria como ‘elk-client02’ - 10.0.15.22
  • Privilegios de root

¿Qué haremos?

  1. Instalar Elastic Stack 1. Instalar Java
  2. Instalar y configurar ElasticSearch
  3. Instalar y configurar Kibana
  4. Instalar y configurar Nginx como proxy inverso para Kibana
  5. Instalar y configurar Logstash
  6. Instalar y configurar Filebeat en Ubuntu 18.04
  7. Instalar y configurar Filebeat en CentOS 7.5
  8. Pruebas

Paso 1 - Instalar Elastic Stack

En este primer paso, instalaremos y configuraremos la ‘Elastic Stack’ en el servidor ‘elk-master’, así que ejecute todos los comandos y etapas para este paso solo en el servidor ‘elk-master’. Instalaremos y configuraremos cada componente de la pila elástica, incluyendo Elasticsearch, el transportador Logstash y el panel de control de Kibana con el servidor web Nginx.

Instalar Java

Java es necesario para el despliegue de la pila elástica. Elasticsearch requiere Java 8. Se recomienda usar el JDK de Oracle 1.8, y instalaremos Java 8 desde un repositorio PPA.

Instale los paquetes ‘software-properties-common’ y ‘apt-transport-https’, y luego agregue el repositorio PPA de Java ‘webupd8team’. Ejecute el comando ‘apt install’ y ‘add-apt-repository’ a continuación.

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:webupd8team/java -y

Ahora instale el instalador de java8.

sudo apt install oracle-java8-installer -y

Después de que la instalación esté completa, verifique la versión de java.

java -version

Java 1.8 instalado en el sistema.

A continuación, configuraremos el entorno de java. Verifique el archivo binario de java usando el comando a continuación.

update-alternatives --config java

Y obtendrá el archivo binario de java en el directorio ‘ /usr/lib/jvm/java-8-oracle ‘.

Ahora cree el archivo de perfil ‘java.sh’ en el directorio ‘profile.d’.

vim /etc/profile.d/java.sh

Pegue la configuración del entorno de java a continuación.

#Establecer JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

Guarde y salga.

Haga que el archivo sea ejecutable y cargue el archivo de configuración.

chmod +x /etc/profile.d/java.sh  
source /etc/profile.d/java.sh

Ahora verifique el entorno de java usando el comando a continuación.

echo $JAVA_HOME

Y obtendrá que el directorio de java se encuentra en el directorio ‘ /usr/lib/jvm/java-8-oracle ‘.

Configurar Java

Instalar Elasticsearch

Después de instalar Java, instalaremos el primer componente de la Elastic Stack, instalaremos Elasticsearch.

Agregue la clave de la pila elástica y agregue el repositorio elástico al sistema.

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

Ahora actualice el repositorio e instale el paquete de elasticsearch usando el comando a continuación.

sudo apt update  
sudo apt install elasticsearch -y

Después de que la instalación esté completa, vaya al directorio ‘/etc/elasticsearch’ y edite el archivo de configuración ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Descomente la línea ‘network.host’ y cambie el valor a ‘localhost’, y descomente la línea ‘http.port’ para la configuración del puerto de elasticsearch.

network.host: localhost
http.port: 9200

Guarde y salga.

Ahora inicie el servicio de elasticsearch y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start elasticsearch  
systemctl enable elasticsearch

El elasticsearch ahora está en funcionamiento, verifíquelo usando el comando netstat y los comandos curl a continuación.

netstat -plntu  
curl -XGET 'localhost:9200/?pretty'

Ahora obtendrá que la versión de elasticsearch ‘6.2.4’ está funcionando en el puerto predeterminado ‘9200’.

Verificar puerto de elasticsearch

La instalación de elasticsearch se ha completado.

Instalar y configurar el panel de control de Kibana

El segundo componente es un panel de control de Kibana. Instalaremos el panel de control de Kibana desde el repositorio elástico y configuraremos el servicio de kibana para que se ejecute en la dirección localhost.

Instale el panel de control de Kibana usando el comando apt a continuación.

sudo apt install kibana -y

Ahora vaya al directorio ‘/etc/kibana’ y edite el archivo de configuración ‘kibana.yml’.

cd /etc/kibana/  
vim kibana.yml

Descomente esas líneas ‘server.port’, ‘server.host’ y ‘elasticsearch.url’.

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Guarde y salga.

Ahora inicie el servicio de kibana y habilítelo para que se inicie cada vez que se inicie el sistema.

sudo systemctl enable kibana  
sudo systemctl start kibana

El panel de control de kibana ahora está en funcionamiento en la dirección ‘localhost’ y el puerto predeterminado ‘5601’. Verifíquelo usando el comando netstat a continuación.

netstat -plntu

Instalar Kibana

La instalación del panel de control de Kibana se ha completado.

Instalar y configurar Nginx como proxy inverso para Kibana

En este tutorial, utilizaremos el servidor web Nginx como un proxy inverso para el panel de control de Kibana.

Instale Nginx y los paquetes ‘apache2-utils’ en el sistema.

sudo apt install nginx apache2-utils -y

Después de que la instalación esté completa, vaya al directorio de configuración ‘/etc/nginx’ y cree un nuevo archivo de host virtual llamado ‘kibana’.

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

Pegue la configuración del host virtual de Nginx a continuación.

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Acceso Restringido";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://localhost: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;
    }
}

Guarde y salga.

A continuación, crearemos un nuevo servidor web de autenticación básica para acceder al panel de control de Kibana. Crearemos la autenticación básica utilizando el comando htpasswd como a continuación.

sudo htpasswd -c /etc/nginx/.kibana-user elastic  
Escriba la contraseña del usuario elastic

Active el host virtual de kibana y pruebe toda la configuración de nginx.

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

Asegúrese de que no haya errores, ahora inicie el servicio de Nginx y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl enable nginx  
systemctl restart nginx

La instalación y configuración de Nginx como un proxy inverso para el panel de control de Kibana se ha completado.

Configurar Nginx

Instalar y configurar Logstash

El último componente para la Elastic Stack para esta guía es el ‘Logstash’. Instalaremos y configuraremos Logstash para centralizar los registros del servidor desde fuentes de clientes con filebeat, luego filtrar y transformar todos los datos (Syslog) y transportarlos al stash (Elasticsearch).

Antes de instalar logstash, asegúrese de verificar la versión de OpenSSL de su servidor.

openssl version -a

Para esta guía, utilizaremos OpenSSL ‘1.0.2o’. Si aún está utilizando la versión de OpenSSL 1.1.2, obtendrá un error en la conexión SSL de logstash y filebeat.

Instale logstash usando el comando apt a continuación.

sudo apt install logstash -y

Después de que la instalación esté completa, generaremos la clave del certificado SSL para asegurar la transferencia de datos de registro desde el cliente filebeat al servidor logstash.

Edite el archivo ‘/etc/hosts’ usando vim.

vim /etc/hosts

Agregue la configuración a continuación.

10.0.15.10  elk-master  elk-master

Guarde y salga.

Ahora cree un nuevo directorio SSL en el directorio de configuración de logstash ‘/etc/logstash’ y vaya a ese directorio.

mkdir -p /etc/logstash/ssl  
cd /etc/logstash/

Genere el certificado SSL para Logstash usando el comando openssl a continuación.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Los archivos de certificado SSL para Logstash se han creado en el directorio ‘/etc/logstash/ssl’.

A continuación, crearemos nuevos archivos de configuración para logstash. Crearemos un archivo de configuración ‘filebeat-input.conf’ como archivo de entrada de filebeat, ‘syslog-filter.conf’ para el procesamiento de syslog, y luego un archivo ‘output-elasticsearch.conf’ para definir la salida de Elasticsearch.

Vaya al directorio de configuración de logstash y cree los nuevos archivos de configuración ‘filebeat-input.conf’ en el directorio ‘conf.d’.

cd /etc/logstash/  
vim conf.d/filebeat-input.conf

Pegue la siguiente configuración allí.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Guarde y salga.

Para el procesamiento de datos de registro de syslog, estamos utilizando el complemento de filtro llamado ‘grok’ para analizar los archivos de syslog.

Cree una nueva configuración ‘syslog-filter.conf’.

vim conf.d/syslog-filter.conf

Pegue la siguiente configuración allí.

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Guarde y salga.

Y para la salida de elasticsearch, crearemos el archivo de configuración llamado ‘output-elasticsearch.conf’.

vim conf.d/output-elasticsearch.conf

Pegue la siguiente configuración allí.

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Guarde y salga.

Cuando esto esté hecho, inicie el servicio de logstash y habilítelo para que se inicie cada vez que se inicie el sistema.

sudo systemctl enable logstash  
sudo systemctl start logstash

Habilitar e iniciar logstash

Verifique el servicio de logstash usando los comandos netstat y systemctl a continuación.

netstat -plntu  
systemctl status logstash

Y el servicio de logstash ahora está en funcionamiento. Ejecutándose en la dirección IP pública con el puerto ‘5443’.

Verificar puertos

La instalación de Elastic Stack se ha completado.

Paso 2 - Instalar y configurar Filebeat en Ubuntu 18.04

En este paso, configuraremos el cliente Ubuntu 18.04 ‘elk-client01’ instalando los transportadores de datos de Elastic Beats ‘Filebeat’ en él.

Antes de instalar filebeat en el sistema, necesitamos editar el archivo ‘/etc/hosts’ y descargar el archivo de certificado de logstash ‘logstash-forwarder.crt’ al servidor ‘elk-client01’.

Edite el archivo ‘/etc/hosts’ usando el editor vim.

vim /etc/hosts

Pegue la siguiente configuración allí.

10.0.15.10      elk-master      elk-master

Guarde y salga.

Copia el archivo de certificado de logstash ‘logstash-forwarder.crt’ usando el comando scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Instalar Filebeat

A continuación, instale los ‘Filebeat’ de Elastic Beats agregando la clave elástica y agregando el repositorio elástico.

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

Actualice el repositorio e instale el paquete ‘filebeat’ usando el comando apt a continuación.

sudo apt update  
sudo apt install filebeat -y

Después de que la instalación esté completa, vaya al directorio ‘/etc/filebeat’ y edite el archivo de configuración ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Ahora habilite los prospectores de filebeat cambiando el valor de la línea ‘enabled’ a ‘true’.

  enabled: true

Defina los archivos de registro del sistema que se enviarán al servidor logstash. Para esta guía, agregaremos el archivo de registro ssh ‘auth.log’ y el archivo syslog.

  paths:
    - /var/log/auth.log
    - /var/log/syslog

Configure la salida a logstash comentando la salida predeterminada de ‘elasticsearch’ y descomentando la línea de salida de logstash a continuación.

output.logstash:
  # Los hosts de Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Guarde y salga.

A continuación, necesitamos editar el archivo ‘filebeat.reference.yml’ para habilitar los módulos de filebeat, y habilitaremos el módulo ‘syslog’.

vim filebeat.reference.yml

Habilite el módulo del sistema syslog para filebeat como a continuación.

- module: system
  # Syslog
  syslog:
    enabled: true

Guarde y salga.

Copia el archivo de certificado de logstash ‘logstash-forwarder.crt’ al directorio ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

La instalación y configuración de Filebeat se han completado. Ahora inicie el servicio de filebeat y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start filebeat  
systemctl enable filebeat

Verifique el servicio de filebeat usando los comandos a continuación.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

Los transportadores de filebeat están en funcionamiento en el servidor Ubuntu 18.04.

Filebeat está en funcionamiento

Paso 3 - Instalar y configurar Filebeat en CentOS 7.5

En este paso, configuraremos el cliente CentOS 7.5 ‘elk-client02’ instalando los transportadores de datos de Elastic Beats ‘Filebeat’ en él.

Antes de instalar Filebeat en el sistema, necesitamos editar el archivo ‘/etc/hosts’ y descargar el archivo de certificado de logstash ‘logstash-forwarder.crt’ al servidor ‘elk-client02’.

Edite el archivo ‘/etc/hosts’ usando vim.

vim /etc/hosts

Pegue la configuración a continuación.

10.0.15.10      elk-master      elk-master

Guarde y salga.

Copia el archivo de certificado de logstash ‘logstash-forwarder.crt’ usando el comando scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Instalar Filebeat en CentOS

A continuación, instale los ‘Filebeat’ de Elastic Beats agregando la clave elástica y agregando el repositorio elástico.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch  
   
cat < /etc/yum.repos.d/elastic.repo  
[elasticsearch-6.x]  
name=Repositorio de Elasticsearch para paquetes 6.x  
baseurl=https://artifacts.elastic.co/packages/6.x/yum  
gpgcheck=1  
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch  
enabled=1  
autorefresh=1  
type=rpm-md  
EOF

Instale filebeat usando el comando yum a continuación.

yum install filebeat -y

Después de que la instalación esté completa, vaya al directorio ‘/etc/filebeat’ y edite el archivo de configuración ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Ahora habilite los prospectores de filebeat cambiando el valor de la línea ‘enabled’ a ‘true’.

  enabled: true

Defina los archivos de registro del sistema que se enviarán al servidor logstash. Para esta guía, agregaremos el archivo de registro ssh ‘auth.log’ y el archivo syslog.

  paths:
    - /var/log/secure
    - /var/log/messages

Configure la salida a logstash comentando la salida predeterminada de ‘elasticsearch’ y descomentando la línea de salida de logstash a continuación.

output.logstash:
  # Los hosts de Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Guarde y salga.

A continuación, necesitamos editar el archivo ‘filebeat.reference.yml’ para habilitar los módulos de filebeat, y habilitaremos el módulo ‘syslog’.

vim filebeat.reference.yml

Habilite el módulo del sistema syslog para filebeat como a continuación.

- module: system
  # Syslog
  syslog:
    enabled: true

Guarde y salga.

Copia el archivo de certificado de logstash ‘logstash-forwarder.crt’ al directorio ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

La instalación y configuración de Filebeat se han completado. Ahora inicie el servicio de filebeat y agréguelo al tiempo de arranque.

systemctl start filebeat  
systemctl enable filebeat

Verifique el servicio de filebeat usando los comandos a continuación.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

Los transportadores de filebeat están en funcionamiento en el servidor CentOS 7.5.

Filebeat está en funcionamiento

Paso 4 - Pruebas

Abra su navegador web y escriba el nombre de dominio de la pila elástica, el mío es: ‘elastic-stack.io’.

Se le pedirá el nombre de usuario y la contraseña de la autenticación básica para el panel de control de Kibana.

Escriba el nombre de usuario ‘elastic’ con su contraseña.

Ahora obtendrá el hermoso panel de control de kibana, haga clic en el botón ‘Configurar patrones de índice’ a la derecha.

Panel de control de Kibana

Defina el patrón de índice ‘filebeat-*’ y haga clic en el botón ‘Siguiente paso’.

Definir un filebeat

Para el ‘nombre del campo de filtro de tiempo’, elija el ‘@timestamp’ y haga clic en ‘Crear patrón de índice’.

Crear índice

Y el patrón de índice de filebeat ha sido creado.

Patrón de índice de Filebeat creado

A continuación, intentaremos obtener la información de registro para el inicio de sesión SSH fallido en cada uno de los servidores clientes ‘elk-client01’ sistema Ubuntu y ‘elk-client02’ sistema CentOS.

Dentro del panel de control de Kibana, haga clic en el menú ‘Descubrir’ para obtener todos los registros del servidor.

Establezca el ‘beat.hostname’ en el servidor ‘elk-client01’, la ‘fuente’ es el archivo ‘/var/log/auth.log’, y obtendrá el resultado como se muestra a continuación.

Resultado de registro

Y a continuación se muestran los detalles de registro de ejemplo para la contraseña fallida de SSH del archivo ‘auth.log’.

Inicio de sesión fallido de SSH

Para el servidor ‘elk-client02’ CentOS, establezca el ‘beat.hostname’ en el servidor ‘elk-client02’, la ‘fuente’ es el archivo ‘/var/log/secure’, y obtendrá el resultado como se muestra a continuación.

Informe para el servidor 2

Y a continuación se muestran los detalles de registro de ejemplo para la contraseña fallida de SSH del archivo ‘secure’.

Informe de inicio de sesión

La instalación y configuración de Elastic Stack y Elastic Beat ‘Filebeat’ se han completado con éxito.

Referencia

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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