Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Esta guía proporciona instrucciones completas de configuración para monitorear NGINX autohospedado con OpenTelemetry. Siga estos pasos para configurar su servidor NGINX, el OpenTelemetry Collector y la integración de New Relic.
/* <Callout variant="important"> **Antes de comenzar**: Revise la [descripción general de NGINX OpenTelemetry](/docs/opentelemetry/nginx/nginx-otel-overview/) para comprender qué monitoreará y los beneficios de esta integración. **Otras opciones de monitoreo de NGINX:** - Para monitorear **NGINX Plus**, consulte [Monitorear NGINX Plus con OpenTelemetry](/docs/opentelemetry/nginx-plus/nginx-plus-otel/). - Para monitorear **NGINX en Kubernetes**, consulte [Monitorear NGINX en Kubernetes con OpenTelemetry](/docs/opentelemetry/nginx/nginx-otel-kubernetes/). </Callout> <Callout variant="tip"> **Tiempo de configuración**: aproximadamente 20 minutos | **Nivel de habilidad**: Intermedio (requiere conocimientos básicos de Linux/NGINX) </Callout> */
Salida esperada: Información de la versión (se requiere un mínimo de v0.88.0)
Pruebe la conectividad de red:
bash
$
# For US region
$
curl-I https://otlp.nr-data.net:443
Salida esperada: Encabezados de respuesta HTTP (no conexión rechazada)
Sugerencia
Si algún paso de verificación falla, instale los componentes faltantes antes de continuar. ¿Necesita ayuda para instalar el Collector? Consulte la guía de instalación de OpenTelemetry Collector.
Paso 1: Configure el estado de stub de NGINX
Configure el módulo stub_status para exponer métricas de su servidor NGINX. Este módulo proporciona estadísticas básicas de rendimiento que OpenTelemetry recopilará.
Agregue esta configuración a su archivo de configuración de NGINX (/etc/nginx/nginx.conf):
server{
listen8080;
server_name localhost;
location /nginx_status{
stub_statuson;
access_logoff;# Don't log monitoring requests
allow 127.0.0.1;# Only allow localhost access
allow ::1;# Allow IPv6 localhost
deny all;# Deny all other access
}
}
Pruebe su configuración de NGINX:
bash
$
sudo nginx -t
Si la prueba pasa, recargue NGINX:
bash
$
sudo nginx -s reload
Pruebe el endpoint:
bash
$
curl http://127.0.0.1:8080/nginx_status
Resultado esperado:
Active connections: 1
server accepts handled requests
16 16 16
Reading: 0 Writing: 1 Waiting: 0
Probar la respuesta HTTP:
bash
$
curl-I http://127.0.0.1:8080/nginx_status
Salida esperada: Debe comenzar con HTTP/1.1 200 OK
Paso 2: Configura el OpenTelemetry Collector
Configure el OpenTelemetry Collector para extraer métricas de su punto final de estado stub de NGINX y enviarlas a New Relic.
El recopilador de OpenTelemetry utiliza tres componentes principales para la monitorización de NGINX:
Receptores - Conéctese a su punto final de estado de stub de NGINX para recopilar métricas
Procesadores - Agregue la identificación del servidor y las métricas por lotes para una transmisión eficiente
Exportadores - Envíe las métricas procesadas a su cuenta de New Relic a través de OTLP HTTP
Antes de editar la configuración, necesitará dos datos clave:
Su URL de estado de stub - Del Paso 1 (predeterminado: http://127.0.0.1:8080/nginx_status)
Un nombre de implementación único: elija un nombre que identifique este servidor NGINX específico (por ejemplo, production-web-01, staging-api, prod-lb-01)
El nombre de la implementación aparecerá en los dashboards de New Relic y le ayudará a identificar servidores específicos cuando tenga múltiples instancias de NGINX.
Importante
Antes de editar: Respalde su configuración existente: sudo cp /etc/otelcol-contrib/config.yaml /etc/otelcol-contrib/config.yaml.backup
Edite su archivo de configuración del Collector (normalmente /etc/otelcol-contrib/config.yaml) y agregue las siguientes secciones. Si ya tiene secciones de receptores, procesadores o exportadores, combínelas con su configuración existente:
1. Configurar el receptor NGINX:
receivers:
nginx:
endpoint: http://127.0.0.1:8080/nginx_status # Replace with your stub status URL
collection_interval: 30s # How often to collect metrics
metrics:
nginx.requests:
enabled:true
nginx.connections_accepted:
enabled:true
nginx.connections_handled:
enabled:true
nginx.connections_current:
enabled:true
2. Configure los procesadores para metadatos y agrupación por lotes:
processors:
# Detect system information (hostname, etc.)
resourcedetection:
detectors:[system]
system:
resource_attributes:
host.name:
enabled:true
host.id:
enabled:true
# Add NGINX-specific identification
resource:
attributes:
-key: nginx.server.endpoint
value:"http://127.0.0.1:8080/nginx_status"# Replace with your endpoint
action: upsert
-key: nginx.deployment.name
value:"production-web-01"# Replace with your server name
action: upsert
# Batch metrics for efficient sending
batch:
timeout: 30s
send_batch_size:1024
# Transform metrics for better display in New Relic
transform/nginx_metrics:
metric_statements:
-context: resource
statements:
# Customize the display name as needed for your New Relic dashboard
Reemplace estos valores en la configuración anterior:
URL del endpoint: Cambie http://127.0.0.1:8080/nginx_status para que coincida con su configuración de estado de stub del Paso 1
Nombre de implementación: Reemplace production-web-01 con un identificador único para este servidor NGINX
Elegir un buen nombre de implementación:
Use nombres descriptivos como production-web-01, staging-api, o prod-lb-01
Debe ser único en todos los servidores NGINX dentro de su cuenta de New Relic
Este nombre aparecerá en los dashboards y le ayudará a identificar servidores específicos
Sea breve pero significativo para facilitar el filtrado y las alertas
Paso 3: Configurar la autenticación
Configure la autenticación segura para que el OpenTelemetry Collector pueda enviar datos a su cuenta de New Relic. Este paso configura variables de entorno para mantener seguras sus credenciales.
Antes de configurar la autenticación, recopile estas dos piezas de información:
Busque la sección "Ingest - License" → Haga clic en Show key
Copie la clave de licencia (comienza con "NRAK-...")
** Su punto final OTLP:** Use el punto final apropiado para su región de New Relic. Consulte Configurar el punto final, el puerto y el protocolo para obtener la lista completa de puntos finales y puertos admitidos para su región. Por ejemplo:
Región de EE. UU.: https://otlp.nr-data.net:4318
Región de la UE: https://otlp.eu01.nr-data.net:4318
Reemplace https://otlp.nr-data.net:4318 con el punto final de su región
Reemplace YOUR_LICENSE_KEY_HERE con su clave de licencia real de arriba
Paso 4: Iniciar la monitorización
Ahora que todo está configurado, inicie el recopilador de OpenTelemetry y verifique que los datos fluyan a New Relic.
Aplique los cambios de configuración:
bash
$
sudo systemctl daemon-reload
$
sudo systemctl restart otelcol-contrib.service
Verifique que el servicio se esté ejecutando:
bash
$
sudo systemctl status otelcol-contrib.service
Salida esperada: Active: active (running) sin errores recientes
Verifique los logs de inicio:
bash
$
sudo journalctl -u otelcol-contrib.service -n20
Busque estos indicadores de éxito:
✅ "Everything is ready. Begin running and processing data."
✅ "Scraping metrics" - Recopilación exitosa de NGINX
✅ "Exporting metrics" - Enviando correctamente a New Relic
Generar tráfico de prueba (para crear métricas):
bash
$
# Make a few requests to your NGINX server
$
curl http://localhost
Espere a que los datos iniciales aparezcan en New Relic, luego acceda a su dashboard de NGINX para verificar la recopilación de datos.
Paso 5: (Opcional) Reenviar los logs de NGINX
Además de las métricas, puede enviar logs de acceso y error de NGINX a New Relic para una monitorización y solución de problemas integrales. Estos logs complementan las métricas principales de NGINX y proporcionan información detallada a nivel de solicitud.
Sugerencia
Omita este paso si: Solo necesita métricas básicas de NGINX y no requiere logs de solicitud detallados.
Primero, configure NGINX para generar logs con formato JSON que sean más fáciles de analizar y consultar.
Agregue esto a su configuración de NGINX (/etc/nginx/nginx.conf):
Permita que el Collector lea los archivos de log de NGINX:
bash
$
# Add collector user to adm group (has read access to logs)
$
sudousermod-a-G adm otelcol-contrib
$
$
# Ensure log files are readable
$
sudochmod644 /var/log/nginx/access.log
$
sudochmod644 /var/log/nginx/error.log
Reiniciar el recopilador:
bash
$
sudo systemctl restart otelcol-contrib.service
Ver tus datos en New Relic
Una vez que su configuración esté completa y los datos fluyan, puede acceder a sus métricas de NGINX en los dashboards de New Relic y crear alertas personalizadas.
Para obtener instrucciones completas sobre cómo acceder a los dashboards, consultar datos con NRQL y crear alertas, consulte Encuentre y consulte sus datos de NGINX.
Resolución de problemas
Si encuentra problemas durante la configuración, utilice esta guía de solución de problemas para diagnosticar y resolver los problemas comunes.
Obteniendo 404 No encontrado:
bash
$
curl http://127.0.0.1:8080/nginx_status
Soluciones:
Verifique que la ruta de la ubicación coincida con la URL de su solicitud
Verifique que la configuración se haya agregado al bloque de servidor correcto
Ejecute sudo nginx -T | grep -A5 nginx_status para confirmar que la configuración está cargada
Obteniendo 403 Prohibido:
Asegúrese de que está probando desde localhost (127.0.0.1)
Verifique sus directivas allow/deny en la configuración de NGINX
Verifique que no haya otras restricciones de acceso que bloqueen la solicitud
Conexión rechazada:
Verifique si NGINX se está ejecutando: sudo systemctl status nginx
Verifique que el puerto 8080 no esté bloqueado: sudo netstat -tlnp | grep :8080
Verifique las reglas del firewall si corresponde
Verifique el estado del servicio:
bash
$
sudo systemctl status otelcol-contrib.service
$
sudo journalctl -u otelcol-contrib.service -n50
Causas y soluciones comunes:
Errores de sintaxis YAML - Corrija la sangría y los problemas de sintaxis
Variables de entorno faltantes - Verifique que las credenciales estén configuradas en el archivo de entorno
Problemas de permisos de archivos - Ejecutar sudo chown otelcol-contrib:otelcol-contrib /etc/otelcol-contrib/config.yaml
URLs de punto final no válidas - Verifique el punto final de NGINX y el punto final OTLP de New Relic
Configuraciones de componentes faltantes - Asegúrese de que todos los receptores, procesadores y exportadores a los que se hace referencia en la sección de canalizaciones de servicio estén realmente definidos en sus respectivas secciones de configuración anteriores
Reinicie después de las correcciones:
bash
$
sudo systemctl restart otelcol-contrib.service
Diagnóstico paso a paso:
Verifique que el estado de la stub de NGINX funcione:
bash
$
curl http://127.0.0.1:8080/nginx_status
Debería devolver las estadísticas de conexión.
Verifique que Collector se esté ejecutando y esté en buen estado:
bash
$
sudo systemctl status otelcol-contrib.service
$
sudo journalctl -u otelcol-contrib -n20
Los logs proporcionarán contexto detallado si hay algún problema de configuración o tiempo de ejecución con el OpenTelemetry Collector.
Compruebe los datos con NRQL:
FROM Metric SELECT*WHERE nginx.deployment.name LIKE'%production%'LIMIT1