BLOG | NGINX

Tutorial: Configurar o Relatório de Uso do NGINX

Miniatura de Akash Ananthanarayanan
Akash Ananthanarayanan
Publicado em 01 de maio de 2024

O NGINX Plus R31 apresenta uma maneira mais simples e eficiente de relatar o uso do NGINX Plus. A integração nativa de relatórios de uso elimina a necessidade de um agente NGINX separado, tornando o processo de relatórios simples e descomplicado para clientes no Programa de Consumo Flexível (FCP) da F5 e para clientes não FCP em uma assinatura temporária. Com essa funcionalidade incorporada diretamente no NGINX Plus, as instâncias podem comunicar informações de uso necessárias ao NGINX Instance Manager periodicamente, sem qualquer impacto no desempenho. Este recurso está disponível para máquinas virtuais e controladores de entrada NGINX, mas este blog se concentra em instâncias NGINX Plus — você pode encontrar um guia sobre como relatar o controlador de entrada NGINX ao gerenciador de instâncias NGINX aqui .

Ao simplificar a configuração, oferecer opções de personalização e fornecer métodos de fallback, pretendemos tornar o relatório de uso necessário um processo eficiente e adaptável para que os clientes implementem e mantenham a conformidade com o FCP. Para clientes que ainda não estão no R31 ou que não planejam fazer a atualização, métodos alternativos para habilitar relatórios de uso estão disponíveis, instalando o Agente NGINX ou configurando verificações de integridade HTTP.

Observação:  Para relatar o uso do NGINX Plus, você deve instalar o NGINX Instance Manager em um host dedicado. Consulte o guia de instalação para saber mais sobre os diferentes métodos de instalação.

Há três maneiras possíveis de você escolher para relatar instâncias do NGINX Plus para a F5.

  • Usuários do NGINX Plus R31 — Configurando relatórios de uso nativo do NGINX
  • Usuários R31 ou pré-R31 — Instalando o agente NGINX
  • Usuários pré-R31 — Configurando verificação de integridade HTTP para NGINX Plus

Vamos explorá-los um por um:

Configurar relatórios de uso nativos do NGINX

Após a instalação, o NGINX Plus estabelece uma conexão automatizada com o NGINX Instance Manager por meio da entrada DNS padrão "nginx-mgmt.local". Por padrão, a cada 30 minutos, o NGINX Plus se comunica com o Instance Manager e envia as informações de uso. Se você precisar alterar a entrada DNS do Instance Manager ou alterar o intervalo de conexão padrão para atender melhor às suas necessidades, adicione o bloco mgmt{} à sua configuração do NGINX. Além disso, ele vem com outras diretivas padrão, como o arquivo UUID, mTLS, resolvedor de DNS, intervalo de uso e endpoint usage_report. Para uma lista completa de diretivas personalizáveis, consulte a documentação abrangente do mgmtmodule . Com o ngx_mgmt_module , você pode personalizar facilmente as diretivas, oferecendo maior flexibilidade e conveniência.

As seções a seguir explicam como configurar esse recurso para seu ambiente.

Configurar NGINX Plus

  1. É aconselhável usar mTLS para aumentar a segurança do seu sistema. Você pode fazer isso gerando um certificado, uma chave e um certificado de chave CA para a instância do NGINX Plus e o NGINX Instance Manager. Para mais informações sobre como gerar chaves, clique aqui .
  2. Especifique o caminho para o certificado do cliente e o arquivo de chave privada dentro do bloco de gerenciamento do arquivo de configuração nginx.conf.
    		
       mgmt {
              ssl_protocols TLSv1.2 TLSv1.3;
              ssl_ciphers DEFAULT;
              ssl_certificate          /home/ubuntu/agent.crt;
              ssl_certificate_key      /home/ubuntu/agent.key
           }
    
  3. Para um processo de autenticação seguro e confiável, especifique o caminho para a cadeia de CA para validar a autenticidade dos certificados.
    
       mgmt {
              ssl_trusted_certificate  /home/ubuntu/ca.pem;
              ssl_verify               on;
              ssl_verify_depth         2;
           }
    
  4. Para resolvedores DNS personalizados, especifique o endereço do resolvedor no bloco mgmt{} usando a diretiva resolver.
    
       mgmt {
              resolver 3.X.X.X;
           }
    
  5. Para configurar um FQDN personalizado para o NGINX Instance Manager, especifique o FQDN na diretiva usage_report . Em seguida, adicione um registro A ao seu DNS local que associe o nome do host ao endereço IP do NGINX Instance Manager.
    
       mgmt {
              resolver 3.X.X.X;
              usage_report endpoint=nms.local interval=15m;
           }
    

Exemplo de configuração do NGINX Plus:


  mgmt {
         usage_report endpoint=nms.local interval=30m;
         resolver 3.X.X.X;
         ssl_protocols TLSv1.2 TLSv1.3;
         ssl_ciphers DEFAULT;
         ssl_certificate          /home/ubuntu/agent.crt;
         ssl_certificate_key      /home/ubuntu/agent.key;

         ssl_trusted_certificate  /home/ubuntu/ca.pem;
         ssl_verify               on;
         ssl_verify_depth         2;
     }

Salve a configuração do NGINX e recarregue o NGINX Plus.

sudo nginx -s recarregar

Configurar o NGINX Instance Manager

Adicione o certificado SSL em /etc/nginx/conf.d/nms-HTTP.conf dentro do bloco do servidor. Clique aqui para saber como configurar um certificado SSL no servidor NGINX Management Suite.


server {
    listen 443 ssl http2;
    root /var/www/nms;
    server_name _;
    ssl_protocols       TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_certificate         /etc/nms/certs/server.crt;
    ssl_certificate_key     /etc/nms/certs/server.key;
    ssl_client_certificate  /etc/nms/certs/ca.pem;
    ssl_verify_client on;
 }

Para visualizar o uso do NGINX Plus, faça login no NGINX Management Suite no seu navegador e navegue até o módulo NGINX Instance Manager. Em seguida, selecione a aba NGINX Plus localizada no canto inferior esquerdo da página.

Instâncias de inventário do NGINX Plus ao longo do tempo

Assista a este tutorial em vídeo com instruções passo a passo:

Mensagens de log de erros

Aqui está uma lista de mensagens de erro para solucionar problemas na instância do NGINX Plus quando você não consegue ver os dados de uso no Gerenciador de Instâncias do NGINX: Aqui estão alguns exemplos de mensagens de erro:

  • Falhas de resolução dinâmica: Falha ao resolver o resolvedor de DNS.
    2024/04/02 04:02:10 [error] 574079#574079: recv() failed (111: Connection refused) while resolving, resolver: 3.17.128.165:53
    2024/04/02 04:02:35 [warn] 574079#574079: usage report: nginx-mgmt.locals could not be resolved (110: Operation timed out)
    
  • Falhas no resolvedor do sistema: Falha ao resolver o nome do host do NGINX Instance Manager
    2024/04/02 13:20:44 [info] 103888#0: usage report: host not found in resolver "nginx-mgmt.local"
    
  • Falhas de conexão SSL: Não é possível verificar ou o certificado SSL expirou.
    2024/04/02 13:13:50 [warn] 103877#0: usage report: peer SSL connection failed
    
  • Falhas na comunicação entre pares: Falha ao acessar o NGINX Instance Manager.
    2024/04/02 13:15:25 [warn] 103877#0: usage report: peer connection failed (-1: Unknown error)
    2024/04/02 13:23:32 [warn] 103877#0: usage report: failed (server returned: 404 Not Found)
    2024/04/02 19:53:45 [warn] 4648#4648: usage report: connection timed out
    

Instalar o agente NGINX

Se você ainda não migrou para o R31 ou não pretende fazê-lo em breve, ainda poderá relatar suas instâncias do NGINX Plus ao NGINX Instance Manager. Você pode fazer isso instalando o Agente NGINX em seu ambiente. Após a conclusão da instalação, você pode estabelecer uma conexão com o Instance Manager e começar a transmitir dados de uso. Para instalar o Agente NGINX, siga as instruções fornecidas neste link .

Para visualizar o uso do NGINX Plus, faça login no NGINX Management Suite no seu navegador e navegue até o módulo NGINX Instance Manager. Em seguida, selecione a aba NGINX Plus localizada no canto inferior esquerdo da página.

Instâncias de inventário do NGINX Plus ao longo do tempo

Assista a este tutorial em vídeo com instruções passo a passo:

Configurar verificação de integridade HTTP para NGINX Plus

Se você não estiver planejando instalar o Agente NGINX ou atualizar para o R31, ainda poderá relatar suas instâncias do NGINX Plus. Isso pode ser feito configurando uma verificação de integridade HTTP por meio do arquivo de configuração NGINX. No entanto, você deve atualizar manualmente o arquivo de configuração do NGINX Plus para utilizar esta opção. Esse método pode ser demorado e trabalhoso, principalmente se seu ambiente tiver múltiplas instâncias. Portanto, é aconselhável considerar esses fatores antes de escolher esta opção.

Configurar NGINX Plus

  1. Abra a configuração do NGINX Plus e insira o código dentro do bloco http {}:
    
       keyval_zone zone=uuid:32K state=/var/lib/nginx/state/instance_uuid.json;
       keyval 1 $nginx_uuid zone=uuid;
       upstream receiver {
        zone receiver 64k;
    
        # REQUIRED: Update NMS_FQDN with NGINX Management Suite IP Address or hostname.
        # If configuring with hostname, please ensure to uncomment the resolver
        # directive below and define a DNS server that can resolve the hostname.
        server NMS_FQDN:443;
    
        # OPTIONAL: Update DNS_UP with DNS server IP address that can resolve
        # the hostname defined above.
        #resolver DNS_IP;
       }  
    
    map CERT $repo_crt {
        # OPTIONAL: Location of client certificate
          default /home/ubuntu/agent.crt;
       }  
    
    map KEY $repo_key {
        # OPTIONAL: Location of client certificate private key
          default /home/ubuntu/agent.key; 
       }
    
    
     server {
        location @ngx_usage_https {
            # OPTIONAL: Configure scheme (http|https) here
            proxy_pass https://receiver;
    
            # REQUIRED: If using NGINX APP PROTECT (NAP) on this instance, set nap=active on the following line:
    proxy_set_header Nginx-Usage "Version=$nginx_version;Hostname=$hostname;uuid=$nginx_uuid;nap=active";	 
    
            health_check uri=/api/nginx-usage interval=1800s;       # DO NOT MODIFY
            proxy_ssl_certificate     $repo_crt;                    # DO NOT MODIFY
            proxy_ssl_certificate_key $repo_key;                    # DO NOT MODIFY
        }
    
        location @self {
            health_check uri=/_uuid interval=1d;
            proxy_pass http://self;
        }
    
        location = /_uuid {
            if ($nginx_uuid !~ .) {
                set $nginx_uuid $request_id;
            }
            return 204;
        }
    
        listen unix:/tmp/ngx_usage.sock;
      }
    
     upstream self {
        zone self 64k;
        server unix:/tmp/ngx_usage.sock;
     }
    
  2. Atualize o NMS FQDN com o nome do host ou endereço IP do Instance Manager. Se você estiver usando DNS privado, descomente e atualize seu endereço IP de DNS.
  3. Para garantir a segurança do tráfego HTTP para o NGINX Instance Manager, é essencial especificar os locais do certificado SSL e da chave nos blocos map CERT e map KEY.

Salve as alterações e recarregue o NGINX.

sudo nginx -s recarregar

Para visualizar o uso do NGINX Plus, faça login no NGINX Management Suite no seu navegador e navegue até o módulo NGINX Instance Manager. Em seguida, selecione a aba NGINX Plus no canto inferior esquerdo da página.

Instâncias de inventário do NGINX Plus ao longo do tempo

Assista a este tutorial em vídeo com instruções passo a passo:

Conclusão

Estamos comprometidos em encontrá-lo onde você estiver e ajudá-lo a otimizar e automatizar relatórios de uso com facilidade. É por isso que estamos oferecendo diversas opções para flexibilidade de relatórios. A atualização do NGINX Plus R31 lançada recentemente torna ainda mais simples e eficiente relatar dados de uso mensal em instâncias do NGINX Plus — sem afetar o desempenho e garantindo a conformidade com os requisitos da F5.


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."