GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configure ELK Stack en Ubuntu 16.04:instale ElasticSearch, Logstash y Kibana en Ubuntu 16.04

ALCE es una pila de análisis de datos con todas las funciones, consta de Elasticsearch , Logstash y Kibana, que lo ayuda a almacenar y administrar los registros de forma centralizada y ofrece la capacidad de analizar los problemas correlacionando los eventos en un momento determinado.

Esta guía lo ayuda a instalar la pila ELK en Ubuntu 16.04.

Componentes

Logstash:realiza el procesamiento (recopilar, enriquecer y enviarlo a Elasticsearch) de los registros entrantes enviados por beats (reenviador).

Elasticsearch:almacena registros entrantes de Logstash y brinda la capacidad de buscar registros/datos en tiempo real

Kibana:proporciona visualización de registros.

Beats:instalado en las máquinas cliente, envíe registros a Logstash a través del protocolo beats.

Requisitos

Cambie al usuario root.

su -

O

sudo su -

Dado que Elasticsearch se basa en Java, debe tener OpenJDK u Oracle JDK instalado en su máquina.

LEER :Cómo instalar Oracle Java 8 en Ubuntu 16.04 / LinuxMint 18

Aquí, elijo instalar OpenJ D K .

apt-get update
apt-get install -y openjdk-8-jdk wget

Compruebe la versión de JAVA.

java -version

Salida:

openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Instalar Elasticsearch

Elasticsearch es un servidor de búsqueda de código abierto que ofrece análisis y búsqueda distribuida en tiempo real con la interfaz web RESTful.

Elasticsearch almacena todos los datos enviados por logstash y se muestran a través de kibana a pedido de los usuarios.

Este tema cubre los ajustes de configuración que se requieren para ELK. También puede tomar en  Instalar Elasticsearch en CentOS 7/Ubuntu 16.04/Linux Mint 18 para obtener más instrucciones.

Configure el repositorio de Elasticsearch.

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

Instala Elasticsearch.

apt-get update
apt-get install -y elasticsearch

Configure Elasticsearch para que se inicie durante el inicio del sistema.

systemctl enable elasticsearch
systemctl start elasticsearch

Elastisearch ahora debería estar escuchando en 9200 para procesar la solicitud HTTP; podemos usar CURL para obtener la respuesta.

curl -X GET http://localhost:9200

Salida:

{
 "name" : "gf5QYAn",
 "cluster_name" : "elasticsearch",
 "cluster_uuid" : "S6gZNkMERpSr-MGXqEFUJw",
 "version" : {
 "number" : "5.5.2",
 "build_hash" : "b2f0c09",
 "build_date" : "2017-08-14T12:33:14.154Z",
 "build_snapshot" : false,
 "lucene_version" : "6.6.0"
 },
 "tagline" : "You Know, for Search"
}

Instalar Logstash

Logstash es una herramienta de código abierto, recopila los registros, los analiza y los almacena en Elasticsearch para realizar búsquedas. Hay más de 160 complementos disponibles para Logstash, que brinda la capacidad de procesar un tipo diferente de eventos sin trabajo adicional.

Instale Logstash usando el comando apt-get.

apt-get install -y logstash

Crear certificado SSL

El reenviador (filebeat) que se instalará en los servidores del cliente utiliza un certificado SSL para validar la identidad del servidor Logstash para una comunicación segura.

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

Opción 1:(Nombre de host FQDN)

Si usa el nombre de host en la configuración de beats (reenviador), asegúrese de tener un registro A para el servidor logstash; asegúrese de que la máquina cliente pueda resolver el nombre de host del servidor logstash.

Si no tiene un servidor de nombres en su entorno; asegúrese de agregar la entrada de host para el servidor logstash en las máquinas cliente, así como en el servidor logstash.

sudo nano /etc/hosts

192.168.12.10 server.itzgeek.local

Vaya al directorio de OpenSSL.

cd /etc/ssl/

Ahora, cree el certificado SSL. Reemplace “verde ” uno con el nombre de host de su servidor logstash real.

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

Opción 2:(Dirección IP)

Si planea usar una dirección IP en lugar de un nombre de host, siga los pasos para crear un certificado SSL para IP SAN.

Como requisito previo, necesitaríamos agregar una dirección IP del servidor logstash a SubjectAltName en el archivo de configuración de OpenSSL.

nano /etc/ssl/openssl.cnf

Busque la sección "[ v3_ca ]" y reemplace "verde ” uno con la IP de su servidor logstash.

subjectAltName = IP:192.168.12.10

Ir al directorio de OpenSSL.

cd /etc/ssl/

Ahora, crea un certificado SSL ejecutando el siguiente comando.

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

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

Configurar Logstash

La configuración de Logstash se puede encontrar en /etc/logstash/conf.d/. Si los archivos no existen, cree uno nuevo. El archivo de configuración logstash consta de tres secciones de entrada, filtro y salida; las tres secciones se pueden encontrar en un solo archivo o cada sección tendrá archivos separados que terminarán con .conf.

Te recomiendo que uses un solo archivo para colocar las secciones de entrada, filtro y salida.

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

En el primer apartado pondremos una entrada para la configuración de entrada. La siguiente configuración configura Logstash para escuchar en el puerto 5044 los registros entrantes de los beats (reenviador) 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
   ssl => true
   ssl_certificate => "/etc/ssl/logstash-forwarder.crt"
   ssl_key => "/etc/ssl/logstash-forwarder.key"
   congestion_threshold => "40"
  }
}

En la sección de filtros. Usaremos Grok para analizar los registros antes de enviarlos a Elasticsearch. El siguiente filtro grok buscará los registros etiquetados como "syslog" e intentará 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 ver más patrones de filtro, echa un vistazo a la página de grokdebugger.

En la sección de salida, definiremos la ubicación donde se almacenarán los registros; obviamente, debería ser Elasticsearch.

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

Ahora inicie y habilite Logstash.

systemctl start logstash
systemctl enable logstash

Puede solucionar cualquier problema mirando el registro a continuación.

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

A continuación, configuraremos beats para enviar los registros al servidor logstash.

Instalar Filebeat

Hay cuatro clientes de latidos disponibles.

  1. Packetbeat:analiza los datos de los paquetes de red.
  2. Filebeat:información en tiempo real sobre los datos de registro.
  3. Topbeat:obtenga información de los datos de la infraestructura.
  4. Metricbeat:envía métricas a Elasticsearch.

En la máquina del Cliente:

Para analizar los registros del sistema, usaremos filebeat aquí. Puede descargar filebeat desde el sitio web oficial , o puede usar el siguiente comando para instalarlo.

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

Instalar Filebeat.

apt-get update 
apt-get install -y filebeat

Filebeat (beats) utiliza un certificado SSL para validar la identidad del servidor de logstash, así que copie logstash-forwarder.crt del servidor de logstash al cliente.

$ scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl

Configurar Filebeat

Ahora es el momento de conectar filebeat con Logstash; siga los pasos a continuación para configurar filebeat con la pila ELK.

El archivo de configuración de Filebeat está en formato YAML, lo que significa que la sangría es muy importante. Asegúrate de usar la misma cantidad de espacios que se usan en la guía.

Abre el archivo de configuración de Filebeat.

nano /etc/filebeat/filebeat.yml

En la parte superior, verás buscadores de Filebeat. Aquí, debe especificar qué archivos deben enviarse a logstash y cómo deben manejarse. Cada prospector comienza con personaje.

Con fines de prueba, configuraremos filebeat para enviar /var/log/syslog al servidor de Logstash. Para ello, modifique el prospector existente en rutas sección. Comente el – /var/log/*.log para evitar enviar todos los .log archivo presente en ese directorio a Logstash.

.  .  .

      paths:

        - /var/log/syslog
        # - /var/log/*.log

.  .  .

En la sección Resultados , comente la sección output.elasticsearch: ya que no vamos a almacenar registros directamente en Elasticsearch.

Ahora, busque la línea "output.logstash: ” y modifique las entradas como se muestra a continuación. Esta sección define filebeat para enviar registros al servidor logstash “server.itzgeek.local ” en el puerto “5044 ” y mencione la ruta donde se encuentra el certificado SSL copiado.

Nota:Reemplace “server.itzgeek.local ” con la dirección IP en caso de que esté utilizando IP SAN.

.   .   .

output.logstash:
  # The Logstash hosts
  hosts: ["server.itzgeek.local:5044"]

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  ssl.certificate_authorities: ["/etc/ssl/logstash-forwarder.crt"]

.   .   .

Reinicie el servicio.

systemctl restart filebeat
systemctl enable filebeat

Los registros de Beats normalmente se encuentran en su archivo de registro.

cat /var/log/filebeat/filebeat

Instalar y configurar Kibana

Kibana proporciona visualización de registros almacenados en elasticsearch, descárguelo del sitio web oficial o use el siguiente comando para configurar el repositorio.

apt-get install -y kibana

Edite el archivo kibana.yml.

nano /etc/kibana/kibana.yml

De forma predeterminada, Kibana escucha en localhost, lo que significa que no puede acceder a la interfaz de Kibana desde máquinas externas. Para habilitarlo, edite la siguiente línea con la IP de su máquina.

server.host: "192.168.12.10"

Quite el comentario de la siguiente línea y actualícela con la URL de la instancia de Elasticsearch. En mi caso, es localhost.

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

Inicie y habilite kibana al iniciar el sistema.

systemctl start kibana
systemctl enable kibana

Acceda a Kibana utilizando la siguiente URL.

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

O

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

En su primer inicio de sesión, debe asignar el índice de filebeat.

Escriba lo siguiente en el Nombre o patrón del índice caja.

filebeat-*

Selecciona  @timestamp y luego haz clic en crear.

@timestamp

Revise los patrones de índice y su mapeo.

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

Eso es todo. Ha configurado correctamente la pila ELK en Ubuntu 16.04


Ubuntu
  1. Instalación de la pila ELK en Ubuntu 14.04

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

  3. Instalación de Filebeat, Logstash, ElasticSearch y Kibana en Ubuntu 14.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 Elasticsearch, Logstash y Kibana (ELK Stack) en Ubuntu 18.04/Ubuntu 16.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 Elasticsearch Logstash Kibana (Elastic Stack) en Ubuntu 18.04

Cómo instalar ELK Stack en Ubuntu 20.04