Búsqueda de sitios web

Tutorial de ELK Stack: comience con Elasticsearch, Logstash, Kibana y Beats


ELK Stack es una de las mejores herramientas para ver y manejar archivos en ELK Stack o Elastic Stack. Esta herramienta consta de E- Elasticsearch, L- Logstash y K- Kibana, las tres herramientas de código abierto.

Las herramientas ELK Stack se utilizan para procesar y analizar grandes cantidades de datos en tiempo real. Sin embargo, Beats es una plataforma abierta e independiente para remitentes de datos con un solo propósito. Envía datos desde cientos o miles de sistemas y máquinas a Elasticsearch o Logstash.

ELK Stack se utiliza ampliamente en diversas industrias, como la atención médica, las finanzas y la TI, para la resolución de problemas, el monitoreo y el análisis de registros. Entonces, este blog extenso le brindará los detalles completos sobre ELK Stack y los métodos para configurarlo en Linux.

Tutorial de pila ELK: Elasticsearch, Logstash, Kibana y Beats

Como mencionamos anteriormente, ELK Stack es la combinación de diferentes herramientas, así que analicémoslas una por una para tener una breve idea sobre ellas:

  • Elasticsearch: Elasticsearch es una base de datos con capacidad de búsqueda para archivos de registro, que permite una recuperación de datos rápida y eficiente. Principalmente esta herramienta se utiliza para indexar y almacenar datos. Se utiliza como una base de datos escalable y con capacidad de búsqueda para almacenar datos.

  • Logstash: Logstash actúa como una canalización de procesamiento de datos para leer, recopilar, transformar y analizar datos de varias fuentes y luego enviarlos a ElasticSearch. Esta herramienta recopila registros y otros datos de diversas fuentes, incluidas aplicaciones, servidores y dispositivos.

  • Kibana: Kibana utiliza una interfaz de navegador web para organizar y mostrar datos. Esta herramienta es altamente configurable para que los usuarios puedan ajustarla en consecuencia. Al mismo tiempo, le permite crear informes y paneles interactivos para analizar los datos almacenados en ElasticSearch.

    Es una herramienta de visualización que ofrece una interfaz de usuario fácil de usar para revisar los datos del usuario. Esta característica facilita a los usuarios la exploración y visualización de datos.

  • Beta: Beats son transportadores de datos livianos o pequeñas aplicaciones de recopilación de datos específicas para tareas individuales. Se utilizan diferentes aplicaciones Beats para diversos fines, como acceder a otras partes del servidor, leer archivos y enviarlos. Por ejemplo, Packetbeat analiza el tráfico de red y Filebeat se utiliza para recopilar archivos de registro.

Nota − Algunos usuarios usan Logstash directamente omitiendo los ritmos por completo. Al mismo tiempo, algunos conectan los Beats directamente a Elasticsearch.

Características de la pila ELK

  • Documento JSON replicado, almacén fragmentado y con capacidad de búsqueda.

  • Búsqueda NRT (casi en tiempo real).

  • Búsqueda de texto completo

  • Geolocalización y soporte multilingüe.

  • Tiene interfaz web REST API con salida JSON

¿Cómo instalar la pila ELK?

Puede instalar ELK localmente en Docker, Cloud y sistemas de gestión de configuración como Chef, Puppet y Ansible. Puede descargar la herramienta según la distribución de Linux que esté utilizando en su dispositivo.

Requisitos previos para instalar ELK Stack

Usemos Ubuntu para mostrar la forma de instalar la pila ELK:

Paso 1: actualice los repositorios

Primero, actualice el sistema según las últimas actualizaciones disponibles:

sudo apt update

Paso 2: Instale Java (requerido para Elasticsearch y Logstash)

La instalación de Logstash requiere Java 8 o Java 11 en los sistemas. Por lo tanto, instálelo primero mediante el siguiente comando:

sudo apt install default-jre

Paso 3: instale Nginx

Se debe acceder públicamente a Kibana y nginx está configurado como un proxy inverso. Entonces ejecute el siguiente comando para instalar nginx:

sudo apt install nginx -y

Para comprobar si nginx está instalado, vaya al navegador y escriba su servidor IP local. Si nginx se instaló correctamente, verá el mismo resultado que la siguiente imagen.

Una vez que haya terminado, es hora de configurar todos los componentes de apt. Además, también puedes descargar estos componentes directamente desde el sitio web oficial. Aquí veremos cómo instalar todos los componentes de la pila ELK por separado en Ubuntu 22.04.

Cómo instalar Elasticsearch

Paso 1: agregar la clave Elasticsearch

Para instalar Elasticsearch, primero agregue la clave de firma de Elasticsearch con la ayuda del siguiente comando:

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

Nota − Si ya ha instalado los paquetes anteriores, puede omitir el paso anterior.

Ahora instale el paquete transport-https mediante el siguiente comando:

sudo apt-get update && sudo apt-get install apt-transport-https

A continuación, ejecute el siguiente comando en la terminal para agregar la definición del repositorio a su sistema:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Utilice el siguiente comando para instalar la versión de Elasticsearch con funciones con licencia Apache 2.0:

echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Paso 2: instale Elasticsearch

Ahora, actualice los repositorios del sistema y luego instale Elasticsearch:

sudo apt-get update && sudo apt-get install elasticsearch

Paso 3: configurar Elasticsearch

Ahora configuremos el sistema después de instalar Elasticsearch. Su archivo de configuración le permite configurar ajustes de red como puerto y host, donde se incluyen detalles como archivos de registro y memoria. Agregue su dirección IP privada con el siguiente comando para abrir el archivo de configuración de Elasticsearch:

sudo nano /etc/elasticsearch/elasticsearch.yml

Nota − Puede elegir cualquier editor para abrir el archivo de configuración anterior.

Descomente las dos líneas marcadas arriba en el archivo de configuración y agregue su host local en 192.168.0.1.

network host: <local host name>

Mientras configura un clúster de un solo nodo aquí, vaya a la 'Sección Descubrimiento' y agregue la siguiente línea.

discovery .type: single-node

El tamaño del montón de JVM está establecido en 1 GB de forma predeterminada. No debe establecer el tamaño del montón en no más de la mitad de su memoria total. Abra el siguiente archivo para configurar el tamaño del montón usando el siguiente comando:

sudo nano /etc/elasticsearch/jvm.options

Por lo tanto, busque las líneas que comienzan con -Xms (mínimo) y -Xmx (máximo) y establezca su tamaño en 512 MB.

-xms512m
-xms512m

Paso 4: Ejecute Elasticsearch

Después de completar toda la configuración en el archivo de configuración de Elasticsearch, inicie y habilite el servicio Elasticsearch usando el siguiente comando systemctl:

sudo systemctl start elasticsearch 
sudo systemctl enable elasticsearch

Después de eso, verifique el estado de Elasticsearch:

sudo systemctl status elasticsearch

Paso 5: verificar el Elasticsearch instalado

Si desea verificar Elasticsearch, ejecute el siguiente comando:

http://localhost:9200

Además, también puedes confirmar esto con la ayuda del siguiente comando curl en la terminal.

Curl -X GET "localhost:9200"

Si su resultado es el mismo que el de la imagen de arriba, muestra que Elasticsearch funciona correctamente.

¿Cómo instalar Kibana?

Paso 1: instalar Kibana

También puede instalar Kibana a través del repositorio mediante el siguiente comando:

sudo apt install kibana

Paso 2: configurar Kibana

Ejecute el siguiente comando para abrir el archivo de configuración de Kibana.

sudo nano /etc/kibana/kibana.yml

Elimine el signo '#' de las líneas marcadas a continuación para descomentar las siguientes líneas:

server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"] 

Un bloque de servidor en Nginx enrutará todo el tráfico en localhost. Para esto, debe crear un nuevo sitio en el siguiente directorio.

sudo nano /etc/nginx/sites-available/file.com

Por ejemplo, nombraremos el archivo 'file.com' y copiaremos las siguientes líneas en él:

server { 
listen 80; 
server_name file.com; 

auth_basic "Restricted Access"; 
auth_basic_user_file /etc/nginx/htpasswd.users; 
location / { 
   proxy_pass http://localhost:5601; 
   proxy_http_version 1.1; 
   proxy_set_header Upgrade $http_upgrade; 
   prxy_set_header Connection 'upgrade'; 
   proxy_set_header Host $host;  
   proxy_cache_bypass $http_upgrade; 
}

El servidor anterior redirigirá todo el tráfico entrante a localhost:5601 solo en el puerto 80, donde Kibana está escuchando. Además de esto, también autentica todas las solicitudes en la lista de usuarios de Nginx.

Cree el enlace simbólico usando el siguiente comando para habilitar el sitio recién creado.

sudo ln -s /etc/nginx/sites-available/file.com /etc/nginx/sites-enabled/file.com

A continuación, verifique el archivo de configuración para cualquier configuración o sintaxis usando el siguiente comando:

sudo nginx -t

Un sitio predeterminado se encuentra en el directorio habilitado para sitios de Nginx y el sistema puede cargarlo de forma predeterminada. Vaya al directorio de configuración de Nginx e incluya el archivo recién creado 'file.com'.

nano /etc/nginx/nginx.conf

Finalmente, reinicie el servicio Nginx guardando el archivo de configuración.

Paso 3: iniciar y habilitar Kibana

Inicie y habilite Kibana usando el simple comando systemctl.

sudo systemctl start kibana
sudo systemctl enable kibana

Para verificar si Kibana se está ejecutando, puede verificar su estado con el siguiente comando:

sudo systemctl status kibana

Ahora puede abrir Kibana en su navegador con http://localhost:5601.

Nota − Si el firewall UFW está habilitado, debe permitir el tráfico en el puerto 5601 para acceder al panel de Kibana.

sudo ufw allow 5601/tcp

Instalación de Logstash

Paso 1: instale Logstash

Es el componente altamente personalizable de la pila ELK. Puede instalar Logstash directamente desde el repositorio con la ayuda del siguiente comando:

sudo apt install logstash

Paso 2: configurar Logstash

Los archivos de configuración de este componente se encuentran en /etc/logstash/conf.d/. Puede configurar su salida, filtros y canalizaciones de entrada según sus requisitos. Todos los archivos de configuración personalizados de Logstash se almacenan en /etc/logstash/conf.d/.

Paso 3: iniciar y habilitar Logstash

Para iniciar y habilitar logstash, ejecute el siguiente comando.

sudo systemctl start logstsash

Puede verificar el estado de Logstash, ya sea que esté activo o no, usando el siguiente comando:

sudo systemctl status logstsash

Instalación de ritmos

Como la mayoría de los demás componentes, muchos de los envíos de Beat se pueden instalar de manera similar. Así que echemos un vistazo a la forma de instalar Metricbeat.

Metricbeat envía métricas a nivel del sistema como memoria, uso de CPU, etc. Aquí enviaremos datos directamente a Elasticsearch.

Paso 1: Instale Metricbeat

Primero, instalaremos Metricbeat en el servidor usando el simple comando apt:

sudo apt install metricbeat

Paso 2: Configurar el Metricbeat

Abra el archivo Metricbeat.yml en cualquier editor que desee y busque Kibana. Después de eso, descomente el host local eliminando el símbolo '#'.

sudo /etc/metricbeat/metricbeat.yml
host: "localhost:5601"

De manera similar, descomente Elasticsearch, donde será un host local. Además, realizaremos la configuración manteniendo el resto de ajustes por defecto.

host: ["localhost:9200"]

Verifique la configuración anterior ejecutando el siguiente comando.

sudo metribeat test output  

Como no hay ningún error en el resultado anterior, Kibana y Elasticsearch se comunican correctamente con Metricbeat. Si el módulo de su sistema no está habilitado, puede habilitarlo con la ayuda del siguiente comando:

sudo metricbeat modules enable <module_name>

Para ver los archivos de configuración de cada módulo, vaya al directorio de instalación de metricbeat. Todos sus archivos de configuración están presentes en este directorio module.d. Por ejemplo, para abrir el módulo system.yml, use el siguiente comando:

sudo nano /etc/metricbeat/modules.d/system.yml

Puede realizar cambios en el archivo de configuración anterior, pero aquí mantendremos todas las configuraciones predeterminadas. Kibana utiliza varios paneles para visualizar los datos. Estos son el panel predeterminado para cada panel. Utilice el siguiente comando para configurar el panel de Metricbeat predeterminado utilizando el siguiente comando:

sudo metricbeat setup

Paso 3: inicie y habilite Metricbeat

Inicie Metricbeat usando el siguiente comando:

sudo systemctl start metricbeat

Consulta el estado actual de Metricbeat.

sudo systemctl status metricbeat

Ahora, Metricbeat comienza a monitorear el servidor y crea un índice de Elasticsearch que también puedes definir en Kibana.

Pros y contras de la pila ELK

El Elastic Stack tiene ciertos beneficios e inconvenientes.

Free to get started

Requisitos de gestión complejos</p>

Official Clients in Multiple Programming Languages

Desafíos de escala</p>

Real-Time Data Analysis & Visualization

Compensaciones sobre la retención de datos</p>

Centralized Logging Capabilities

Problemas de estabilidad y tiempo de actividad</p>

Multiple Hosting Options

Alto coste de propiedad</p>

Usos de la pila ELK

El monitoreo de registros en tiempo real proporciona la cantidad de casos de uso creativos de Elastic Stack de varios recursos de la siguiente manera:

  • Detección de errores en una nueva aplicación: al crear una nueva aplicación, ELK Stack le informa sobre sus errores. Con esto, podrás corregir los errores y fallos lo antes posible y mejorar el diseño de tu aplicación.

  • Monitoreo de tráfico: ayuda a monitorear los datos de tráfico del sitio web y brinda información sobre si su servidor está sobrecargado. Es decir, ELK Stack genera datos con la ayuda de los cuales los usuarios pueden tomar decisiones comerciales acertadas y resolver problemas.

  • Web scraping: ELK Stack puede buscar, indexar y recopilar datos no estructurados de diversas fuentes, lo que simplifica la visualización y recopilación de información obtenida de la web.

  • Soluciones de comercio electrónico: respuestas más rápidas, agregación, indexación y búsqueda de texto completo brindan una mejor experiencia de usuario. Monitorear visualmente los comportamientos de búsqueda y las tendencias de Elasticsearch ayuda a mejorar el análisis de tendencias.

  • Monitoreo de seguridad: el sistema de monitoreo del servidor es una de las aplicaciones de seguridad importantes de la pila ELK. Ayuda a detectar ataques al servidor con un sistema de alerta en tiempo real, comprobando solicitudes inusuales tan pronto como se detectan y minimizando el daño causado por ellas.

Terminando

En este extenso blog, hemos explicado breves detalles sobre ELK Stack. Como mencionamos anteriormente, ELK Stack es una herramienta de código abierto, lo que significa que puedes obtenerla sin pagar nada. Además, hemos descrito el enfoque detallado para configurar ELK Stack, incluidas todas sus herramientas relacionadas.

Artículos relacionados: