Importante
O agente Control e New Relic Control agora estão disponíveis para Kubernetes! O suporte para hosts Linux também está no programa de visualização pública, de acordo 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 agente Control fornece um mecanismo robusto para gerenciar dados confidenciais, como senhas e chaves de API, recuperando-os de provedores secretos dedicados. Isso garante que informações confidenciais não sejam codificadas diretamente em arquivos de configuração. O sistema atualmente suporta os seguintes provedores secretos:
- HashiCorp Vault: referido como 
nr-vaultna configuração. - Secrets Kubernetes : referidos como 
nr-kubesecna configuração. 
Definindo segredos na configuração
Para utilizar segredos, defina-os no arquivo YAML de configuração do Agente Control seguindo estas etapas:
- Defina a seção 
secrets_providers: configure seus provedores secretos centralmente nesta seção. Certifique-se de que cada entrada corresponda a um provedor suportado. - Configurar fontes secretas: para cada provedor, especifique uma ou mais fontes. Uma fonte inclui os detalhes de configuração necessários (por exemplo, URL, token) para que o Agente Control se conecte e recupere um grupo de segredos.
 - Utilize o espaço reservado na configuração do agente: Em vez dos dados confidenciais reais, utilize uma string de espaço reservado na configuração do seu agente. O agente Control substitui automaticamente esses espaços reservados pelos segredos recuperados durante o processo de renderização.
 
Importante
Se o agente Control não conseguir recuperar um segredo, a renderização da configuração falhará e o agente não será executado. Este é um recurso de segurança crítico para evitar que o agente seja executado com configuração incompleta ou incorreta.
O exemplo de configuração do agente Control a seguir demonstra como recuperar segredos de duas fontes do Vault dentro da seção secrets_providers :
secrets_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
fleet_control:  ...
agents:  ...Usando segredos em uma configuração de agente
Depois que as fontes forem definidas, você poderá referenciar o segredo em uma configuração de agente usando uma sintaxe de espaço reservado específica com o caminho correto. O agente Control recupera o segredo e o usa para renderizar o arquivo de configuração final que o agente usará.
Exemplo de configuração de agente utilizando segredos com espaço reservado:
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}"Neste exemplo:
O espaço reservado ${nr-vault:local-instance:secret:my_secret:username} instrui o agente Control a recuperar o valor associado à chave username do segredo no caminho secret/my_secret usando a fonte do provedor de segredo local-instance. O espaço reservado ${nr-vault:remote:my_mount:my_path:organization} recupera de forma semelhante o valor da chave organization da fonte remota.
Após a recuperação bem-sucedida, o agente Control renderiza esses segredos da origem e do caminho especificados, armazenando o resultado em um segredo Kubernetes ou em um arquivo de configuração privado para uso pelo agente correspondente.
Segredos do cofre
Configure as fontes do HashiCorp Vault com as seguintes configurações:
Chave YAML  | Descrição  | 
|---|---|
  | URL para solicitar dados  | 
  | Usado para autenticar no endpoint.  | 
  | Especifique   | 
No arquivo de configuração, cada segredo armazenado no Vault pode ser acessado definindo um espaço reservado com:
- source_name: O nome da origem do Vault definida em 
secrets_providers. - mount: O nome da montagem do mecanismo secreto.
 - path: O caminho específico para o segredo.
 - specific key: a chave específica dentro do segredo a ser recuperada.
 
Exemplo de formato de espaço reservado completo:
"${nr-vault:source_name:my_mount:my_path:my_value}"Segredos do Kubernetes
Se o pod agente-control tiver permissões, como por meio de uma conta de serviço e controle de acesso baseado em função (RBAC), para acessar os segredos e o namespace necessários, o agente Control poderá acessar os segredos diretamente da API Kubernetes sem precisar de uma configuração de fontes separada.
No arquivo de configuração do agente, recupere cada valor secreto usando um espaço reservado especificando:
- namespace: o namespace do Kubernetes onde o segredo está localizado.
 - name: O nome do objeto secreto do Kubernetes.
 - specific key: a chave específica dentro do segredo da qual recuperar o valor.
 
Por exemplo, use o formato de espaço reservado:
"${nr-kubesec:my_namespace:my_secret:my_value}"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.name: 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  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    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/io.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 agentes
agents:  # 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/io.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/io.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.