Introducción
El mantenimiento de los registros de los servidores web es fundamental para que tu sitio web funcione sin problemas, resolver dificultades y comprender el comportamiento de los usuarios. Si estás utilizando Nginx, genera registros de acceso y errores llenos de información valiosa. Para administrar y analizar estos registros, puedes utilizar Logstash para procesar y reenviarlos, y DigitalOcean OpenSearch para indexar y visualizar la información.
En este tutorial, nos guiará a través de la instalación de Logstash en una Droplet, configurándola para recolectar tus registros de Nginx y enviándolos a DigitalOcean OpenSearch.
Prerrequisitos
-
Un cuenta de Cloud de DigitalOcean y una Droplet de Ubuntu en ejecución.
-
Nginx debería estar configurado, y se deberían generar logs en tu Droplet. Para instalar nginx en un Droplet, consulte este tutorial sobre Cómo instalar Ngnix en Ubuntu.
-
El clúster OpenSearch debería estar ejecutándose y deberías tener acceso a él. Visite Cómo crear clústeres OpenSearch para obtener más detalles.
-
Familiaridad con Nginx, Logstash, y OpenSearch es beneficioso.
Caso de Uso
Puede que necesite esta configuración si quiere:
- Monitorear y resolver problemas: Rastrear el rendimiento y los errores del servidor web analizando los registros en tiempo real.
- Analizar el rendimiento: Obtener insumos sobre los patrones de tráfico web y las métricas del servidor.
- Centralizar los registros: Agrupar los registros de varios servidores Nginx en una sola instancia de OpenSearch para un manejo más fácil.
Nota: El tiempo de configuración debería ser de alrededor de 30 minutos.
Paso 1 – Instalar Logstash en los Droplet
Logstash se puede instalar utilizando archivos binarios disponibles aquí o repositorios de paquetes personalizados para tu sistema operativo. Para un manejo y actualizaciones más fáciles, generalmente se recomienda utilizar repositorios de paquetes. Puedes usar el gestor de paquetes APT en sistemas basados en Debian, como Ubuntu, mientras que en sistemas basados en Red Hat, como CentOS o RHEL, puedes usar yum
. ambos métodos aseguran que Logstash se integre correctamente en la infraestructura de gestión de paquetes de tu sistema, simplificando la instalación y el mantenimiento.
En esta sección, nos guiará a través de la instalación de Logstash utilizando tanto el gestor de paquetes apt
como yum
, asegurándonos de que puedas configurar Logstash en tu Droplet sin importar tu distribución de Linux.
Para encontrar el Sistema Operativo, ejecute el siguiente comando:
Para Sistemas Basados en APT (Ubuntu/Debian)
1.Descargue y instale la Clave de Firma Pública:
2.Instale apt-transport-https si todavía no está instalado:
3.Agregue y guarde la definición del repositorio de Logstash en su lista de fuentes apt
:
Nota: Asegúrese de no utilizar los comandos add-apt-repository
ya que pueden agregar una entrada deb-src
que no es compatible. Si encuentra un error relacionado con una entrada deb-src
, elimínela del archivo /etc/apt/sources.list
. Si ha agregado la entrada deb-src
, verá un error similar al siguiente:
Si simplemente elimina la entrada deb-src
del archivo /etc/apt/sources.list
, la instalación应该 funcione como esperado.
4. Actualice el índice de paquetes para incluir el nuevo repositorio:
5. Instale Logstash usando el gestor de paquetes apt
:
6. Inicie Logstash y active automáticamente en arranque:
Ahora Logstash está instalado y corriendo en su sistema.
Para Sistemas Basados en YUM (CentOS/RHEL)
1. Descargue e instale la clave de firma pública para el repositorio de Logstash:
2. Cree un archivo de repositorio para Logstash en /etc/yum.repos.d/
. Por ejemplo, cree un archivo llamado logstash.repo
. Puede copiar y pegar el contenido de abajo para crear el archivo y actualizar su contenido:
El repositorio está listo para usar.
3. Instale Logstash usando el gestor de paquetes YUM:
4. Inicie Logstash y active para arrancar automáticamente:
Logstash ya está instalado y ejecutándose en su sistema.
Paso 2 – Instalar el complemento de salida de Open Search
Puede instalar el complemento de salida de OpenSearch ejecutando el siguiente comando:
Puede encontrar más información sobre el complemento en este repositorio de complementos logstash-output-opensearch.
Paso 3 – Configurar Logstash para enviar los registros de Nginx a OpenSearch
Un pipeline de Logstash consta de tres etapas principales: entrada, filtro y salida. Los pipelines de Logstash utilizan plugins. Puede utilizar plugins de la comunidad o crear sus propios.
- Entrada: Esta etapa recoge datos de varias fuentes. Logstash admite varios plugins de entrada para manejar fuentes de datos como archivos de registros, bases de datos, colas de mensajes y servicios en la nube.
- Filtro: Esta etapa procesa y transforma los datos recogidos en la etapa de entrada. Los filtros pueden modificar, enriquecer y estructurar los datos para hacerlos más útiles y facilitar su análisis.
- Salida: En esta etapa se envían los datos procesados a un destino. Los destinos pueden incluir bases de datos, archivos y almacenes de datos como OpenSearch.
Ahora vamos a crear un pipeline.
1.Cree un archivo de configuración de Logstash en /etc/logstash/conf.d/nginx-to-opensearch.conf
con el siguiente contenido:
Reemplace:
OpenSearch-Hostname
por el hostname del servidor OpenSearch.<your_password>
con su contraseña de OpenSearch.
2.Aplique la nueva configuración reiniciando Logstash:
3.Revise los registros de Logstash para asegurarse de que está procesando y reenviando los datos correctamente:
Resumen de la configuración de nginx-to-opensearch.conf
ENTRADA
El bloque input
configura dos entradas de archivo para leer registros:
Registros de Nginx:
Rutas:
/var/log/nginx/access.log
(para registros de acceso)
/var/log/nginx/error.log
(para registros de error)
Posición de Inicio: beginning
– Lee desde el principio de los archivos de registro.
Ruta de Sincedb: /dev/null
– Deshabilita el seguimiento para la lectura continua.
Etiquetas:
["nginx_access"]
para registros de acceso
["nginx_error"]
para registros de error.
Nota: Asegúrese de que el servicio de Logstash tenga acceso a las rutas de entrada.
FILTRAR
El bloque filter
procesa los registros de acceso según sus etiquetas:
Procesamiento de Registros:
Registros de Acceso:
Utiliza un filtro grok
para parsear el formato de los registros de acceso, extraendo campos como client_ip
, timestamp
, method
, request
, http_version
, response
, bytes
, referrer
y user_agent
.
Elimina la message
original y ciertos campos de metadatos.
Registros de Error:
Busca la etiqueta nginx_error
y aplica un filtro grok
para extraer campos como timestamp
, level
, pid
, tid
y error_message
.
También elimina los campos message
y de metadatos.
SALIDA
El bloque output
dirige eventos a OpenSearch según sus etiquetas:
Enrutamiento a OpenSearch:
Para ambos registros de acceso y de error, especifica:
Hosts: URL de la instancia de OpenSearch.
Usuario: doadmin
para la autenticación.
Contraseña: Su contraseña de OpenSearch.
Índice:
nginx_access-%{+YYYY.MM.dd}
para los registros de acceso
nginx_error-%{+YYYY.MM.dd}
para los registros de error
Configuración de SSL: Habilita SSL y la verificación del certificado.
Paso 4 – Configurar OpenSearch
1.Abre su navegador web y vaya a la URL de la tabla de OpenSearch:
Reemplaza OpenSearch-Hostname
con el nombre de host del servidor OpenSearch.
2.Cree un patrón de índice.
a. En el panel izquierdo, vaya a Gestión > Gestión de tableros > Patrones de índice.
b. Haga clic en Crear patrón de índice en la parte superior derecha.
c. Introduzca nginx_access-*
o nginx_error-*
como el patrón de índice para coincidir con todos los índices creados por Logstash y haga clic en Siguiente paso.
d. Haga clic en Crear patrón de índice.
3.Asegúrese de que el patrón de índice se haya creado correctamente y esté visible en la lista de patrones de índice.
4.En el panel izquierdo, vaya a Descubrir y seleccione el patrón de índice que ha creado (nginx_access-*
o nginx_error-*
). Verifique que las entradas de registro estén visibles y indexadas correctamente.
5.Cree visualizaciones y tableros. Consulte Cómo crear un tablero en OpenSearch para obtener más detalles.
Solución de problemas
Comprobar Conexión
Puede verificar que Logstash puede conectarse a OpenSearch probando la conexión:
Reemplace:
OpenSearch-Hostname
con el hostname del servidor de OpenSearch.<your_password>
con su contraseña de OpenSearch.
Ingestión de Datos
Puede asegurarse que los datos se indexan correctamente en OpenSearch utilizando el siguiente comando curl:
Reemplace:
OpenSearch-Hostname
con el hostname de su servidor de OpenSearch.<your_password>
con su contraseña de OpenSearch.
Configuración de la Firewall y Red
Asegúrese de que las reglas de la firewall y la configuración de la red permitan el tráfico entre Logstash y OpenSearch en el puerto 25060
.
Conclusión
En este guía, aprendiste a configurar Logstash para recolectar y reenviar los logs de Nginx a OpenSearch.
Revisaste cómo utilizar los gestores de paquetes apt
o yum
, dependiendo de tu distribución de Linux, para poner a Logstash en funcionamiento en tu Droplets. También creaste y ajustaste el archivo de configuración de Logstash para asegurarte de que los logs de Nginx se analizan correctamente y se envían a OpenSearch. A continuación, configuraste un patrón de índice en los Paneles de OpenSearch Dashboards para verificar que los logs están siendo indexados correctamente y son visibles para análisis. Con estos pasos completados, ahora deberías tener una configuración funcional donde Logstash recolecta logs de Nginx y los envía a OpenSearch. Esta configuración te permite utilizar las potentes herramientas de búsqueda y visualización de OpenSearch para analizar los logs de tu servidor.
Si encuentras algún problema, revisa las recetas para la solución de problemas que hemos proporcionado y consulta la documentación de Logstash y la documentación de OpenSearch para más ayuda. El monitoreo periódico mantendrá a tu sistema de registro funcionando smooth y efectivamente.
Source:
https://www.digitalocean.com/community/tutorials/forward-nginx-logs-to-opensearch-using-logstash