¿Cómo instalar la pila ELK en Ubuntu 18.04?

En este tutorial, aprenderemos cómo instalar la pila ELK en Ubuntu 18.04. Primero comprendamos qué es la pila ELK. La pila elástica se conocía anteriormente como pila ELK.

¿Qué es la pila ELK?

ELK stack es la colección de productos de código abierto desarrollados por elastic. Se realizan las tres cosas siguientes:

  • Conjunto de datos:El usuario recopila los datos de diferentes fuentes.
  • Analiza los datos:procesar los datos recopilados
  • Visualización:denota la representación de datos
Estructura

Elastic Stack consta de 4 componentes:

  • Búsqueda elástica:Es la base de datos distribuida No-SQL que almacena los datos en formato JSON. Se utiliza para almacenar y buscar los datos recopilados. Fue desarrollado en base al motor de búsqueda Apache Lucene. Comprobar elDocumentación oficial de Elasticsearchpara más detalles.
  • Logstash: Recopila los datos de diferentes fuentes y los transmite en el proceso de procesamiento o filtra los datos de entrada. Empuja los troncos hacia la búsqueda elástica. Tenga en cuenta que recopila datos tanto heterogéneos como no heterogéneos de diversas fuentes. Comprobar elDocumentación oficial de Logstashpara más detalles.
  • kibana: Proporciona la interfaz gráfica de usuario. El usuario puede mostrar los datos según sea necesario a través de la búsqueda elástica. Utiliza diferentes tipos de elementos visuales, como gráficos de barras, gráficos circulares, mapas mundiales, mapas de calor, etc. Para más detalles, consultela documentación oficial de Kibana.
  • Latidos:Hay recolectores de datos livianos. Es como Logstash pero se diferencia en el hecho de que no filtra los datos de entrada y puede recopilar datos más fácilmente que Logstash. Beats es el pequeño software instalado en diferentes servidores. Comprobar elSupera la documentación oficialpara más detalles.

Para más detalles, consulte elDocumentación oficial de Elastic Search.

Entendamos cómo instalar la pila ELK en Ubuntu. Existen algunos requisitos previos de la pila ELK.

Requisitos previos

Existen algunos de los requisitos básicos de la pila ELK.

  • El sistema debe ser usuario root o usuario no root con los requisitos mínimos:
    • Ubuntu 18.04 LTS
    • 4 GB de RAM
    • 2 CPU
  • Se debe instalar Java-8 en el sistema, requerido por Elastic Search y Logstash. Aprenda el tutorial sobre cómo instalar Java en Ubuntu.
  • Nginx instalado en el sistema, necesario para manejar Kibana.Aprenda el tutorial sobre cómo instalar Nginx en Ubuntu.

Profundicemos en el proceso de instalación.

Instalar y configurar Elasticsearch en Ubuntu

El primer componente de la pila ELK es la búsqueda elástica, que es la base de datos No-SQL.

Importar la clave GPG

Debe importar la clave GPG. GPG o GNU Public Guard es una implementación de criptografía de clave pública. Comprobar elDocumentación oficial de GPGpara más detalles.

Puede utilizar el comando wget para importar la clave GPG. Echemos un vistazo al siguiente comando:

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

Debe responder conDE ACUERDO.El siguiente paso es agregar el repositorio elástico al directorio sources.list.d ubicado en /etc/apt/. Utilice el comando echo y el comando sudo tee para enviar el resultado al archivo. Echemos un vistazo al siguiente comando:

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

actualizar los paquetes

A partir de ahora, hemos agregado la clave GPG al archivo. Por lo tanto, es necesario actualizar los paquetes. Puede utilizar el comando apto para hacerlo.

Conozca la diferencia entre el comando apt y apt-get. Echemos un vistazo al siguiente comando:

sudo apt update

Instalar el paquete Elasticsearch

Una vez que hayamos terminado con la actualización de los paquetes, el siguiente paso es instalar el paquete. Se instalará desde el repositorio de apt. Utilice el comando apt para instalar el paquete.

Para hacerlo, escriba lo siguiente en la terminal:

sudo apt install elasticsearch
Install Elasticsearch Step 3Instalar Elasticsearch

Configuraciones básicas de Elasticsearch

El puerto predeterminado de Elasticsearch es 9200.Debe realizar algunas modificaciones para que esté a salvo del acceso de usuarios no deseados. Por lo tanto, es necesario cambiar el host de la red y el puerto.

Realice los cambios en el archivo elasticsearch.yml ubicado en el directorio /etc/elasticsearch/. Los dos cambios requeridos son:

  • Descomente y cambie el host de la red a "localhost"
  • Como se describió anteriormente, descomente el atributo http.port mientras Elastic Search escucha el puerto 9200.

Echemos un vistazo al siguiente comando:

sudo vi /etc/elasticsearch/elasticsearch.yml

Utilice cualquier editor de su elección. Realice los cambios como se muestra a continuación:

network.host: localhost
http.port: 9200
Configuration Step4Configuración

Guarde y salga de los cambios usando “:wq”.

Iniciar y habilitar los servicios.

Una vez que hayamos terminado con las configuraciones, el siguiente paso es iniciar y habilitar los servicios. Echemos un vistazo al siguiente comando:

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

También puede verificar el estado de la búsqueda elástica usando el comando de estado. Para hacerlo, escriba lo siguiente en la terminal:

systemctl status elasticsearch
Status Of The Service Steo5Estado del servicio

Puede ver el estado como activo resaltado en la imagen de arriba.

La forma alternativa de verificar el estado del servicio es utilizar el comando netstat. El comando netsat se utiliza para mostrar la lista de todos los servicios en ejecución en el sistema. Echemos un vistazo al siguiente comando:

netstat -pnltu
Netstat 2Netstat 2

El puerto predeterminado de Elastic Search es 9200 y está activo, como se muestra en la imagen de arriba. También puede imprimir los detalles del servicio usando el comando curl. Debe mencionar el host local para que pueda recuperar los datos.

Para hacerlo, escriba lo siguiente en la terminal:

curl -X GET "localhost:9200"
Get Localhost Obtener localhost

Eso es todo. Ha configurado correctamente la búsqueda elástica. A continuación, veremos Logstash.

Instalar y configurar Logstash

Como se describe, Logstash se utiliza para recopilar y filtrar los datos de entrada. Aquí instalaremos y configuraremos el paquete. Los datos filtrados se envían a Elasticsearch como registros. Entendamos cómo instalarlo.

Instale el paquete Logstash

Aquí veremos cómo instalar Logstash. El primer paso es confirmar siAbiertoSSLestá funcionando o no. Para hacerlo, escriba el siguiente comando en la terminal:

openssl version -a
OpensslOpenssl

Esta funcionando. Entonces, instalemos Logstash en el sistema usando el comando apt:

sudo apt install logstash -y
LogtashLogtash

Configuraciones básicas para Logstash

El trabajo de Logstash es filtrar los datos, es decir, tomará la entrada de uno y generará la salida después de filtrarlo. Por lo tanto, necesitamos crear los tres archivos de configuración en Logstash.

  • Archivo de configuración de entrada:es el archivo de entrada de filebeat llamado "filebeat-input.conf".
  • Archivo de configuración de Syslog:Se utiliza para procesar los datos denominados "Syslog-filter.conf".
  • Archivo de configuración de salida:Enviará la salida a Elastic Search llamada "output-elasticsearch.conf".

Echemos un vistazo a cómo crear los archivos de configuración. Pero antes de continuar con esto, agregue la dirección IP del servidor masterELK en el archivo /etc/hosts. Para hacerlo, agregue la siguiente línea en el archivo:

<ip address>  elk-master
Add Configuration 1Agregar configuración 1

Recuerde reemplazar la dirección IP con su IP correcta. En mi caso, 18.224.44.11 es la IP del servidor.

1. Cree un archivo de configuración de entrada para Logstash

Como se mencionó anteriormente, crearemos el archivo de configuración de entrada llamado “filebeat-input.conf” ubicado en el directorio /etc/logstash/conf.d. Echemos un vistazo al siguiente comando:

sudo vi /etc/logstash/conf.d/filebeat-input.conf

Puede utilizar el editor nano o vi. Pegue el siguiente código como se muestra a continuación:

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}
Add Logstash To Configuration FileArchivo de configuración de entrada

Guarde y salga del archivo usando “:wq”.

2. Cree el archivo de configuración syslog

Anteriormente, creamos el archivo de configuración de entrada. El siguiente paso es crear un archivo de configuración Syslog llamado Syslog-filter.conf ubicado en el directorio /etc/logstash/conf.d. Echemos un vistazo al siguiente comando:

sudo vi /etc/logstash/conf.d/syslog-filter.conf

Agregue el siguiente código como se muestra a continuación:

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" ]
    }
  }
}

Syslog ConfigurationConfiguración de registro del sistema

Guarde y salga del editor usando “:wq”.

3. Crear archivo de configuración de salida

El último archivo de configuración es el archivo de configuración de salida llamado output-elasticsearch.conf ubicado en el directorio /etc/logstash/conf.d. Echemos un vistazo al siguiente comando:

sudo vi /etc/logstash/conf.d/output-elasticsearch.conf

Agregue el siguiente código como se muestra a continuación:

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}
Elastic Search Configuration 1Configuración de búsqueda elástica 1

Guarde y salga de los cambios.

Inicie el servicio Logstash

Después de realizar con éxito todas las configuraciones, el siguiente paso es iniciar y habilitar los servicios de Logstash. Utilice el comando iniciar y habilitar para hacerlo. Echemos un vistazo al siguiente comando:

sudo systemctl enable logstash
sudo systemctl start logstash

También podemos verificar el estado de Logstash usando el comando de estado. Para hacerlo, escriba lo siguiente en la terminal:

sudo systemctl status logstash
Status Of LogstashEstado de Logstash

Puede ver el estado como activo resaltado en la imagen de arriba.

La forma alternativa es utilizar el comando netstat para verificar que el servicio Logstash se esté ejecutando o no. Tenga en cuenta que el puerto predeterminado de Logstash es 5044. Echemos un vistazo al siguiente comando:

netstat -pnltu

Eso es todo. Hemos instalado y configurado exitosamente Logstash.

Instalar y configurar Kibana en Ubuntu

Kibana se utiliza para crear una interfaz de usuario. Descubre los datos explorándolos. También aplica el aprendizaje automático a los datos para obtener la anomalía de los datos. Utilice el comando apt para instalar el paquete. Echemos un vistazo al siguiente comando:

sudo apt install kibana -y
Install Kibana 1Instalar Kibana

Configuraciones básicas para Kibana

Debe realizar alguna configuración en el archivo kibana.yml ubicado en el directorio /etc/Kibana. Hay que hacer tres modificaciones:

  • El puerto predeterminado de Kibana es 5601; por lo tanto, descomente el atributo server.port.
  • Descomentar el atributo server.host
  • Descomente también la URL de búsqueda elástica.

Echemos un vistazo al siguiente comando:

vim /etc/kibana/kibana.yml

Puedes usar "?" seguido de la palabra clave buscada para buscar los atributos en el editor vi. Descomente los siguientes atributos que se indican a continuación:

server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"
Kibana ConfiguartionConfiguración de Kibana

Iniciar el servicio Kibana

Después de realizar con éxito las configuraciones, el siguiente paso es iniciar y habilitar los servicios. Utilizará el comando iniciar y habilitar para hacerlo. Echemos un vistazo al siguiente comando:

sudo systemctl enable kibana
sudo systemctl start kibana

También puede verificar el estado del servicio usando el comando de estado como se muestra a continuación:

systemctl status kibana
Status Of KibanaEstado de Kibana

Puede ver el estado resaltado en la imagen de arriba.

La forma alternativa de verificar el servicio es utilizar el comando netstat. Como se mencionó, el puerto predeterminado es 5601, el usuario puede notar el puerto ejecutándose en la imagen que se muestra a continuación:

netstat -pnltu
Netstat KibanaNetstat Kibana

Configuraciones básicas de Kibana con Nginx

Kibana utiliza el servidor Nginx para los paneles. Es importante instalar Nginx y configurarlo. Aprende el tutorial sobrecómo instalar Nginx en Ubuntu. Echemos un vistazo al siguiente comando para instalar Nginx y apache2-utils:

sudo apt install nginx apache2-utils -y
Install Nginx 1Instalar Nginx 1

El siguiente paso es crear el archivo virtual llamado kibana ubicado en el directorio /etc/Nginx/site-available. Utilice cualquier editor para abrir el archivo. Echemos un vistazo al siguiente comando:

vim /etc/nginx/sites-available/kibana

Agregue el siguiente código como se indica a continuación. Tenga en cuenta que no olvide cambiar el nombre del servidor.

server {
    listen 80;
 
    server_name localhost;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass https://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 del editor de texto.

El siguiente paso es crear seguridad para el panel de kibana. Es importante para que usuarios no autorizados no accedan al panel. La creación de una contraseña segura solo permitiría a los usuarios autenticados acceder al panel. Usarcomando htpasswdpara hacerlo. Echemos un vistazo al siguiente comando:

sudo htpasswd -c /etc/nginx/.kibana-user elastic

Escriba la contraseña segura. Se vería como se muestra en la imagen a continuación:

Add New Password For Nginx

El último paso es recargar el servicio Nginx. Siempre que realice algún cambio en el archivo de configuración, es importante recargar el servicio nuevamente. Utilice el siguiente comando como se indica a continuación:

systemctl restart nginx

Instalar y configurar el filebeat

Como se describió anteriormente, Beats son los recopiladores livianos que se utilizan para recopilar los datos y enviarlos a la búsqueda elástica. Utilice el comando apt para descargar el paquete. Echemos un vistazo al siguiente comando:

sudo apt install filebeat
Install FleatbeatInstalar Flatbeat

Configuración básica para filebeat

Una vez que hayamos terminado con la instalación, el siguiente paso es realizar las configuraciones. Los cambios deben realizarse en el archivo denominado “filebeat.yml” ubicado en el directorio /etc/filebeat/. Tienes que realizar varios cambios en este archivo. Echemos un vistazo al siguiente comando:

sudo vim /etc/filebeat/filebeat.yml

Filebeat no enviará ningún dato directamente a Elasticsearch. Por lo tanto, debe comentar en la sección Elasticsearch y descomentar la sección Logstash. Echemos un vistazo a esto:

#Comment the following :

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

#Uncomment the Logstash section

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

# Enable the filebeat prospectors:
enable=true

# Add the path files

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


Guarde y salga del editor usando “:wq”.

Inicie los servicios de Filebeat

Después de realizar las configuraciones, el último paso es habilitar los servicios. Utilice el comando iniciar y habilitar para hacerlo. Echemos un vistazo al siguiente comando:

systemctl start filebeat
systemctl enable filebeat

El usuario puede verificar el estado del servicio usando el comando Estado como se muestra a continuación:

systemctl status filebeat
Status Of FilebeatEstado de Filebeat

Puede ver el estado como activo resaltado en la imagen de arriba.

Comencemos con Elasticsearch Stack

Una vez que hayamos terminado con la instalación completa de la pila ELK, verifiquémosla en el navegador. Para hacerlo, abra el navegador y agregue la dirección IP seguida del número de puerto, es decir, 5601 en la barra de direcciones. Echemos un vistazo al siguiente comando:

ip-address:5601
Kibana Dashboard 1Panel de Kibana 1

El usuario puede comprobar los datos visualizados haciendo clic en la pestaña "Descubrir".

Conclusión

Eso es todo. Ahora sabemos cómo instalar todos los componentes de la pila ELK seguido del “filebeat” de Elastic Beat. Espero que se aclaren todos los conceptos. Si aún tiene algún problema, háganoslo saber en la sección de comentarios.

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín