GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Elastic Stack en Ubuntu 18.04 LTS

Elasticsearch es un motor de búsqueda de código abierto basado en Lucene, desarrollado en Java. Proporciona un motor de búsqueda de texto completo distribuido y multiinquilino con una interfaz web HTTP Dashboard (Kibana). Los datos se consultan, recuperan y almacenan en un esquema de documentos JSON. Elasticsearch es un motor de búsqueda escalable que se puede utilizar para buscar todo tipo de documentos de texto, incluidos los archivos de registro. Elasticsearch es el corazón del 'Elastic Stack' o ELK Stack.

Logstash es una herramienta de código abierto para administrar eventos y registros. Proporciona canalización en tiempo real para la recopilación de datos. Logstash recopilará sus datos de registro, los convertirá en documentos JSON y los almacenará en Elasticsearch.

Kibana es una herramienta de visualización de datos de código abierto para Elasticsearch. Kibana proporciona una bonita interfaz web de tablero. Le permite administrar y visualizar datos de Elasticsearch. No solo es hermoso, sino también poderoso.

En este tutorial, le mostraré cómo instalar y configurar Elastic Stack en un servidor Ubuntu 18.04 para monitorear los registros del servidor. Luego, le mostraré cómo instalar y configurar 'Elastic beats' en Ubuntu 18.04 y un servidor de cliente CentOS 7.

Requisitos

  • 3 servidores
    • Ubuntu 18.04 con 4 GB de RAM/memoria como 'elk-master' - 10.0.15.10
    • Ubuntu 18.04 con 512 MB/1 GB de RAM/memoria como 'elk-client01' - 10.0.15.21
    • CentOS 7.5 con 512 MB/1 GB de RAM/memoria como 'elk-client02' - 10.0.15.22
  • Privilegios de raíz

¿Qué haremos?

  1. Instalar pila elástica
    1. Instalar Java
    2. Instalar y configurar ElasticSearch
    3. Instalar y configurar Kibana
    4. Instalar y configurar Nginx como proxy inverso para Kibana
    5. Instalar y configurar Logstash
  2. Instalar y configurar Filebeat en Ubuntu 18.04
  3. Instalar y configurar Filebeat en CentOS 7.5
  4. Pruebas

Paso 1:instalar Elastic Stack

En este primer paso, instalaremos y configuraremos 'Elastic Stack' en el servidor 'elk-master', así que ejecute todos los comandos y etapas para este paso solo en el servidor 'elk-master'. Instalaremos y configuraremos cada componente de la pila elástica, incluidos Elasticsearch, Logstash Shipper y Kibana Dashboard con el servidor web Nginx.

Instalar Java

Se requiere Java para la implementación de la pila elástica. Elasticsearch requiere Java 8. Se recomienda usar Oracle JDK 1.8 e instalaremos Java 8 desde un repositorio PPA.

Instale los paquetes 'software-properties-common' y 'apt-transport-https', y luego agregue el repositorio de Java PPA 'webupd8team'. Ejecute el comando 'apt install' y 'add-apt-repository' a continuación.

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y

Ahora instale el instalador java8.

sudo apt install oracle-java8-installer -y

Una vez completada la instalación, compruebe la versión de Java.

java -version

Java 1.8 instalado en el sistema.

A continuación, configuraremos el entorno java. Verifique el archivo binario java usando el siguiente comando.

update-alternatives --config java

Y obtendrá el archivo binario de Java en '/usr/lib/jvm/java-8-oracle ' directorio.

Ahora cree el archivo de perfil 'java.sh' en el directorio 'profile.d'.

vim /etc/profile.d/java.sh

Pegue la configuración del entorno Java a continuación.

#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

Guardar y salir.

Haga que el archivo sea ejecutable y cargue el archivo de configuración.

chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Ahora verifique el entorno Java usando el siguiente comando.

echo $JAVA_HOME

Y obtendrá el directorio java que se encuentra en '/usr/lib/jvm/java-8-oracle ' directorio.

Instalar Elasticsearch

Luego de instalar Java, instalaremos el primer componente del Elastic Stack, instalaremos el elasticsearch.

Agregue la clave de pila elástica y agregue el repositorio elástico al sistema.

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

Ahora actualice el repositorio e instale el paquete elasticsearch usando el siguiente comando.

sudo apt update
sudo apt install elasticsearch -y

Una vez completada la instalación, vaya al directorio '/etc/elasticsearch' y edite el archivo de configuración 'elasticsearch.yml'.

cd /etc/elasticsearch/
vim elasticsearch.yml

Elimine el comentario de la línea 'network.host' y cambie el valor a 'localhost', y elimine el comentario de la línea 'http.port' para la configuración del puerto de búsqueda elástica.

network.host: localhost
http.port: 9200

Guardar y salir.

Ahora inicie el servicio de búsqueda elástica y habilítelo para que se inicie cada vez que se inicia el sistema.

systemctl start elasticsearch
systemctl enable elasticsearch

El elasticsearch ahora está en funcionamiento, verifíquelo usando el comando netstat netstat y los comandos curl a continuación.

netstat -plntu
curl -XGET 'localhost:9200/?pretty'

Ahora obtendrá la versión de elasticsearch '6.2.4' que se está ejecutando en el puerto predeterminado '9200'.

La instalación de elasticsearch se ha completado.

Instalar y configurar el panel de control de Kibana

El segundo componente es un panel de kibana. Instalaremos el panel de control de Kibana desde el repositorio elástico y configuraremos el servicio de Kibana para que se ejecute en la dirección del host local.

Instale el panel de control de Kibana usando el comando apt a continuación.

sudo apt install kibana -y

Ahora ve al directorio '/etc/kibana' y edita el archivo de configuración 'kibana.yml'.

cd /etc/kibana/
vim kibana.yml

Quite el comentario de esas líneas 'server.port', 'server.host' y 'elasticsearch.url'.

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

Guardar y salir.

Ahora inicie el servicio kibana y permita que se inicie cada vez que se inicia el sistema.

sudo systemctl enable kibana
sudo systemctl start kibana

El tablero de kibana ahora está en funcionamiento en la dirección 'localhost' y el puerto predeterminado '5601'. Compruébalo usando el comando netstat a continuación.

netstat -plntu

Se ha completado la instalación del panel de control de Kibana.

Instalar y configurar Nginx como proxy inverso para Kibana

En este tutorial, utilizaremos el servidor web Nginx como proxy inverso para el Panel de control de Kibana.

Instale Nginx y los paquetes 'apache2-utils' en el sistema.

sudo apt install nginx apache2-utils -y

Una vez completada la instalación, vaya al directorio de configuración '/etc/nginx' y cree un nuevo archivo de host virtual llamado 'kibana'.

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

Pegue la configuración del host virtual de Nginx a continuación.

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    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;
    }
}

Guardar y salir.

A continuación, crearemos un nuevo servidor web de autenticación básica para acceder al panel de control de Kibana. Crearemos la autenticación básica usando el comando htpasswd como se muestra a continuación.

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

Active el host virtual de kibana y pruebe toda la configuración de nginx.

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

Asegúrese de que no haya ningún error, ahora inicie el servicio Nginx y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl enable nginx
systemctl restart nginx

Se ha completado la instalación y configuración de Nginx como proxy inverso para el panel de control de Kibana.

Instalar y configurar Logstash

El último componente del Elastic Stack para esta guía es el 'Logstash'. Instalaremos y configuraremos Logsatash para centralizar los registros del servidor de las fuentes del cliente con filebeat, luego filtraremos y transformaremos todos los datos (Syslog) y los transportaremos al almacenamiento (Elasticsearch).

Antes de instalar logstash, asegúrese de comprobar la versión OpenSSL de su servidor.

openssl version -a

Para esta guía, utilizaremos OpenSSL '1.0.2o'. Si aún usa la versión 1.1.2 de OpenSSL, recibirá un error en la conexión SSL logstash y filebeat.

Instale logstash usando el comando apt a continuación.

sudo apt install logstash -y

Una vez completada la instalación, generaremos la clave del certificado SSL para asegurar la transferencia de datos de registro desde el cliente filebeat al servidor logstash.

Edite el archivo '/etc/hosts' usando vim.

vim /etc/hosts

Agregue la configuración a continuación.

10.0.15.10  elk-master  elk-master

Guardar y salir.

Ahora cree un nuevo directorio SSL en el directorio de configuración de logstash '/etc/logstash' y vaya a ese directorio.

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

Genere el certificado SSL para Logstash usando el comando openssl 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

Los archivos de certificado SSL para Logstash se crearon en el directorio '/etc/logstash/ssl'.

A continuación, crearemos 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 luego un archivo 'output-elasticsearch.conf' para definir la salida de Elasticsearch.

Vaya al directorio de configuración de logstash y cree los nuevos archivos de configuración 'filebeat-input.conf' en el directorio 'conf.d'.

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

Pegue la siguiente configuración allí.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Guardar y salir.

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 siguiente configuración allí.

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.

Y para la salida de elasticsearch, crearemos el archivo de configuración llamado 'output-elasticsearch.conf'.

vim conf.d/output-elasticsearch.conf

Pegue la siguiente configuración allí.

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

Guardar y salir.

Cuando haya terminado, inicie el servicio logstash y habilítelo para que se inicie cada vez que se inicie el sistema.

sudo systemctl enable logstash
sudo systemctl start logstash

Verifique el servicio logstash usando los comandos netstat y systemctl a continuación.

netstat -plntu
systemctl status logstash

Y el servicio logstash ahora está en funcionamiento. Ejecutándose en la dirección IP pública con el puerto '5443'.

La instalación de Elastic Stack se ha completado.

Paso 2:instalar y configurar Filebeat en Ubuntu 18.04

En este paso, configuraremos el cliente de Ubuntu 18.04 'elk-client01' mediante la instalación de los cargadores de datos de Elastic Beats 'Filebeat' en él.

Antes de instalar Filebeat en el sistema, debemos editar '/etc/hosts' y descargar el archivo de certificado logstash 'logstash-forwarder.crt' al servidor 'elk-client01'.

Edite el archivo '/etc/hosts' usando el editor vim.

vim /etc/hosts

Pegue la siguiente configuración allí.

10.0.15.10  elk-master  elk-master

Guardar y salir.

Copie el archivo de certificado logstash 'logstash-forwarder.crt' usando el comando scp.

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

A continuación, instale el 'Filebeat' de Elastic Beats agregando la clave elástica y agregue el repositorio elástico.

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

Actualice el repositorio e instale el paquete 'filebeat' usando el comando apt a continuación.

sudo apt update
sudo apt install filebeat -y

Una vez completada la instalación, vaya al directorio '/etc/filebeat' y edite el archivo de configuración 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Ahora habilite los prospectores de Filebeat cambiando el valor de línea 'habilitado' a 'verdadero'.

  enabled: true

Defina los archivos de registro del sistema que se enviarán al servidor logstash. Para esta guía, agregaremos el archivo de registro ssh 'auth.log' y el archivo syslog.

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

Configure la salida en logstash comentando la salida predeterminada de 'elasticsearch' y elimine el comentario de la línea de salida de logstash como se muestra a continuación.

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

Guardar y salir.

A continuación, debemos editar el archivo 'filebeat.reference.yml' para habilitar los módulos filebeat y habilitaremos el módulo 'syslog'.

vim filebeat.reference.yml

Habilite el módulo del sistema syslog para filebeat como se muestra a continuación.

- module: system
  # Syslog
  syslog:
    enabled: true

Guardar y salir.

Copie el archivo de certificado de logstash 'logstash-forwarder.crt' en el directorio '/etc/filebeat'.

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

La instalación y configuración de Filebeat se han completado. Ahora inicie el servicio Filebeat y permita que se inicie cada vez que se inicie el sistema.

systemctl start filebeat
systemctl enable filebeat

Verifique el servicio de filebeat usando los comandos a continuación.

systemctl status filebeat
tail -f /var/log/filebeat/filebeat

Los cargadores de filebeat están funcionando bajo el servidor Ubuntu 18.04.

Paso 3:instalar y configurar Filebeat en CentOS 7.5

En este paso, configuraremos el cliente de CentOS 7.5 'elk-client02' mediante la instalación de los cargadores de datos de Elastic Beats 'Filebeat' en él.

Antes de instalar Filebeat en el sistema, debemos editar '/etc/hosts' y descargar el archivo de certificado logstash 'logstash-forwarder.crt' al servidor 'elk-client02'.

Edite el archivo '/etc/hosts' usando vim.

vim /etc/hosts

Pegue la configuración a continuación.

10.0.15.10  elk-master  elk-master

Guardar y salir.

Copie el archivo de certificado logstash 'logstash-forwarder.crt' usando el comando scp.

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

A continuación, instale el 'Filebeat' de Elastic Beats agregando la clave elástica y agregue el repositorio elástico.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <<EOF > /etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Instale filebeat usando el comando yum a continuación.

yum install filebeat -y

Una vez completada la instalación, vaya al directorio '/etc/filebeat' y edite el archivo de configuración 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Ahora habilite los prospectores de Filebeat cambiando el valor de línea 'habilitado' a 'verdadero'.

  enabled: true

Defina los archivos de registro del sistema que se enviarán al servidor logstash. Para esta guía, agregaremos el archivo de registro ssh 'auth.log' y el archivo syslog.

  paths:
    - /var/log/secure
    - /var/log/messages

Configure la salida en logstash comentando la salida predeterminada de 'elasticsearch' y elimine el comentario de la línea de salida de logstash como se muestra a continuación.

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

Guardar y salir.

A continuación, debemos editar el archivo 'filebeat.reference.yml' para habilitar los módulos filebeat y habilitaremos el módulo 'syslog'.

vim filebeat.reference.yml

Habilite el módulo del sistema syslog para filebeat como se muestra a continuación.

- module: system
  # Syslog
  syslog:
    enabled: true

Guardar y salir.

Copie el archivo de certificado de logstash 'logstash-forwarder.crt' en el directorio '/etc/filebeat'.

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

La instalación y configuración de Filebeat se han completado. Ahora inicie el servicio filebeat y agréguelo al tiempo de arranque.

systemctl start filebeat
systemctl enable filebeat

Verifique el servicio de filebeat usando los comandos a continuación.

systemctl status filebeat
tail -f /var/log/filebeat/filebeat

Los cargadores de filebeat están funcionando bajo el servidor CentOS 7.5.

Paso 4 - Prueba

Abra su navegador web y escriba el nombre de dominio de pila elástica, el mío es:'elastic-stack.io'.

Se le solicitará el nombre de usuario y la contraseña de la autenticación básica en el Panel de control de Kibana.

Escriba el nombre de usuario 'elástico' con su contraseña.

Ahora obtendrá el hermoso panel de kibana, haga clic en el botón 'Configurar patrones de índice' a la derecha.

Defina el patrón de índice 'filebeat-*' y haga clic en el botón 'Siguiente paso'.

Para el 'nombre del campo de filtro de tiempo', elija '@timestamp' y haga clic en 'Crear patrón de índice'.

Y se ha creado el patrón de índice de filebeat.

A continuación, intentaremos obtener la información de registro para el inicio de sesión SSH fallido en cada servidor cliente 'elk-client01' sistema Ubuntu y 'elk-client02' sistema CentOS.

Dentro del Panel de control de Kibana, haga clic en el menú 'Descubrir' para obtener todos los registros del servidor.

Establezca 'beat.hostname' en el servidor 'elk-client01', la 'fuente' es el archivo '/var/log/auth.log' y obtendrá el resultado como se muestra a continuación.

Y a continuación se encuentran los detalles de registro de muestra para la contraseña fallida de SSH del archivo 'auth.log'.

Para el servidor CentOS 'elk-client02', establezca 'beat.hostname' en el servidor 'elk-client02', la 'fuente' es el archivo '/var/log/secure' y obtendrá el resultado como se muestra a continuación.

Y a continuación se encuentran los detalles de registro de muestra para la contraseña fallida de SSH del archivo 'seguro'.

La instalación y configuración de Elastic Stack y Elastic Beat 'Filebeat' se han completado con éxito.


Ubuntu
  1. Cómo instalar Java en Ubuntu

  2. Cómo instalar Java en Ubuntu 18.04

  3. Cómo instalar Java 17 en Ubuntu 20.04

  4. Cómo instalar Apache Hadoop en Ubuntu 16.04 LTS

  5. Cómo instalar Java 17 LTS en Ubuntu 20.04

Cómo instalar Cassandra en Ubuntu 16.04 LTS

Cómo instalar Eclipse IDE en Ubuntu 16.04 LTS

Cómo instalar Oracle Java en Ubuntu 18.04 LTS

Cómo instalar Go en Ubuntu 18.04 LTS

Cómo instalar Go en Ubuntu 20.04 LTS

Cómo instalar Java en Ubuntu 22.04