Cómo instalar ELK Stack en Ubuntu 18.04

miLK Stack es la plataforma de gestión de registros más popular del mundo. Es una colección de productos de código abierto que incluyen Elasticsearch, Logstash y Kibana. Todos estos 3 productos son desarrollados, administrados y mantenidos por Elastic.

ELK Stack es una plataforma poderosa y de código abierto que puede administrar una gran cantidad de datos registrados. El registro de entradas generalmente proviene de una interfaz web gráfica (GUI).

  • Elasticsearch es un motor de búsqueda y análisis basado en JSON diseñado para una escalabilidad horizontal y una gestión más sencilla.
  • Logstash es una interfaz de procesamiento de datos del lado del servidor que tiene la capacidad de recopilar datos de varias fuentes al mismo tiempo. Luego lo transforma y luego envía los datos al alijo deseado. Es una aplicación de código abierto.
  • Kibana se utiliza para visualizar sus datos y navegar por Elastic Stack. También es una herramienta de código abierto.
Índice

Instalar y configurar ELK Stack en Ubuntu

En este tutorial, usaremos filebeat para enviar datos de registro a Logstash. Los Beats son transportadores de datos livianos y, para empezar, deberíamos tener que instalar el agente en los servidores.

Paso 1) Instalación de Java 8

ElasticSearch es compatible con Java 8 y 9, pero el problema es que Logstash solo es compatible con Java 8. Java 9 aún no es compatible. Por tanto, vamos a instalar Oracle Java 8.

Inicie la Terminal y agregue el repositorio de Oracle Java 8, seguido de una actualización del sistema y la instalación real.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-set-default

Presta atención a la Terminal. Deberá aceptar las ventanas del acuerdo de licencia y seleccionar "sí" para continuar. Una vez completada la instalación, puede verificar la versión de Java utilizando los siguientes comandos:

.sudo java -version

Comprobación de la versión de Java
Comprobación de la versión de Java

sudo echo $JAVA_HOME

Compruebe la página de inicio de Java
Compruebe la página de inicio de Java

Paso 2) Instalar y configurar Elasticsearch

Empecemos con wget comando para descargar Elasticsearch seguido de la clave de firma pública:

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

En segundo lugar, instale el paquete apt-transport-https (las distribuciones basadas en Debian lo necesitan).

sudo apt-get install apt-transport-https

Agrega el repositorio:

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 la lista de repositorios e instale el paquete:

sudo apt-get update
sudo apt-get install elasticsearch

Modifiquemos el archivo "elasticsearch.yml":

sudo vim /etc/elasticsearch/elasticsearch.yml

Descomente “network.host” y “http.port”. Se debe agregar la siguiente configuración:

network.host: localhost
http.port: 9200

A continuación, guarde y cierre el archivo.

Para asegurarse de que ElasticSearch funcione sin problemas, habilítelo en el arranque e inicie ElasticSearch.

sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Verifique la instalación:

sudo curl -XGET 'localhost:9200/?pretty'

Ver ElasticSearch
Ver ElasticSearch

Paso 3) Instalación de Kibana

Comencemos a instalar Kibana ahora y modifiquemos la configuración de Kibana:

sudo apt-get install kibana
sudo vim /etc/kibana/kibana.yml

Descomente las siguientes líneas:

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

Guardar y salir del archivo.

Habilítelo al arrancar e inicie el servicio Kibana:

sudo systemctl enable kibana.service
sudo systemctl start kibana.service

Paso 4) Configuración de Nginx como proxy inverso para Kibana

En líneas similares, instalemos Nginx, configurémoslo e iniciemos el servicio. Utilice los siguientes comandos uno a la vez:

sudo apt-get install nginx apache2-utils

Configurar el host virtual:

sudo vim /etc/nginx/sites-available/elk

Agregue la siguiente configuración al archivo:

 server {
    listen 80;
 
    server_name elk.fosslinux.com;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.elkusersecret;
 
    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;
    }
}

Cree un archivo de usuario y contraseña para la autenticación del navegador web:

sudo htpasswd -c /etc/nginx/.elkusersecret elkusr

Autenticación ELK
Autenticación ELK

Ingrese la contraseña y repita. Verifique las configuraciones de Nginx:

sudo nginx -t

Habilite Nginx en el arranque del sistema y reinicie el servicio:

sudo systemctl enable nginx.service
sudo systemctl restart nginx.service

Paso 5) Instalación y configuración de Logstash

Instale Logstash:

sudo apt-get install logstash

Aquí vamos a generar una clave de certificado SSL para asegurar la transferencia de registros desde el cliente de batido de archivos. Modifique el archivo "hosts" antes de crear el certificado SSL.

sudo vim /etc/hosts

Agregue la siguiente línea al archivo. Asegúrese de cambiar la IP y el nombre del servidor por los suyos.

172.31.31.158 elk-server elk-server

Cuando termine, guarde y salga del archivo.

Ahora cambie el directorio a Logstash.

sudo cd /etc/logstash/

Cree una carpeta para SSL:

sudo mkdir ssl

Genere certificado SSL. Cambie elk-server por el nombre de su servidor en el siguiente comando.

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

Cree los siguientes archivos dentro de “/etc/logstash/conf.d”.

sudo cd /etc/logstash/conf.d/

cree un archivo filebeat-input usando vim.

sudo vim filebeat-input.conf

Agregue las siguientes líneas.

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 cierre el archivo y cree un nuevo archivo de configuración.

sudo vim syslog-filter.conf

Agregue el siguiente contenido.

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

Guardar y salir del archivo. Crear búsqueda elástica archivo de salida.

sudo vim output-elasticsearch.conf

Agregue las siguientes líneas.

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

Habilitemos Logstash en el arranque e iniciemos el servicio:

sudo systemctl enable logstash.service
sudo systemctl start logstash.service

Paso 6) Instalación y configuración de Filebeat en servidores cliente

Empiece por editar el Hospedadores archivo para agregar entradas de host elk. Asegúrese de reemplazar la IP y el nombre con los suyos.

sudo vim /etc/hosts
172.31.31.158 elk-server

Guardar y salir del archivo.

Descargue e instale la clave de firma pública:

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

Instale "apt-transport-https" y agregue el repositorio.

sudo apt-get install apt-transport-https
sudo 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 Filebeat.

sudo apt-get update
sudo apt-get install filebeat

Modifique las configuraciones de Filebeat.

sudo vim /etc/filebeat/filebeat.yml

Busque la siguiente línea y modifique el valor a "verdadero".

enabled: true

Aquí no estamos modificando la ruta del registro y Filebeat reenviará todos los registros dentro de la carpeta "var / log"

  paths:
    - /var/log/*.log

Descomente las siguientes líneas:

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

Comentario Elasticsearch:

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

Guardar y salir del archivo.

Ahora vaya al servidor ELK y obtenga el contenido de "logstash-forwarder.crt"

sudo cat /etc/logstash/ssl/logstash-forwarder.crt

SSL Crt
SSL Crt

copie la salida y luego vaya a Elk cliente-servidor.

Crea un archivo de certificado

sudo vim /etc/filebeat/logstash-forwarder.crt

inserte la salida copiada y guarde y salga.

Habilitar filebeat en el inicio del sistema Iniciar filebeat Servicio.

sudo systemctl enable filebeat.service
sudo systemctl start filebeat.service

Paso 7) Examinar el panel de Kibana

Inicie su navegador web favorito e ingrese el nombre de dominio seguido del nombre de usuario y la contraseña.

http://elk.fosslinux.com

Autenticación del navegador
Autenticación del navegador

Ingrese el nombre de usuario y la contraseña creados. Debería ver la página de bienvenida de Kibana. Haga clic en el botón "Explorar mi propio".

Bienvenido Kibana
Página de bienvenida de Kibana

Debería dirigirse a la página de inicio de Kibana.

Página de inicio de Kibana
Página de inicio de Kibana

Haga clic en "Descubrir" en el lado izquierdo. Haga clic en "Crear patrón de índice".

Crear índice
Crear índice

Luego defina el patrón de índice "filebeat- *".

Crear nuevo índice
Definir índice

Haga clic en siguiente y elija @timestamp 'y haga clic en' Crear patrón de índice '.

TimeStamp
Elija TimeStamp

Se debe crear un patrón de índice.

Patrón de índice creado
Patrón de índice creado

Haga clic en el menú "Descubrir" para ver los registros del servidor.

Descubrir
Descubrir registros

Los registros se mostrarán según la marca de tiempo. Haga clic en cualquier marca de tiempo para expandirla y ver el contenido del archivo de registro y sus detalles.

Archivos de registro
Comprobar archivos de registro

Si llegó aquí, significa que ha instalado y configurado correctamente la pila ELK con filebeat. ¿Tienes algún problema? No dudes en hacérnoslo saber en los comentarios a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir