Importante
O Agent Control e o New Relic Control agora estão disponíveis para o público geral para Kubernetes! O suporte para hosts Linux e hosts Windows também está no programa de public preview, em conformidade com nossas políticas de pré-lançamento.
O agente Control fornece uma abordagem integrada para configuração independente do ambiente onde está implantado. Dois métodos para gerenciar a configuração do agente estão disponíveis:
Configuração local: um arquivo
values.yamlabrangente usado durante a instalação inicial Helm .Configuração remota: uma configuração centralizada, baseada em YAML, que você cria no New Relic Control e que é implantada remotamente em toda a sua frota.
A configuração remota é o método recomendado para o gerenciamento diário. Ele garante um comportamento consistente do agente em todo o seu ambiente, simplifica o gerenciamento de mudanças e permite que você dimensione sem atualizar manualmente os arquivos YAML locais em cada host.
Dica
O arquivo values-newrelic.yaml , que tradicionalmente definia as configurações do agente New Relic , agora também inclui configuração para controle do agente. O parâmetro que você define neste arquivo determina como o agente de controle e seu agente gerenciado operam. Este arquivo é chamado de configuração local.
Compreendendo as duas camadas de configuração
A configuração do agente Control está estruturada em duas camadas:
Configuração principal do agente Control: Estas são as configurações de nível superior que controlam como o agente Control opera, como sua conexão com o New Relic, sua identidade e detalhes de gerenciamento de frota.
Configuração do agente gerenciado: São os
chart_valuesindividuais para cada subagente (por exemplo, agente de infraestrutura, Fluent Bit) que o agente Control implanta e gerencia.
Quando uma configuração local e remota estão presentes, o agente Control aplica a seguinte lógica:
- A configuração remota tem precedência. Quaisquer configurações definidas em uma configuração remota do New Relic Control substituirão as configurações correspondentes no arquivo
values.yamllocal. - Para substituir intencionalmente as configurações remotas pela sua configuração local, você pode implantar uma configuração remota vazia por meio do New Relic Control. Essa alteração será aplicada a todos os clusters da frota selecionada.
Configuração Kubernetes
Estas instruções e exemplos se aplicam ao agente de controle em execução em um cluster do Kubernetes.
Configuração values.yaml local para Kubernetes
O arquivo de configuração local do Kubernetes, usado durante a instalação, contém todas as configurações do agente Control e seu agente gerenciado.
Este exemplo mostra as duas camadas de configuração em um único arquivo.
O exemplo demonstra como configurar o Agent Control junto com dois agentes gerenciados: o agente de infraestrutura Kubernetes e Fluent Bit para encaminhamento de logs. Por exemplo, se você não quiser enviar métricas de saúde para seu coletor de log Fluent Bit , basta definir sendMetrics: false no arquivo YAML antes de executar o comando de instalação.
Configuração remota para Kubernetes
A configuração remota garante um comportamento consistente do agente em todo o seu ambiente, simplifica o gerenciamento de alterações e permite que você dimensione a observabilidade sem gerenciar manualmente os arquivos YAML locais.
Para implantar a configuração centralmente no cluster, defina esse mesmo conteúdo YAML na seção Configurations do Controle de Agentes. Você pode então aplicar a configuração a uma frota inteira de clusters como parte de uma implantação remota. Isso é chamado de arquivo de configuração remota .
Dica
Quando você define uma configuração na interface de controle do New Relic, a estrutura YAML é diferente. Você fornece apenas o YAML que corresponde ao bloco content para um único agente.
Exemplo de configuração: controle de agente no Kubernetes
Configuração: Controle de agente no Kubernetes Os exemplos a seguir mostram como configurar o Controle de agente para gerenciar diferentes conjuntos de agentes. Essas configurações podem ser utilizadas durante a instalação inicial ou como parte de uma configuração remota no Controle de Agentes.
Para explorar todas as configurações disponíveis, consulte values-newrelic.yaml.
Os exemplos a seguir mostram como configurar o agente Control com um conjunto de subagentes usando o arquivo values.yaml local.
Agente de Controle com New Relic Infrastructure e Fluent Bit
Este exemplo implanta Agent Control com monitoramento de infraestrutura e Fluent Bit para coleta de logs.
Controle de agente com OpenTelemetry e configurações personalizadas do coletor
com OpenTelemetry e configurações de coletor personalizadas Este exemplo implanta o agente Control com a distribuição New Relic do OpenTelemetry (NRDOT) e desabilita o receptor filelog no gráfico Helm gerenciadonr-k8s-otel-collector .
Importante
Prática recomendada de segurança: não armazene valores confidenciais, como sua chave de licença, diretamente na configuração. Recomendamos usar um segredo do Kubernetes. O agente Control pode então extrair com segurança esses valores do segredo em tempo de execução.
Exemplo de configuração: configuração de agente remoto no Kubernetes
Os exemplos a seguir mostram como configurar agentes individuais remotamente a partir da interface do New Relic Control .
Configuração remota: New Relic Infrastructure
Este exemplo mostra como configurar remotamente o agente da New Relic Infrastructure para Kubernetes usando o Controle de Agentes. Ele permite a coleta de métricas do processo definindo enableProcessMetrics: true.
Configuração remota: Fluent Bit
Este exemplo configurou Fluent Bit remotamente via Controle de Agentes. Ele habilita relatórios métricos de saúde do coletor de logs definindo sendMetrics: true.
Configuração remota: Prometheus
Este exemplo configura o agente Prometheus remotamente usando o Controle de Agentes. Ele permite que low-data mode reduza o volume de telemetria e desabilite a integração padrão.
Configuração remota: OpenTelemetry
Este exemplo configura o coletor New Relic OpenTelemetry e habilita lowDataMode como uma opção válida.
Importante
Prática recomendada de segurança: não armazene valores confidenciais, como sua chave de licença, diretamente na configuração. Recomendamos usar um segredo do Kubernetes. O agente Control pode então extrair com segurança esses valores do segredo em tempo de execução.
Configuração de proxy para Kubernetes
O agente Control suporta configuração de proxy para rotear o tráfego através de proxies corporativos. As configurações de proxy podem ser definidas por meio de variáveis de ambiente ou diretamente no arquivo de configuração.
Precedência de proxy
Agent Control usará as configurações de proxy na seguinte ordem de precedência:
proxyCampo de configuração na configuração de Agent ControlHTTP_PROXYvariável de ambienteHTTPS_PROXYvariável de ambiente
Configuração de proxy com certificados autoassinados
Para configurações de proxy usando autenticação HTTPS com certificados autoassinados, você precisa fornecer o pacote de certificado da CA e configurar a autenticação de proxy:
Configuração de proxy para agente gerenciado
Cuidado
Configurar um proxy no Agent Control não configura automaticamente as mesmas configurações de proxy para o agente que ele gerencia. Cada agente tem sua própria configuração de proxy, que deve ser definida separadamente, de acordo com o formato de configuração e os requisitos específicos do agente.
Ao usar um proxy, você também deve configurar as definições de proxy para cada agente gerenciado individualmente. Consulte a documentação específica de cada agente para obter opções de configuração de proxy.
Gerenciamento de segredos
O Controle de agente fornece um mecanismo robusto para gerenciar dados confidenciais, como senhas e chaves de API, recuperando-os de provedores de segredos dedicados. Isso garante que informações confidenciais não sejam codificadas diretamente em arquivos de configuração. Atualmente, o sistema suporta os provedores descritos em Provedores de valor.
Configuração de repositório privado
O agente Control suporta a configuração do repositório Helm privado para implantar o próprio agente Control e o agente gerenciado. Isso permite ambientes onde os gráficos do New Relic Helm não são diretamente acessíveis.
Cuidado
Ao usar o repositório privado Helm, os gráficos precisam ser compatíveis e as imagens referenciadas dentro dos gráficos devem ser acessíveis. Caso contrário, o agente não trabalhará como esperado.
1. Habilite repositório privado para agente
Por razões de segurança, somente repositórios explicitamente habilitados são permitidos na configuração remota. Para habilitar repositório específico, atualize a configuração do agente Control da seguinte forma:
A configuração do repositório permitida pode então ser usada em sua configuração remota dentro do New Relic Control. Exemplo:
chart_version: "1.2.3"chart_repository: url: "https://my-private-repository-1" name: "my-chart-name" # Optional: use only if the chart name doesn't match New Relic's chart nameAlém disso, você precisa configurar a instalação Helm do agente Control para usar seu repositório privado se o próprio gráfico agent-control-bootstrap estiver em um repositório privado. Isso é separado da configuração do agente gerenciado. Consulte o agent-control-bootstrap Helm chart values.yaml para configurar a seção installationJob da seguinte forma:
chartRepositoryUrl: A URL que contém a localização do seu repositório.chartName: O nome do gráfico, se estiver usando um nome de gráfico diferente.repositorySecretReferenceNameerepositoryCertificateSecretReferenceName: Os segredos necessários para autenticação no seu repositório. Veja a seção de autenticação abaixo para mais detalhes.
2. Configure autenticação para repositório privado
Você precisa configurar recursos adicionais para habilitar a autenticação para acessar seu repositório privado da seguinte maneira:
Configuração Linux
Estes são os caminhos padrão para configuração do agente Control:
Localarquivo de configuração:/etc/newrelic-agent-control/config.yamlRemotearquivo de configuração:/var/lib/newrelic-agent-control/config.yaml(se habilitado via Controle de Agentes de implantação)- Definição de serviço:
/lib/systemd/system/newrelic-agent-control.service - Arquivo de ambiente de serviço:
/etc/newrelic-agent-control/newrelic-agent-control.conf
Por padrão, o agente pode orquestrar o agente de infraestrutura e o coletor OpenTelemetry:
# Configures the integration with Fleet Controlfleet_control: # EU region? Use: https://opamp.service.eu.newrelic.com/v1/opamp # JP region? Use: https://opamp.service.jp.newrelic.com/v1/opamp endpoint: https://opamp.service.newrelic.com/v1/opamp headers: api-key: YOUR_INGEST_KEY auth_config: # EU region? Use: https://system-identity-oauth.service.eu.newrelic.com/oauth2/token # JP region? Use: https://system-identity-oauth.service.jp.newrelic.com/oauth2/token token_url: "https://system-identity-oauth.service.newrelic.com/oauth2/token" client_id: "YOUR_CLIENT_ID provider: "local" private_key_path: "path/to/key"
# Configures the agents to be supervised by Agent Controlagents: # Agent name (RFC-1035 valid label) nr-infra-agent: # The supported agent type and agent type version agent_type: "newrelic/com.newrelic.infrastructure:0.1.0" nr-otel-collector: agent_type: "newrelic/com.newrelic.opentelemetry.collector:0.1.0"Você pode renomear ou remover qualquer agente com base em seus requisitos de observabilidade. O nome do agente deve ser um nome de rótulo RFC-1035 válido.
Você também pode usar variáveis de ambiente para definir as configurações do agente:
- Use o prefixo
NR_(sublinhado único) para destino da configuração de controle do agente principal. - Use
__(sublinhados duplos) para direcionar as configurações disponíveis no agente Control. Isso é necessário para evitar colisões com chaves de configuração que contêm sublinhados. - Variáveis de ambiente só têm precedência sobre o arquivo de configuração local. Se a configuração remota estiver habilitada, as variáveis de ambiente não serão consideradas.
- Por exemplo, para definir uma configuração dinâmica para o
fleet_control::endpoint, adicione oNR_FLEET_CONTROL__ENDPOINT=https://opamp.service.newrelic.com/v1/opampno arquivo de definição de serviço.
Configurar o agente
O agente Control pode atualmente gerenciar os seguintes tipos de agentes predefinidos no host:
- Agente New Relic Infrastructure:
newrelic/com.newrelic.infrastructure. Todos os recursos existentes no agente de infraestrutura são suportados, incluindo orquestração de integração no host e nosso encaminhador de integração de logs baseado em FluentBit. - Distribuição New Relic para OpenTelemetry:
newrelic/com.newrelic.opentelemetry.collector
Cada tipo de agente oferece um conjunto de variáveis opcionais que podem ser personalizadas para adaptar seu comportamento. Para personalizar a configuração local do agente:
- Crie um arquivo
values.yml: Este arquivo conterá os valores de configuração desejados. - Coloque o arquivo
values.ymlno diretório/etc/newrelic-agent-control/fleet/agents.d/YOUR-AGENT-NAME/values/. Aqui,YOUR-AGENT-NAMEé o nome real do seu agente (por exemplo,nr-infra-agent).
Aqui está uma lista de variáveis disponíveis para as versões mais recentes do tipo de agente:
- Agente New Relic Infrastructure:
0.1.0 - Distribuição New Relic para OpenTelemetry:
0.1.0
Tipo de agente | Variável | Tipo | Padrão |
|---|---|---|---|
|
| Um YAML contendo agente de configuração de infraestrutura | (vazio) |
|
| Um mapa YAML (chaves são nomes de arquivos) contendo integração no host configuração | (vazio) |
|
| Um mapa YAML (chaves são nomes de arquivos) contendo encaminhamento de configuração de logs | (vazio) |
|
| Porta para o servidor de status local do agente de infraestrutura |
|
|
| Configuração do coletor OpenTelemetry (em formato YAML) | (vazio) |
|
| Caminho e porta para o endpointhttp local da extensão de verificação de integridade do coletor OTel |
|
Todos os agentes gerenciados |
| Tempo até a próxima tentativa caso o coletor não inicie (em segundos). |
|
Dica
Você pode definir as configurações do agente de infraestrutura e do coletorOpenTelemetry conforme necessário seguindo a configuração suportada.
Configuração de amostra
Configuração Remota com Controle de Agentes
Os exemplos a seguir contêm casos de uso comuns que estão prontos para copiar e colar como configuração válida para o agente de controle e o agente gerenciado.
Configuração do Windows
Estes são os caminhos padrão para a configuração do Agent Control no Windows:
Localarquivo de configuração:C:\Program Files\New Relic\newrelic-agent-control\local-data\agent-control\local_config.yamlRemotearquivo de configuração:C:\ProgramData\New Relic\newrelic-agent-control\fleet-data\agent-control\remote_config.yaml(sincronizado do Fleet Control)- Executável do serviço:
C:\Program Files\New Relic\newrelic-agent-control\newrelic-agent-control.exe - Diretório de logs:
C:\ProgramData\New Relic\newrelic-agent-control\logs\
Por padrão, o Agent Control no Windows pode orquestrar o agente de infraestrutura e o coletor do OpenTelemetry:
# Configures the integration with Fleet Controlfleet_control: endpoint: https://opamp.service.newrelic.com/v1/opamp headers: api-key: YOUR_INGEST_KEY auth_config: token_url: "https://system-identity-oauth.service.newrelic.com/oauth2/token" client_id: "YOUR_CLIENT_ID" provider: "local" private_key_path: "path\\to\\key"
# Configures the agents to be supervised by Agent Controlagents: # Agent name (RFC-1035 valid label) nr-infra-agent: # The supported agent type and agent type version agent_type: "newrelic/com.newrelic.infrastructure:0.1.0" nr-otel-collector: agent_type: "newrelic/com.newrelic.opentelemetry.collector:0.1.0"Dica
Para contas regionais, use o endpoint apropriado e token_url:
- Região da UE:
https://opamp.service.eu.newrelic.com/v1/opampehttps://system-identity-oauth.service.eu.newrelic.com/oauth2/token - Região do JP:
https://opamp.service.jp.newrelic.com/v1/opampehttps://system-identity-oauth.service.jp.newrelic.com/oauth2/token
Você pode renomear ou remover qualquer agente com base em seus requisitos de observabilidade. O nome do agente deve ser um nome de rótulo RFC-1035 válido.
Notas de configuração específicas para Windows
- Caminhos de arquivo usam barras invertidas (
\\) e caminhos no estilo Windows (por exemplo,C:\\ProgramData\\...) - Binários do agente usam extensões
.exe - O serviço é executado como
LocalSystem— certifique-se de que os arquivos de configuração tenham permissões de gravação restritas - Templates e configurações de ambientes Linux podem exigir ajustes de caminho para compatibilidade com o Windows
Configurar agentes
O Agent Control no Windows pode atualmente gerenciar os seguintes tipos de agente:
- Agente de infraestrutura do New Relic:
newrelic/com.newrelic.infrastructure. Suporta integrações no host e encaminhamento de logs via Fluent Bit integrado. - Distribuição New Relic para OpenTelemetry:
newrelic/com.newrelic.opentelemetry.collector
Para personalizar a configuração local do agente, coloque um arquivo values.yml no diretório de valores do agente. As variáveis disponíveis são as mesmas que para hosts Linux.
Configuração de amostra
Configuração remota com Fleet Control
Provedores de valor
Os provedores de valor permitem que o Controle do agente resolva valores de fontes externas quando uma configuração é renderizada, para que dados sensíveis, como chaves de licença, tokens ou senhas, não precisem ser codificados diretamente em seus arquivos de configuração.
Os valores são referenciados com a sintaxe de espaço reservado ${NAMESPACE:NAME} dentro das configurações do agente. O Agent Control os resolve toda vez que uma configuração é aplicada, incluindo atualizações de configuração remota, para que os valores rotacionados sejam obtidos sem reiniciar o Agent Control.
Importante
Se o Agent Control falhar ao resolver um valor, a renderização da configuração falha e o agente não é iniciado. Isso evita que os agentes sejam executados com configurações incompletas ou incorretas.
Após uma resolução bem-sucedida, o Agent Control armazena o resultado renderizado em um secret do Kubernetes ou em um arquivo de configuração privado para uso pelo agente correspondente.
Provedores de valores suportados
Fornecedor | Namespace de espaço reservado | Requer configuração |
|---|---|---|
Variáveis ambientais |
| Não |
HashiCorp Vault |
| Sim |
Arquivos locais |
| Não |
Segredos do Kubernetes |
| Não |
ConfigMaps do Kubernetes |
| Não |
Configurando provedores de valor
Apenas o HashiCorp Vault requer configuração explícita. Defina-o sob a chave value_providers da configuração de Agent Control. A chave legada secrets_providers ainda é aceita como um alias.
value_providers: vault: sources: local-instance: url: http://localhost:8200/v1/ token: root engine: kv2 remote: url: http://my-remote-server:8200/v1/ token: root engine: kv1 client_timeout: 10s
fleet_control: ...
agents: ...Cada entrada em sources define uma fonte do Vault nomeada com as seguintes configurações:
Chave YAML | Obrigatório | Descrição |
|---|---|---|
| Sim | URL completa do Vault, incluindo o caminho |
| Sim | Token usado para autenticar no endpoint. |
| Sim | Versão do secrets engine: |
| Não | Tempo limite HTTP para requests do Vault. O padrão é |
Variáveis ambientais: nr-env
Lê um valor do ambiente do host (disponível para o processo do Agent Control).
config_agent: license_key: "${nr-env:NEW_RELIC_LICENSE_KEY}"HashiCorp Vault: nr-vault
Lê uma chave de um segredo KV do Vault. Requer a configuração value_providers.vault descrita acima.
O espaço reservado usa este formato:
"${nr-vault:SOURCE_NAME:MOUNT:PATH:KEY}"SOURCE_NAME: nome da fonte do Vault definida emvalue_providers.MOUNT: nome da montagem do mecanismo secreto.PATH: caminho para o segredo.KEY: chave dentro do segredo a ser recuperada.
Por exemplo:
config_agent: enable_process_metrics: true custom_attributes: username: "${nr-vault:local-instance:secret:my_secret:username}" organization: "${nr-vault:remote:my_mount:my_path:organization}"Aqui, ${nr-vault:local-instance:secret:my_secret:username} recupera o valor da chave username do secret em secret/my_secret usando a fonte local-instance, e ${nr-vault:remote:my_mount:my_path:organization} recupera a chave organization da fonte remote.
Arquivos locais: nr-file
Lê o conteúdo de um arquivo local, removendo os espaços em branco iniciais e finais.
O espaço reservado recebe o caminho absoluto para o arquivo:
config_agent: license_key: "${nr-file:/etc/newrelic/license.key}"Segredos do Kubernetes: nr-kubesec
Lê uma chave de um segredo do Kubernetes. Disponível apenas no Kubernetes e não requer configuração adicional, desde que o pod de Controle do Agente tenha permissões, por meio de uma conta de serviço e RBAC, para acessar os segredos e namespaces necessários.
O espaço reservado usa este formato:
"${nr-kubesec:NAMESPACE:SECRET_NAME:KEY}"NAMESPACE: o namespace onde o segredo está localizado.SECRET_NAME: nome do objeto secreto do Kubernetes.KEY: chave dentro do segredo a ser recuperada.
Kubernetes ConfigMaps: nr-kubecm
Lê uma chave de um ConfigMap do Kubernetes. Disponível apenas no Kubernetes e não requer configuração adicional, desde que o pod do Agent Control tenha permissões para acessar os ConfigMaps e namespaces necessários.
O espaço reservado usa este formato:
"${nr-kubecm:NAMESPACE:CONFIGMAP_NAME:KEY}"NAMESPACE: namespace onde o ConfigMap está localizado.CONFIGMAP_NAME: nome do objeto ConfigMap do Kubernetes.KEY: chave dentro do ConfigMap a ser recuperada.