GNU/Linux >> Tutoriales Linux >  >> Linux

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

En esta guía, aprenderá a instalar Elastic Stack en Ubuntu 18.04. Pila elástica , anteriormente conocido como pila ELK es una colección o pila de software gratuito y de código abierto de Elastic Company diseñado para el registro centralizado.

Permite la búsqueda, el análisis y la visualización de registros de diferentes fuentes en una gran variedad de formatos. El registro centralizado ayuda a identificar los problemas del servidor o de la aplicación desde un punto común.

Componentes de pila elástica

Elastic Stack se compone de 4 componentes principales.

  1. Búsqueda elástica :Este es un motor de búsqueda RESTful que almacena o retiene todos los datos recopilados
  2. Logstash :este es el componente que procesa los datos y los analiza para la búsqueda elástica
  3. Kibana :Esta es una interfaz web que visualiza registros
  4. Latidos :Estos son cargadores de datos ligeros que envían registros de cientos/miles de servidores al servidor central en el que está configurado ELK.

Veamos ahora cómo puede instalar Elastic Stack en Ubuntu 18.04.

Requisitos

Antes de comenzar la instalación, asegúrese de tener la siguiente infraestructura.

  1. Servidor Ubuntu 18.04 LTS con acceso raíz y un usuario no raíz más firewall ufw. Los siguientes deben ser los requisitos mínimos del servidor.
    • Ubuntu 18.04 LTS
    • 4 GB de RAM
    • 2 CPU
  2. Java 8 instalado en su sistema que será requerido por Elasticsearch y Logstash.
  3. NGINX instalado en su servidor que luego se configurará para manejar Kibana. Lectura recomendada:Instalar Nginx en Ubuntu 18.04

Dicho esto, profundicemos y comencemos la instalación de Elastic Stack en Ubuntu.

1. Instalar Elasticsearch en Ubuntu

En primer lugar, vamos a importar la clave GPG pública de Elasticsearch a APT. Los paquetes de pila elástica generalmente se firman con la clave de firma de Elasticsearch para proteger su sistema contra la suplantación de identidad de paquetes. Además, el administrador de paquetes considera que los paquetes autenticados son de confianza.

Para importar la llave GPG ejecute:

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

A continuación, agregue el repositorio de Elastic a sources.list.d directorio usando el 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

La salida de los dos comandos es como se muestra:

Salida

Ahora actualice el repositorio del sistema usando el siguiente comando.

sudo apt update

Salida de muestra

Ahora, instale Elasticsearch usando el siguiente comando.

sudo apt install elasticsearch

Salida

2. Configurar Elasticsearch en Ubuntu

Elasticsearch escucha en el puerto 9200. Sin embargo, vamos a limitar el acceso externo para que las partes externas no puedan acceder a los datos y cerrar el clúster elástico. Dicho esto, vamos a realizar algunas modificaciones en el archivo de configuración de Elasticsearch como se muestra a continuación

sudo nano /etc/elasticsearch/elasticsearch.yml

Encuentra el network.host atributo y descomentelo y agregue localhost como su valor. También descomente el http.port atributo.

Salida


network.host: localhost
http.port: 9200

A continuación, inicie y habilite el servicio Elasticsearch como se muestra.


sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Salida

En este punto, Elasticsearch debería estar en funcionamiento. Puede verificar esto ejecutando el siguiente comando.

systemctl status elasticsearch

Salida

También puede usar el netstat comando como se muestra.

netstat -pnltu

Además, puede ejecutar el curl comando como se muestra.

curl -X GET "localhost:9200"

Salida

¡Excelente! Hemos finalizado la instalación y configuración de Elasticsearch. A continuación, instalaremos y configuraremos Logstash.

3. Instalación y configuración de Logstash

El segundo componente de la pila elástica que vamos a instalar es Logstash. Logstash será responsable de recopilar y centralizar los registros de varios servidores mediante el envío de datos de Filebeat. Luego filtrará y transmitirá los datos de syslog a Elasticsearch.

Primero, confirmemos que OpenSSL se está ejecutando. Para hacer eso, corre.

openssl version -a

Salida

Para instalar Logstash, ejecute el siguiente comando.

sudo apt install logstash -y

Salida

A continuación, edite el /etc/hosts archivo y agregue lo siguiente.

18.224.44.11  elk-master

Donde 18.224.44.11 es la dirección IP del servidor masterELk.

Luego vamos a generar la clave del certificado SSL para asegurar la transferencia de datos de registro desde el filebeat del cliente al servidor logstash.

Para hacer esto, primero, cree un nuevo directorio SSL en el directorio de configuración de logstash '/etc/logstash' y navegue hasta ese directorio.


mkdir -p /etc/logstash/ssl
cd /etc/logstash/

Ahora puede generar el certificado SSL como se muestra a continuación.

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

A continuación, vamos a crear nuevos archivos de configuración para logstash. Crearemos un archivo de configuración 'filebeat-input.conf' como archivo de entrada de filebeat, 'syslog-filter.conf' para el procesamiento de syslog y, por último, un archivo 'output-elasticsearch.conf' para definir la salida de Elasticsearch.

Navegue al directorio de Logstash y cree un archivo 'filebeat-input.conf' en el directorio 'conf.d'.

cd /etc/logstash/
vim conf.d/filebeat-input.conf

Pegue la siguiente configuració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"
  }
}

Guarde y salga del editor de texto.

Para los datos de registro de procesamiento de syslog, estamos utilizando el complemento de filtro llamado "grok" para analizar los archivos de syslog.

Cree una nueva configuración 'syslog-filter.conf'.

vim conf.d/syslog-filter.conf

Pegue la configuración 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" ]
    }
  }
}

Guarde y salga del editor de texto.

Finalmente, cree un archivo de configuración llamado 'output-elasticsearch.conf' para la salida de elasticsearch.

vim conf.d/output-elasticsearch.conf

Pegue el siguiente contenido.


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

Guarde y salga del editor de texto.

Cuando haya terminado, habilite e inicie el servicio Logstash.

sudo systemctl enable logstash
sudo systemctl start logstash

Para verificar que Logstash se está ejecutando, ejecute el comando.

sudo systemctl status logstash

Salida de muestra

También puede usar el netstat comando como se muestra.

netstat -pnltu

4. Instalar y configurar Kibana en Ubuntu

A continuación, vamos a instalar Kibana usando el siguiente comando.

sudo apt install kibana -y

Salida

A continuación, vamos a realizar algunas modificaciones en el archivo de configuración de Kibana.

vim /etc/kibana/kibana.yml

Localice y descomente los siguientes atributos.


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

Guarde y salga del editor de texto.

Luego habilite e inicie el servicio Kibana:


sudo systemctl enable kibana
sudo systemctl start kibana

Salida

Puede confirmar que Kibana se está ejecutando en su puerto predeterminado 5601 usando netstat comando como se muestra.

netstat -pnltu

Salida

5. Instalación y configuración de NGINX como proxy inverso para Kibana

Estamos usando NGINX como un proxy inverso para los paneles de kibana. Debe instalar Nginx y 'Apache2-utils' como se muestra a continuación.

sudo apt install nginx apache2-utils -y

Salida

A continuación, cree un nuevo archivo de host virtual llamado kibana.

vim /etc/nginx/vim sites-available/kibana

Pegue el siguiente contenido en el archivo de host virtual


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. Lectura recomendada:directiva de ubicación de NGINX.

A continuación, cree una autenticación básica para el panel de kibana usando htpasswd comando como se muestra.

sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password

Salida

En el ejemplo anterior, el nombre de usuario es elastic y la contraseña será la que usted proporcione.

A continuación, active la configuración del host virtual de Kibana y pruebe la configuración de Nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t

Salida

Sin errores, habilite y reinicie el servidor Nginx.


systemctl enable nginx
systemctl restart nginx

6. Instalación y configuración de Filebeat

En este paso, vamos a configurar el cargador de datos filebeat en nuestro servidor elk-master. Esto transmitirá todos los mensajes de syslog a logstash que serán procesados ​​y visualizados por kibana.

Para instalar filebeat ejecute:

sudo apt install filebeat

A continuación, abra el archivo de configuración de Filebeat.

sudo vim /etc/filebeat/filebeat.yml

Vamos a utilizar Logstash para realizar un procesamiento adicional de los datos recopilados por Filebeat. Filebeat no será necesario para enviar ningún dato directamente a Elasticsearch. Por lo tanto, ubique y comente la sección de búsqueda elástica como se muestra.


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

A continuación, diríjase a la sección Logstash y elimine los comentarios como se muestra.


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

Habilite los prospectores de Filebeat cambiando el valor de la línea "habilitado" a "verdadero".

enabled: true

Especifique los archivos de registro del sistema que se enviarán al servidor logstash. En este ejemplo, agregaremos el archivo de registro ssh 'auth.log' y el archivo syslog.


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

Guardar y Salir.

Finalmente, copie el archivo de certificado de logstash, logstash-forwarder.crt, en /etc/filebeat directorio.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Ahora inicie y habilite filebeat.


systemctl start filebeat
systemctl enable filebeat

Para verificar el estado de ejecución de filebeat:

systemctl status filebeat

Salida

7. Probando la pila de Elasticsearch

Para probar nuestra pila elástica, abra su navegador y busque la IP de su servidor seguido del puerto 5601, que es el puerto que escucha Kibana.

ip-address:5601

Ingrese el nombre de usuario y la contraseña y posteriormente, se desplegará la siguiente pantalla.

Haga clic en la pestaña 'descubrir' y haga clic en 'Filebeat'. Aparecerá la siguiente interfaz que le ofrece transmisión en vivo de los datos visualizados.

¡Felicidades! Ha instalado y configurado con éxito The Elastic Stack y Elastic Beat 'Filebeat' en su sistema Ubuntu 18.04.


Linux
  1. Cómo instalar Elasticsearch y Kibana en Linux

  2. Cómo instalar Elasticsearch en Ubuntu 18.04

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

  4. Instale Elasticsearch, Logstash y Kibana en Ubuntu 20.04

  5. Cómo instalar y configurar Elasticsearch en Ubuntu 18.04

Cómo instalar Elasticsearch, Logstash y Kibana (ELK Stack) en CentOS 7/RHEL 7

Configure ELK Stack en Ubuntu 16.04:instale ElasticSearch, Logstash y Kibana en Ubuntu 16.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