Se o seu ambiente roteia o tráfego de saída por um proxy corporativo, você pode configurar o New Relic eBPF agent para enviar telemetria OTLP por esse proxy. Esta página explica como configurar o suporte a proxy em hosts Linux e clusters do Kubernetes, os requisitos do servidor proxy e como solucionar problemas comuns.
Importante
O eBPF agent suporta proxies HTTP CONNECT usando apenas o esquema http://. Devido às limitações do gRPC, o agente não suporta o esquema https:// (uma conexão criptografada por TLS diretamente para o proxy). No entanto, seus dados de telemetria são sempre criptografados com TLS de ponta a ponta entre o agente e o endpoint OTLP da New Relic. O prefixo http:// determina apenas como o agente se comunica com o proxy para estabelecer o túnel. O próprio proxy só vê tráfego criptografado e nunca tem acesso aos seus dados.
Como funciona o suporte a proxy
O eBPF agent usa o suporte a proxy HTTP integrado do gRPC. Quando você configura um proxy, o agente:
- Conecta-se ao servidor proxy.
- Envia uma requisição
HTTP CONNECTpara abrir um túnel para o endpoint OTLP da New Relic. - Realiza um handshake TLS com o endpoint OTLP através desse túnel.
- Adiciona um cabeçalho
Proxy-Authorization: Basic <base64>se você forneceu credenciais.
Requisitos do servidor proxy
Seu servidor proxy deve suportar:
- O método HTTP
CONNECT(necessário para o tunelamento TLS para o endpoint OTLP). - Tunelamento para a porta
443(o endpoint OTLP usa HTTPS). - Autenticação Básica HTTP, se você usar acesso de proxy autenticado.
Servidores proxy suportados
Proxy | Suportado? | Notas |
|---|---|---|
Squid | Sim | Recomendado. Oferece suporte a
pronto para uso. |
Apache
| Sim | Requer configuração de
. |
nginx | Com módulo | Requer o módulo
. |
HAProxy | Não | O HAProxy é um proxy reverso/balanceador de carga e não suporta o método
de forward-proxy. |
A maioria dos proxies corporativos | Geralmente sim | Verifique com sua equipe de TI ou de redes. |
Limitações de caracteres de credenciais
Cuidado
Se o nome de usuário do proxy contiver letras maiúsculas, ou se o seu nome de usuário ou senha contiver caracteres especiais, a autenticação do proxy falha silenciosamente. O eBPF agent captura esses casos na inicialização e registra um erro para que você não fique depurando uma falha silenciosa.
Ao configurar credenciais de proxy, use apenas os seguintes caracteres:
- Nome de usuário: letras minúsculas (
a–z), dígitos (0–9), hífen (-), sublinhado (_), ponto (.) e til (~). Letras maiúsculas não são permitidas. - Senha: letras (
a–z,A–Z), dígitos (0–9), hífen (-), sublinhado (_), ponto (.) e til (~).
Os seguintes caracteres não são permitidos no nome de usuário ou na senha: @, :, /, ?, #, [, ], !, $, &, ', (, ), *, +, ,, ;, =, %, espaços e outros caracteres especiais.
Se as credenciais de proxy existentes usarem caracteres não permitidos, peça ao administrador do proxy para criar uma conta de proxy dedicada para o eBPF agent que use um nome de usuário alfanumérico em letras minúsculas e uma senha simples.
Precedência de configuração
Quando mais de uma fonte define um proxy, o agente os aplica nesta ordem:
otlpProxy.url— URL completa do proxy.otlpProxy.*— Configurações individuais de proxy (host,port,scheme,user,password).
Essa precedência se aplica tanto ao host Linux quanto às implantações do Kubernetes.
Configurar um proxy
Para clusters Kubernetes, configure o proxy no seu arquivo Helm values.yaml.
Adicione um bloco otlpProxy: ao seu values.yaml:
otlpProxy: host: "proxy.corporate.com" port: 8080 scheme: "http" user: "myuser" password: "mypassword" url: "" existingSecret: ""Como alternativa, defina url: como http://[user:pass@]host:port para fornecer uma URL de proxy completa. O agente suporta apenas o esquema http.
Para implantações de produção, armazene as credenciais em um secret do Kubernetes em vez de definir user: e password: inline. Crie o secret com as chaves proxy-user e proxy-password, e referencie-o por meio de existingSecret::
$kubectl create secret generic ebpf-proxy-creds \> --namespace newrelic \> --from-literal=proxy-user=myuser \> --from-literal=proxy-password=mypasswordEm seguida, aplique a alteração:
$helm upgrade --install nr-ebpf-agent newrelic/nr-ebpf-agent -n newrelic --values values.yamlPara a lista completa de parâmetros de otlpProxy.*, consulte os parâmetros de configuração do K8s na página de instalação do Kubernetes.
Para hosts Linux, configure o proxy no arquivo de configuração newrelic-ebpf-agent.yaml.
Adicione um bloco otlpProxy: a /etc/newrelic-ebpf-agent/newrelic-ebpf-agent.yaml:
otlpProxy: host: "proxy.corporate.com" port: 8080 scheme: "http" user: "myuser" password: "mypassword" url: ""Como alternativa, defina url: como http://[user:pass@]host:port para fornecer uma URL de proxy completa. O agente suporta apenas o esquema http.
Após salvar o arquivo, restrinja suas permissões e reinicie o agente:
$sudo chmod 600 /etc/newrelic-ebpf-agent/newrelic-ebpf-agent.yaml$sudo systemctl restart newrelic-ebpf-agentPara a lista completa de parâmetros de otlpProxy.*, consulte Parâmetros de Configuração na página de instalação do Linux.
Verifique sua configuração de proxy
Após configurar o proxy, valide se o agente está utilizando-o conforme o esperado.
Verificar o log do agente
Verifique o log do agente para mensagens relacionadas a proxy:
$journalctl -u newrelic-ebpf-agent | grep -i proxyProcure uma destas mensagens:
Using proxy for OTLP endpoint: <endpoint> via http://<host>:<port>— O proxy está habilitado.Proxy authentication enabled (username: <user>)— A Autenticação Básica está configurada.Direct connection to OTLP endpoint (no proxy configured)— Nenhum proxy está em uso.
Testar a conectividade do proxy
Use curl para confirmar que seu proxy suporta o método HTTP CONNECT e pode alcançar o endpoint OTLP da New Relic:
$# Unauthenticated proxy$curl -v -x http://proxy.example.com:8080 https://otlp.nr-data.net$
$# Authenticated proxy$curl -v -x http://user:pass@proxy.example.com:8080 https://otlp.nr-data.netUma resposta bem-sucedida inclui:
< HTTP/1.1 200 Connection established* Proxy replied 200 to CONNECT request* CONNECT phase completed!Se o agente não estiver roteando pelo proxy ou você encontrar erros, consulte Solucionar Problemas do Proxy eBPF.
Considerações de segurança
Ao rotear o agente através de um proxy, tenha o seguinte em mente:
- Os dados de telemetria permanecem criptografados com TLS de ponta a ponta. O proxy vê apenas um túnel criptografado para o endpoint OTLP. Ele nunca tem acesso aos seus dados.
- As credenciais de proxy são enviadas em texto simples para o proxy porque o agente não suporta o esquema de proxy
https://. Use autenticação de proxy apenas em uma rede confiável entre o agente e o proxy. Se você precisar de transporte criptografado entre o agente e o proxy, execute o proxy emlocalhostou use uma VPN. - O agente nunca grava senhas em seus logs. O nome de usuário pode aparecer em linhas de log como
Proxy authentication enabled (username: <user>)para depuração. - As implantações do Kubernetes devem usar
existingSecretem vez de credenciais inline para manter as senhas de proxy fora do seu arquivovalues.yamle do controle de código-fonte.