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:
Salve o arquivo e certifique-se de que o usuário do sistema otelcol-contrib possa lê-lo.
Por padrão, a configuração coleta apenas métricas principais (conexões, requisições HTTP e SSL). Para habilitar categorias de métricas adicionais, como zonas de servidor, zonas de localização ou métricas de cache:
Identifique as métricas que você deseja habilitar na lista de métricas abaixo. Observe a qual categoria eles pertencem (por exemplo, Zonas de Servidor HTTP, Zonas de Localização, Cache).
Mova o prefixo de métrica correspondente de exclude para include no processador filter/nginx_metrics.
Exemplo: Habilitar métricas de zonas do servidor HTTP
Localize esta linha na seção exclude:
filter/nginx_metrics:
metrics:
include:
# existing include metrics
exclude:
match_type: regexp
metric_names:
-"nginxplus_server_.*"
Mova para a seção include:
filter/nginx_metrics:
metrics:
include:
match_type: regexp
metric_names:
-"nginxplus_connections_.*"
-"nginxplus_http_requests_.*"
-"nginxplus_ssl_.*"
-"nginxplus_server_.*"# Added to enable server zone metrics
exclude:
match_type: regexp
metric_names:
# Remove "nginxplus_server_.*" from here
-"nginxplus_location_zone_.*"
-"nginxplus_cache_.*"
# ... rest of exclude list
Reinicie o coletor após fazer alterações:
bash
$
sudo systemctl restart otelcol-contri.service
Etapa 3: Defina as variáveis de ambiente para o coletor
Injete seu endpoint New Relic e OTLP no serviço do coletor para que o exportador possa autenticar.
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.
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:
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)