Cómo instalar ELK Stack en Ubuntu • Sitio web para estudiantes

Tutoriales marzo 29, 2021

En este post veremos cómo instalar ELK Stack en Ubuntu. ELK es un acrónimo de milasticsearch, Logstash, Kibana y Beats.

Elasticsearch es un motor de búsqueda que proporciona un motor de búsqueda de texto completo distribuido con capacidad para múltiples inquilinos y documentos JSON sin esquema en el almacenamiento fragmentado distribuido.

Logstash es un componente de procesamiento de datos del lado del servidor gratuito y abierto que recopila, analiza y transforma datos antes de enviarlos a otras fuentes, incluido Elasticsearch.

Kibana es una interfaz de usuario abierta y gratuita que le permite explorar y visualizar datos de Elasticsearch. Beats son agentes de transporte ligeros que recopilan datos de aplicaciones y los envían a Elasticsearch u otra plataforma.

Cuando agregue todos estos componentes y servicios, podrá crear una plataforma sólida de búsqueda y análisis para ejecutar sus servicios.

Para comenzar a instalar ELK stack en Ubuntu, sigue los pasos a continuación:

Preparar Ubuntu

Antes de instalar cualquiera de los servicios anteriores, ejecute los siguientes comandos en su máquina Ubuntu para instalar paquetes que son vitales para instalar ELK en Ubuntu.

sudo apt update
sudo apt install wget apt-transport-https curl gnupg2

Instalar Java

Elasticsearch es un componente de Java y requiere que Java esté instalado. La versión de código abierto de Java debería funcionar muy bien con Elasticsearch.

Simplemente ejecute los siguientes comandos para instalar Java.

sudo apt install openjdk-11-jdk

Para verificar que Java esté instalado, ejecute los siguientes comandos:

java -version

Eso debería mostrar líneas similares a las que se muestran a continuación:

openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

Los comandos anteriores instalan OpenJDK versión 11.

Instalar Elasticsearch

Ahora que Java está instalado, ejecute los siguientes comandos para agregar el repositorio APT de Elasticsearch a Ubuntu, ya que sus paquetes no están disponibles de forma predeterminada en Ubuntu.

Ejecute los siguientes comandos para agregar su clave de repositorio GPG.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Luego siga eso creando su archivo de repositorio en Ubuntu.

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Eso debería crear un archivo de repositorio llamado elastic-7.x.list.

Una vez que se agrega el repositorio, ejecute los siguientes comandos para instalar Elasticsearch.

sudo apt update
sudo apt install elasticsearch

Inicie y habilite los servicios de Elasticsearch.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

De forma predeterminada, Elasticsearch debería ejecutarse en el puerto 9200. Ejecute los siguientes comandos desde la línea de comandos para ver el estado y los detalles de Elasticsearch

curl -X GET "localhost:9200"

Eso debería generar líneas similares a las que se muestran a continuación:

{
  "name" : "ubuntu2004",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "O1zUDFjJQzyjAaiP5xlwOg",
  "version" : {
    "number" : "7.12.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
    "build_date" : "2021-03-18T06:17:15.410153305Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Instalar Kibana

El paquete Kibana está disponible en los repositorios de Ubuntu de forma predeterminada. No es necesario agregar repositorios adicionales. Simplemente ejecute los siguientes comandos para instalar, iniciar y habilitar los servicios de Kibana.

sudo apt install kibana
sudo systemctl start kibana
sudo systemctl enable kibana

Eso debería tener Kibana instalado y listo para usar.

Kibana proporciona una interfaz web que se puede proteger con un proxy inverso y HTTPS. Kibana se comunica a través del puerto 5601.

http: // localhost: 5601 / estado

Puede abrir su navegador y buscar el nombre de host o la dirección IP del servidor seguido del puerto 5601 y abra la interfaz web de Kibana.

Si deseas utilizar el proxy inverso de Nginx y habilitar HTTPS, utilice esta configuración de proxy inverso de Nginx en el host virtual.

server {
    listen 80;
    server_name example.com;
    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;
    }
}

También puede usar Let’s Encrypt para asegurar aún más la interfaz web de Kibana con el proxy anterior.

Instalar Logstash

Los paquetes de Logstash también están disponibles en los repositorios de Ubuntu. Entonces, todo lo que necesita hacer es ejecutar los siguientes comandos para instalar, iniciar y habilitar sus servicios.

sudo apt install logstash
sudo systemctl start logstash
sudo systemctl enable logstash

Eso debería tener Logstash instalado y listo para usarse. La configuración predeterminada de Logstash se encuentra en /etc/logstash/conf.d.

Dado que vamos a utilizar Filebeat para recopilar e ingresar datos en Logstash, ejecute los siguientes comandos para crear un archivo para definir el puerto 5044 en Logstash.

sudo nano /etc/logstash/conf.d/02-beats-input.conf

Copie y pegue el contenido a continuación en el archivo y guárdelo.

input {
  beats {
    port => 5044
  }
}

A continuación, cree un archivo para definir la salida a Elasticsearch.

sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf 

Luego copie y pegue el contenido a continuación en el archivo y guárdelo.

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

Guarde la salida.

Asegúrese de que las configuraciones estén bien ejecutando los siguientes comandos de validación:

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

Debería recibir un mensaje de éxito como se muestra a continuación:

Configuration OK

Instalar Filebeat

Los paquetes de Filebeat también vienen con repositorios predeterminados de Ubuntu. Simplemente ejecute los siguientes comandos para instalar, iniciar y habilitar los servicios de Filebeat.

sudo apt install filebeat
sudo systemctl start filebeat
sudo systemctl enable filebeat

Filebeat está configurado para enviar datos directamente a Elasticsearch. Como queremos que los datos fluyan a Logstash primero antes de ir a Elasticsearch, comente las líneas que envían a Elasticsearch y descomente las que envían a Logstash.

sudo nano /etc/filebeat/filebeat.yml

Realice los cambios resaltados a continuación:

# Configure what output to use when sending the data collected by the beat.

# ---------------------------- Elasticsearch Output ----------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]

  # Protocol - either `http` (default) or `https`.
  #protocol: "https"

  # Authentication credentials - either API key or username/password.
  #api_key: "id:api_key"
  #username: "elastic"
  #password: "changeme"

# ------------------------------ Logstash Output -------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications

Después de realizar los cambios, guarde y salga.

Ejecute los siguientes comandos para habilitar los módulos Filebeat y los procesos de análisis.

sudo filebeat modules enable system
sudo filebeat setup --pipelines --modules system

Cargar plantilla de Filebeat

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

También integre Filebeat con Kibana.

sudo filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601

Reinicie todos los componentes

sudo systemctl restart elasticsearch
sudo systemctl restart kibana
sudo systemctl restart logstash
sudo systemctl restart filebeat

¡Deberias hacer eso!

Conclusión:

En este tutorial hemos visto cómo instalar la pila ELK en Ubuntu 20.04 | 18.04. Si encuentra algún error arriba, utilice el formulario a continuación para informar.

También te puede gustar la publicación a continuación: