GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Elasticsearch, Logstash y Kibana (ELK Stack) en Ubuntu 18.04/Ubuntu 16.04

Pila ELK es una plataforma de análisis de datos con todas las funciones, consta de tres herramientas de código abierto Elasticsearch , Logstash y Kibana . Esta pila lo ayuda a almacenar y administrar registros de forma centralizada y brinda la capacidad de analizar problemas al correlacionar los eventos en un momento determinado.

Esta publicación lo guía para instalar la pila ELK en Ubuntu 18.04 / Ubuntu 16.04 .

Componentes

Búsqueda elástica – Almacena los registros entrantes de Logstash y proporciona la capacidad de buscar los registros/datos en tiempo real

Almacenamiento de registros – Procesamiento (Recopilar, enriquecer y enviar a Elasticsearch) de registros entrantes enviados por beats (forwarder).

Kibana – Proporciona visualización de eventos y registros.

Latidos – Se instala en las máquinas cliente y envía registros a Logstash o Elasticsearch a través del protocolo Beats.

Requisitos

Instalar Java

Elasticsearch requiere OpenJDK o Oracle JDK disponible en su máquina.

Aquí, para esta demostración, estoy usando OpenJDK. Instale Java usando el siguiente comando junto con wget y el paquete de soporte HTTPS para APT.

sudo apt update
sudo apt install -y openjdk-8-jdk wget apt-transport-https

Compruebe la versión de Java.

java -version

Salida:

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

Si desea utilizar Oracle Java JDK, entonces lea.

LEER :Instalar Oracle Java JDK 10/8 en Ubuntu 18.04

LEER :Instalar Oracle Java JDK 8 en Ubuntu 16.04

Configurar repositorio ELK

Los paquetes de pilas ELK se pueden obtener fácilmente de Elastic CO configurando su repositorio oficial .

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

Instalar Elasticsearch

Ahora instalaremos el servidor Elasticsearch, un motor de búsqueda de código abierto basado en Lucene. Proporciona un motor de búsqueda de texto completo distribuido en tiempo real y con capacidad para múltiples inquilinos con una interfaz web (HTTP) y documentos JSON sin esquema.

Instale Elasticsearch usando el siguiente comando, v6.4 al momento de escribir este artículo.

sudo apt update
sudo apt install -y elasticsearch

Inicie el servicio Elasticsearch.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Espere unos minutos y ejecute el siguiente comando para ver el estado de la interfaz REST de Elasticsearch.

curl -X GET http://localhost:9200

Salida:

{
  "name" : "nqS7TFZ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "vERyh1VpR46G9T21H_3gKQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

El resultado anterior confirma que Elasticsearch funciona correctamente.

Instalar Logstash

Logstash es un motor de recopilación de datos y análisis de registros de código abierto. Recopila registros, los analiza y los almacena en Elasticsearch para realizar búsquedas. Hay más de 160 complementos disponibles para Logstash, que brindan la capacidad de procesar un tipo diferente de eventos sin trabajo adicional.

sudo apt install -y logstash

Crear certificado SSL para Logstash (Opcional)

Es opcional configurar el Reenviador (Filebeat) que instalamos en las máquinas cliente para usar el certificado SSL para la transmisión segura de registros.

Cree el certificado SSL con el nombre de host o IP SAN.

Opción 1:(Nombre de host o FQDN)

Vaya al directorio de OpenSSL.

cd /etc/ssl/

Ahora, cree el certificado SSL usando OpenSSL. Reemplace server.itzgeek.local con el nombre de host de su servidor Logstash.

sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local

Este logstash-forwarder.crt debe copiarse a todos los servidores de clientes que envían registros al servidor logstash.

Opción 2:(Dirección IP)

Siga los pasos a continuación para crear un certificado SSL para IP SAN.

Como requisito previo, agregue la dirección IP del servidor Logstash a SubjectAltName en el archivo de configuración de OpenSSL.

sudo nano /etc/ssl/openssl.cnf

Busque [ v3_ca ] sección y actualice subjectAltName con la dirección IP de su servidor Logstash.

subjectAltName = IP:192.168.1.10

Ir al directorio de OpenSSL.

cd /etc/ssl/

Ahora, cree el certificado SSL ejecutando el siguiente comando.

sudo openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt

Este logstash-forwarder.crt debe copiarse a todos los servidores de clientes que envían registros al servidor logstash.

Convertir SSL

Convierta la clave actual al formato PKCS8 para que Logstash funcione correctamente.

sudo openssl pkcs8 -in logstash-forwarder.key  -topk8 -nocrypt -out logstash-forwarder.key.pem

Cambie el permiso del archivo a legible por todo el mundo.

sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem

Configurar Logstash

La configuración de Logstash consta de tres secciones, a saber, entrada, filtro y salida. Puede poner todas las secciones en un solo archivo o en un archivo separado para cada sección, terminar con .conf .

Aquí, usaremos un solo archivo para colocar las secciones de entrada, filtro y salida. Cree un archivo de configuración en /etc/logstash/conf.d/ directorio.

sudo nano /etc/logstash/conf.d/logstash.conf

En la sección de entrada, configuraremos Logstash para escuchar en el puerto 5044 los registros entrantes, desde beats (Forwarder) que se encuentran en las máquinas cliente.

Además, agregue los detalles del certificado SSL en la sección de entrada para una comunicación segura.

input {
 beats {
   port => 5044
   
   # Set to False if you do not SSL
   ssl => true
  
   # Delete below lines if no SSL is used
   ssl_certificate => "/etc/ssl/logstash-forwarder.crt"
   ssl_key => "/etc/ssl/logstash-forwarder.key.pem"
   }
}

En la sección de filtros. Usaremos Grok para analizar los registros antes de enviarlos a Elasticsearch, para su almacenamiento.

El siguiente filtro grok buscará registros etiquetados como syslog. e intenta analizarlos para crear un índice estructurado.

filter {
if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }

    date {
match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
  }

}

Para obtener más patrones de filtro GROK, eche un vistazo a aquí .

En la sección de salida, definiremos dónde se almacenarán los registros, obviamente Elasticsearch en el caso de la pila ELK.

output {
 elasticsearch {
  hosts => localhost
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
       }
stdout {
    codec => rubydebug
       }
}

Ahora inicie y habilite el servicio Logstash.

sudo systemctl restart logstash
sudo systemctl enable logstash

Registros de Logstash:

sudo cat /var/log/logstash/logstash-plain.log

Instalar y configurar Kibana

Kibana proporciona visualización de datos almacenados en Elasticsearch. Instale Kibana usando el siguiente comando.

sudo apt install -y kibana
De forma predeterminada, Kibana escucha en localhost, lo que significa que no puede acceder a la interfaz web de Kibana desde máquinas externas.

Para habilitar el acceso, edite /etc/kibana/kibana.yml archivo.

sudo nano /etc/kibana/kibana.yml

Realice cambios en la siguiente línea con la dirección IP de su servidor.

server.host: "192.168.1.10"

Además, algunos casos, Elasticsearch y Kibana se ejecutan en diferentes máquinas , actualice la siguiente línea con la dirección IP del servidor de Elasticsearch.

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

Inicie y habilite Kibana al iniciar la máquina.

sudo systemctl restart kibana
sudo systemctl enable kibana

Instalar Beats

Hay cuatro clientes beat disponibles.

Packetbeat – Analizar datos de paquetes de red.
Filebeat – Perspectiva en tiempo real de los datos de registro.
Mejores ritmos – Obtenga información de los datos de la infraestructura.
Metricbeat – Envíe métricas a Elasticsearch.

Asegúrese de que las máquinas cliente puedan resolver el nombre de host del servidor Logstash. Si su entorno no tiene un servidor DNS , entonces deberá agregar una entrada de host para el servidor Logstash en la máquina cliente.

sudo nano /etc/hosts

Haga una entrada similar a la siguiente.

192.168.1.10 server.itzgeek.local

Instalar Filebeat

Filebeat es un agente de software que se ejecuta en la máquina del cliente remoto y envía registros al servidor de Logstash para analizarlos o a Elasticsearch para almacenarlos, según la configuración.

Instalar soporte HTTPS para apt.

sudo apt update
sudo apt install -y apt-transport-https

Filebeat está disponible en el repositorio de Elastic, por lo que debe configurarlo para la instalación de Filebeat.

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

Instale Filebeat usando el siguiente comando.

sudo apt update
sudo apt install -y filebeat

Configurar Filebeat

Primero, copie el archivo logstash-forwarder.crt en la máquina cliente remota.

Omita este paso, en caso de que no esté utilizando SSL en Logstash para una comunicación segura.
scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl

Edite el archivo de configuración de filebeat /etc/filebeat/filebeat.yml para enviar registros al servidor de Logstash.

sudo nano /etc/filebeat/filebeat.yml

La siguiente configuración es enviar registros del sistema (/var/log/syslog ) al servidor de Logstash. Para esta demostración, he comentado /var/log/*.log para evitar enviar todos los registros al servidor de Logstash.

.  .  .
filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/syslog
    #- /var/log/*.log
.  .  .
En la sección Salidas, comente la sección output.elasticsearch: ya que no vamos a almacenar registros en Elasticsearch.

Ahora, busque la línea output.logstash: y modifique las entradas para enviar registros del sistema a Logstash y también mencione la ubicación del certificado SSL.

Reemplace server.itzgeek.local con dirección IP del servidor Logstash en caso de que esté utilizando IP SAN.
.   .   .

output.logstash:

    hosts: ["server.itzgeek.local:5044"]
    
    # Comment out this line if you are not using SSL on Logstash server
    ssl.certificate_authorities: ["/etc/ssl/logstash-forwarder.crt"]

.   .   .

Reinicie el servicio Filebeat.

sudo systemctl restart filebeat

El registro de Filebeat normalmente se encuentra en su archivo de registro.

sudo cat /var/log/filebeat/filebeat

Acceder a la interfaz de Kibana

Acceda a la interfaz web de Kibana yendo a la siguiente URL.

http://tu-dirección-ip:5601/

O

http://nombre-de-su-servicio:5601

Obtendrías la página de inicio de Kibana.

En su primer acceso, debe asignar el índice de filebeat. Ir a Administración>> Patrones de índice .

Escriba lo siguiente en el Patrón de índice caja.

filebeat-*

Debería ver el índice de filebeat algo como arriba. Haz clic en Siguiente paso .

Selecciona  @timestamp y luego haz clic en Crear patrón de índice .

@timestamp

Consulte los patrones de índice y su asignación.

Haz clic en Descubrir en la navegación izquierda para ver los registros entrantes de las máquinas cliente.

Eso es todo.


Ubuntu
  1. Cómo instalar y usar Elasticsearch en Ubuntu 20.04

  2. Cómo instalar Elasticsearch, Logstash y Kibana 4 en CentOS 7 / RHEL 7

  3. Cómo instalar Elasticsearch, Logstash y Kibana 4 en Ubuntu 14.04 / 15.04

  4. Cómo instalar y configurar Elasticsearch en Ubuntu 20.04

  5. Instale Elasticsearch, Logstash y Kibana en Ubuntu 20.04

Cómo instalar ELK Stack en Ubuntu 18.04

Cómo instalar ELK Stack (Elasticsearch, Logstash y Kibana) en Ubuntu 20.04

Cómo instalar ELK Stack en Ubuntu 18.04 LTS

Cómo instalar ELK Stack en Ubuntu 20.04 LTS

Cómo instalar Elasticsearch Logstash Kibana (Elastic Stack) en Ubuntu 18.04

Cómo instalar ELK Stack en Ubuntu 20.04