Monitore o NGINX Plus auto-hospedado com OpenTelemetry
Monitore seus servidores NGINX Plus em execução em um host usando o OpenTelemetry Collector para enviar métricas e dados de telemetria para o New Relic.
Esta integração utiliza o prometheusreceiver do OpenTelemetry e o nginx-prometheus-exporter para monitorar as métricas de desempenho, estatísticas de conexão e integridade do servidor do NGINX Plus. A rica API HTTP no NGINX Plus fornece métricas significativamente mais detalhadas em comparação com o módulo de status stub básico no NGINX padrão.
Saída esperada: HTTP/2 405 (método não permitido é esperado)
Etapa 1: Configurar o NGINX Plus
Configure e habilite o módulo HTTP API para expor métricas do seu servidor NGINX Plus.
Adicione a configuração da API HTTP ao seu arquivo nginx.conf. Normalmente, adicione isso dentro do bloco http:
server{
listen8080;
server_name localhost;
location /api{
api write=on;
# Restrict access as needed
allow 127.0.0.1;
deny all;
}
}
Após atualizar nginx.conf, teste e recarregue o serviço:
bash
$
sudo nginx -t&&sudo nginx -s reload
Confirme o caminho do endpoint da API (incluindo a versão) exposto em sua configuração. Registre o caminho completo do endpoint da API (sem a barra inicial) e a porta que o serve. Os padrões comuns são api/9 na porta 8080.
Use curl para confirmar se seu endpoint de API está acessível:
Escreva environment.conf com seu endpoint OTLP. Substitua YOUR_LICENSE_KEY pela chave de licença New Relic e YOUR_OTLP_ENDPOINT pelo endpoint apropriado para sua região. Consulte a documentação do endpoint OTLP para selecionar o endpoint correto.
Confirme se o OpenTelemetry Collector está coletando com sucesso as métricas do NGINX Plus e enviando-as para o New Relic.
Monitore os logs do coletor para garantir que ele esteja sendo executado sem erros:
bash
$
sudo journalctl -u otelcol-contrib.service -n20
Procure estes indicadores de sucesso:
✅ "Everything is ready. Begin running and processing data."
✅ "Scraping metrics" - Coleta bem-sucedida do exportador Prometheus
✅ "Exporting metrics" - Enviando com sucesso para New Relic
Gere tráfego de teste para criar métricas:
bash
$
# Make a few requests to your NGINX Plus server
$
curl http://localhost
Acesse seu dashboard NGINX para verificar a coleta de dados.
Etapa 5: (Opcional) Encaminhar logs do NGINX
Estenda a configuração do seu coletor para incluir logs de acesso e erros se você quiser eventos de log junto com as métricas.
Configurar o formato de log do NGINX Plus
Antes de encaminhar os logs, configure o NGINX Plus para usar um formato de log estruturado. Consulte a documentação de logging do NGINX para obter orientação sobre como configurar logs de acesso e erro.
Configure o OpenTelemetry Collector para encaminhamento de logs
Observe os caminhos completos para seus arquivos de log de acesso e erro do NGINX. Os padrões são geralmente /var/log/nginx/access.log e /var/log/nginx/error.log.
Atualize /etc/otelcol-contrib/config.yaml para adicionar um receptor filelog e pipeline de log:
Selecione Dashboards e clique no dashboard NGINX OTel overview.
Na janela pop-up, selecione sua conta.
Clique em [View dashboard] e veja seus dados do NGINX Plus no New Relic.
As métricas do NGINX Plus são anexadas ao Metrictipo de evento. Você pode consultar esses dados para fins de solução de problemas ou para criar gráficos e dashboards personalizados.
Métricas coletadas
O OpenTelemetry Collector coleta métricas do NGINX Prometheus exporter, que expõe métricas da API HTTP do NGINX Plus no formato Prometheus.
Abaixo estão as métricas do NGINX Plus disponíveis:
Métrica
Descrição
Tipo
nginxplus_connections_accepted
Conexões de cliente aceitas
Soma
nginxplus_connections_active
Conexões de cliente ativas
Medidor
nginxplus_connections_dropped
Conexões de cliente descartadas
Soma
nginxplus_connections_idle
Conexões de cliente ociosas
Medidor
Métrica
Descrição
Tipo
nginxplus_http_requests_total
Total de solicitações http
Soma
nginxplus_http_requests_current
Solicitações http atuais
Medidor
Métrica
Descrição
Tipo
nginxplus_ssl_handshakes
Handshakes SSL bem-sucedidos
Soma
nginxplus_ssl_handshakes_failed
Handshakes SSL com falha
Soma
nginxplus_ssl_session_reuses
Reutilização de sessão durante o handshake SSL
Soma
Métrica
Descrição
Tipo
nginxplus_server_zone_processing
Solicitações de cliente que estão sendo processadas no momento
Medidor
nginxplus_server_zone_requests
Total de requisições do cliente
Soma
nginxplus_server_zone_responses
Total de respostas enviadas aos clientes
Soma
nginxplus_server_zone_responses_codes
Total de respostas enviadas aos clientes por código
Soma
nginxplus_server_zone_discarded
Requisições concluídas sem enviar uma resposta
Soma
nginxplus_server_zone_received
Bytes recebidos de clientes
Soma
nginxplus_server_zone_sent
Bytes enviados aos clientes
Soma
nginxplus_server_ssl_handshakes
Handshakes SSL bem-sucedidos
Soma
nginxplus_server_ssl_handshakes_failed
Handshakes SSL com falha
Soma
nginxplus_server_ssl_session_reuses
Reutilização de sessão durante o handshake SSL
Soma
Métrica
Descrição
Tipo
nginxplus_location_zone_requests
Total de requisições do cliente
Soma
nginxplus_location_zone_responses
Total de respostas enviadas aos clientes
Soma
nginxplus_location_zone_responses_codes
Total de respostas enviadas aos clientes por código
Soma
nginxplus_location_zone_discarded
Requisições concluídas sem enviar uma resposta
Soma
nginxplus_location_zone_received
Bytes recebidos de clientes
Soma
nginxplus_location_zone_sent
Bytes enviados aos clientes
Soma
Métrica
Descrição
Tipo
nginxplus_cache_size
Tamanho total do cache
Medidor
nginxplus_cache_max_size
Tamanho máximo do cache
Medidor
nginxplus_cache_cold
O cache é considerado frio?
Medidor
nginxplus_cache_hit_responses
Número total de acertos no cache
Soma
nginxplus_cache_hit_bytes
Número total de bytes retornados de acertos de cache
Soma
nginxplus_cache_stale_responses
Número total de acertos de cache desatualizados
Soma
nginxplus_cache_stale_bytes
Número total de bytes retornados de acertos de cache desatualizados
Soma
nginxplus_cache_updating_responses
Número total de acertos no cache enquanto o cache está sendo atualizado
Soma
nginxplus_cache_updating_bytes
Número total de bytes retornados do cache enquanto o cache está sendo atualizado
Soma
nginxplus_cache_revalidated_responses
Número total de revalidações de cache
Soma
nginxplus_cache_revalidated_bytes
Número total de bytes retornados de revalidações de cache
Soma
nginxplus_cache_miss_responses
Número total de falhas de cache
Soma
nginxplus_cache_miss_bytes
Número total de bytes retornados de falhas de cache
Soma
nginxplus_cache_expired_responses
Número total de acertos de cache com TTL expirado
Soma
nginxplus_cache_expired_bytes
Número total de bytes retornados de acertos de cache com TTL expirado
Soma
nginxplus_cache_expired_responses_written
Número total de acertos de cache com TTL expirado gravados no cache
Soma
nginxplus_cache_expired_bytes_written
Número total de bytes gravados no cache de acertos de cache com TTL expirado
Soma
nginxplus_cache_bypass_responses
Número total de desvios do cache
Soma
nginxplus_cache_bypass_bytes
Número total de bytes retornados de desvios de cache
Soma
nginxplus_cache_bypass_responses_written
Número total de desvios de cache gravados no cache
Soma
nginxplus_cache_bypass_bytes_written
Número total de bytes gravados no cache de desvios de cache
Soma
Atributo
Descrição
Valores de exemplo
server_zone
O nome da zona do servidor (aplica-se às métricas de Zonas do Servidor HTTP)
example.com, api.example.com
code
Código de status da resposta HTTP (aplica-se a métricas de resposta)
1xx, 2xx, 3xx, 4xx, 5xx, 200, 404, 500
location_zone
O nome da zona de localização
/api, /images, /static
cache
O nome do cache
my_cache, static_cache
nginx.server.endpoint
A URL do endpoint da API NGINX Plus
http://localhost:8080/api
nginx.deployment.name
Um nome exclusivo para identificar esta implantação do NGINX Plus
production-web-01, staging-api
nginx.display.name
Um nome amigável para exibição que combina o prefixo "servidor" com o nome da implantação
server:production-web-01
host.name
O nome do host do sistema em que o NGINX Plus está em execução
web-server-01.example.com
host.id
O identificador exclusivo do sistema host
i-1234567890abcdef0
logtype
O tipo de log que está sendo coletado (aplicável apenas a logs). Usado pelas regras de análise integradas do New Relic. Este atributo está disponível somente quando o encaminhamento de log está ativado.
nginx (para logs de acesso), nginx-error (para logs de erro)