Cómo superviso mi servidor web con ELK Stack

En un artículo anterior, presenté Elasticsearch, Logstash y Kibana (la pila ELK) y los diferentes componentes que componen este sistema de monitoreo. En este artículo, veré cómo uso la pila ELK para monitorear mi servidor web Nginx. Requiere alrededor de 16 GB de memoria para funcionar.

Como escribí anteriormente, “Elasticsearch es el motor detrás de Elastic Suite, que proporciona funciones de análisis y búsqueda. Logstash es responsable de recopilar, agregar y almacenar datos para que los utilice Elasticsearch. Kibana proporciona la interfaz de usuario e información sobre los datos recopilados previamente. y analizado por Elasticsearch".

Aquí presentaré los conceptos básicos y las configuraciones sobre cómo uso la pila ELK para monitorear mi servidor web. Tenga en cuenta que estos pasos no son muy detallados; Lo uso para desarrollo y demostración en lugar de producción. Ejecutar ELK en producción implicaría múltiples instancias en un clúster.

Este tutorial usa Elasticsearch y Kibana; Logstash admite muchos módulos de forma predeterminada y puede acceder a esa información.

Índice

Paso 1: implementar Elasticsearch y Kibana

Para facilitar la implementación, creé un tallo de aplicación con Elasticsearch y Kibana usando Podman. Aquí está la vaina y dos contenedores:

podman pod create --name elastic -p 9200:9200 -p 9300:9300 -p 5601:5601
podman run --pod elastic --name elasticsearch -d -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.14.0
podman run --pod elastic --name kibana -d -e "ELASTICSEARCH_HOSTS=http://127.0.0.1:9200" docker.elastic.co/kibana/kibana:7.14.0 

Esto crea un pod llamado elastic y dos contenedores en la vaina:

  1. A elasticsearch contenedor, que ejecuta la imagen docker.elastic.co/elasticsearch/elasticsearch:7.14.0.
  2. A kibana contenedor, que ejecuta la imagen docker.elastic.co/kibana/kibana:7.14.0 y se conecta a elasticsearch contenedor en port 9200.

Si se ejecutan correctamente, se puede acceder al panel de control de Kibana desde el navegador del host. El cortafuegos debe permitir port 5601, que se utiliza para acceder a Kibana, para acceso externo.

Para ejecutar este tutorial en una máquina local, use http://localhost:5601 acceder al panel de control; para ejecutarlo en una máquina virtual (VM), use la dirección IP de la VM. El reenvío de puertos utiliza los mismos pasos que se ejecutan en localhost.

[ Free online course: Developing cloud-native applications with microservices architectures. ]

(Evans Amoany, CC BY-SA 4.0)

Estoy usando esta ruta para acceder a los registros de Nginx desde la página principal:

Home page -> Add data -> Logs -> nginx logs

Paso 2: Configure el módulo Filebeat y Nginx

Según Elástico, "Filebeat supervisa los archivos de registro o las ubicaciones que especifique, recopila eventos de registro y los reenvía a Elasticsearch o Logstash para su indexación. el Página de registros de Nginx explica cómo configurar Filebeat y el módulo Nginx. Esta configuración muestra las entradas de Kibana en el servidor donde está instalado Nginx y envía los registros de Nginx a Elasticsearch:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-x86_64.rpm
rpm -vi filebeat-7.14.0-x86_64.rpm

modifico /etc/filebeat/filebeat.yml para definir la información de conexión:

output.elasticsearch:
  hosts: ["10.233.208.8:9200"] #This is server in where elasticsearch is running 
setup.kibana:
  host: "10.233.208.8:5601" #This is the server where kabana is running 

#check if filebeat file has the correct syntax:
filebeat -e -c /etc/filebeat/filebeat.yml

#Enable the nginx module
filebeat modules enable nginx

#configure filebeat to start and persist reboot:
filebeat setup
systemctl enable filebeat
systemctl start filebeat

Paso 3: crea una plantilla de índice en Elasticsearch

Kibana requiere una plantilla de índice para encontrar los datos procesados ​​por Elasticsearch. Una plantilla de índice identifica los datos a utilizar y los metadatos o propiedades de los datos. Esto es análogo a seleccionar datos específicos de una base de datos.

En la página principal de Kibana, uso esta ruta para crear una plantilla de índice:

Management -> Stack Management -> index patterns -> create index pattern

Entro en el modelo de índice, como filebeat-*. Sugiere opciones y un comodín funciona para coincidir con múltiples fuentes.

Haga clic en Próximo.

Si Kibana detecta un índice con una marca de tiempo, amplío el Hora y especifique el campo predeterminado para filtrar los datos por hora.

[ Learn more about server and configuration management by downloading Ansible for DevOps. ]

Paso 4: Cree un tablero para visualizar los datos

Sigo este camino para mostrar una visualización de datos:

Main Page -> Analytics -> Dashboard -> create visualization

A la izquierda, selecciono el Disponible campos y use la lista desplegable a la derecha para crear un tablero.

Aprende más

Esta opción de implementación basada en contenedores para la pila ELK es particularmente útil en un laboratorio o escenario de aprendizaje. Muchas configuraciones adicionales están disponibles para monitorear servidores.

ELK Stack es una herramienta integral que los administradores de sistemas pueden encontrar útil para el monitoreo y análisis en tiempo real. También se puede integrar con otros sistemas. Si desea ir más allá de esta introducción de estos conceptos y configuraciones básicos y utilizarlos en una implementación de producción, consulte el Documentación.

Artículos de interés

Subir