avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras políticas de prelanzamiento.
Importante
Agent Control currently only supports Kubernetes. The configurations and examples provided in this document are specific to this environment.
Agent Control provides two methods for managing agent configurations:
Local configuration: A comprehensive
values.yaml
file used during the initial Helm installation.Remote configuration: A centralized, YAML-based configuration you create in New Relic Control that is remotely deployed to your entire fleet.
Remote configuration is the recommended method for day-to-day management. It ensures consistent agent behavior across your environment, simplifies change management, and enables you to scale without manually updating local YAML files on each host.
Sugerencia
The values-newrelic.yaml
file, which traditionally defined New Relic agent settings, now also includes configuration for Agent Control. The parameters you define in this file determine how both Agent Control and its managed agents operate. This file is referred to as the local configuration.
Understanding the two layers of configuration
Agent Control's configuration is structured in two layers:
Agent Control's core configuration: These are the top-level settings that control how Agent Control operates, such as its connection to New Relic, its identity, and fleet management details.
Managed agents' configurations: These are the individual
chart_values
for each subagent (e.g., Infrastructure Agent, Fluent Bit) that Agent Control deploys and manages.
When a local and remote configuration are both present, Agent Control applies the following logic:
- Remote configuration takes precedence. Any settings defined in a remote configuration from New Relic Control will override the corresponding settings in the local
values.yaml
file. - To intentionally override remote settings with your local configuration, you can deploy an empty remote configuration via New Relic Control. This change will apply to all clusters in the selected fleet.
Kubernetes configuration
These instructions and examples apply to Agent Control running on a Kubernetes cluster.
Local values.yaml
configuration for Kubernetes
The local configuration file for Kubernetes, used during installation, contains all the settings for Agent Control and its managed agents.
This example shows the two layers of configuration within a single file.
El ejemplo demuestra cómo configurar el Agent Control junto con dos agentes gestionados: el agente de infraestructura Kubernetes y Fluent Bit para el reenvío de logs. Por ejemplo, si no desea enviar métricas de estado para su recolector de logs Fluent Bit , simplemente configure sendMetrics: false
en el archivo YAML antes de ejecutar el comando de instalación.
Remote configuration for Kubernetes
La configuración remota garantiza un comportamiento consistente del agente en todo su entorno, simplifica la gestión de cambios y le permite escalar la observabilidad sin gestionar manualmente los archivos YAML locales.
Para implementar la configuración de forma centralizada en todo el clúster, defina este mismo contenido YAML en la sección de configuración de Control de flota (Fleet Control). Luego, puede aplicar la configuración a una flota completa de clúster como parte de una implementación remota. Esto se conoce como archivo de configuración remota .
callout.warning
When you define a configuration in the New Relic Control UI, the YAML structure is different. You only provide the YAML that corresponds to the content
block for a single agent.
Sample configurations: Agent Control on Kubernetes
Los siguientes ejemplos muestran cómo configurar el Agent Control para gestionar diferentes conjuntos de agentes. Esta configuración se puede emplear durante la instalación inicial o como parte de una configuración remota en control de flota.
Para explorar todas las configuraciones disponibles, consulte values-newrelic.yaml
.
The following examples show how to configure Agent Control with a set of subagents using the local values.yaml
file.
Agent Control with New Relic infrastructure and Fluent Bit
Este ejemplo implementar Agent Control con monitoreo de infraestructura y Fluent Bit para recolección de logs.
Agent Control with OpenTelemetry and custom collector settings
Este ejemplo despliega el Agent Control con la distribución New Relic del recolector OpenTelemetry (NRDOT) y deshabilita el receptor filelog
en el gráfico Helm gestionadonr-k8s-otel-collector
.
Importante
Security Best Practice: Do not store sensitive values like your license key directly in the configuration. We recommend using a Kubernetes secret. Agent Control can then securely pull these values from the secret at runtime.
Sample configurations: Remote Agent Configurations on Kubernetes
The following examples show how to configure individual agents remotely from the New Relic Control UI.
Configuración remota: New Relic Infrastructure
Este ejemplo muestra cómo configurar de forma remota el agente New Relic Infrastructure para Kubernetes usando control de flota. Habilita la recopilación de métricas del proceso configurando enableProcessMetrics: true
.
Configuración remota: Fluent Bit
Este ejemplo configuró Fluent Bit de forma remota a través de control de flota. Habilita el reporte métrico de salud desde el recolector de logs configurando sendMetrics: true
.
Configuración remota: Prometheus
Este ejemplo configura el agente Prometheus de forma remota usando control de flota. Permite a low-data mode
reducir el volumen de telemetría y desactivar la integración predeterminada.
Configuración remota: OpenTelemetry
This example configures the New Relic OpenTelemetry collector and enable lowDataMode
as a valid option.
Importante
Security Best Practice: Do not store sensitive values like your license key directly in the configuration. We recommend using a Kubernetes secret. Agent Control can then securely pull these values from the secret at runtime.
Proxy configuration for Kubernetes
Agent Control supports proxy configuration to route traffic through corporate proxies. Proxy settings can be set through environment variables or directly in the configuration file.
Precedencia de proxy
Agent Control empleará la configuración de proxy en el siguiente orden de precedencia:
proxy
ampo de configuración en la configuración de Agent ControlHTTP_PROXY
Variable ambientalHTTPS_PROXY
Variable ambiental
Importante
Actualmente, la configuración del proxy no es compatible con la obtención del certificado para la validación de la firma. Si necesita configurar un proxy, tiene estas opciones:
- Agregue una excepción firewall a
https://newrelic.com
para que requests a ese extremo puedan omitir el proxy (recomendado) - Emplee un certificado local a través de
fleet_control.signature_validation.certificate_pem_file_path
(la rotación del certificado debe gestionar manualmente) - Deshabilite la validación de firma configurando
fleet_control.signature_validation.enabled: false
(altamente desaconsejado por razones de seguridad)
Configuración de proxy con certificados autofirmados
Para configuraciones de proxy que emplean autenticación HTTPS con certificados autofirmados, debe proporcionar el paquete de certificados de CA y configurar la autenticación de proxy:
Configuración de proxy para agente gestionado
Advertencia
La configuración de un proxy en Agent Control no configura automáticamente las mismas configuraciones de proxy para el agente que gestiona. Cada agente tiene su propia configuración de proxy que debe configurar por separado según el formato de configuración y los requisitos específicos de ese agente.
Al emplear un proxy, también debe configurar los ajustes del proxy para cada agente gestionado individualmente. Consulte la documentación específica de cada agente para conocer las opciones de configuración del proxy.
Gestión de secretos
Agente Control proporciona un mecanismo estable para gestionar datos confidenciales, como contraseñas y claves de API, recuperándolos de proveedores de secretos dedicados. Esto garantiza que la información confidencial no se codifique directamente en los archivos de configuración. Actualmente, el sistema admite los siguientes proveedores secretos:
- HashiCorp Vault: denominado
nr-vault
en la configuración. - Secretos Kubernetes : denominados
nr-kubesec
en la configuración.
Definición de secretos en la configuración
Para emplear secretos, defínalos dentro de su archivo YAML de configuración de agente-Control siguiendo estos pasos:
- Define la sección
secrets_providers
: configura tus proveedores secretos de forma centralizada en esta sección. Cerciorar de que cada entrada corresponda a un proveedor compatible. - Configurar fuentes secretas: para cada proveedor, especifique una o más fuentes. Una fuente incluye los detalles de configuración necesarios (por ejemplo, URL, token) para que el control del agente se conecte y recupere un grupo de secretos.
- Emplee un marcador de posición en la configuración del agente: en lugar de los datos confidenciales reales, emplee una cadena de marcador de posición dentro de la configuración de su agente. El agente de control reemplaza automáticamente estos marcadores de posición con los secretos recuperados durante el proceso de renderizado.
Importante
Si el control del agente no logra recuperar un secreto, la representación de la configuración fallará y el agente no se ejecutará. Esta es una característica de seguridad crítica para evitar que el agente se ejecute con una configuración incompleta o incorrecta.
El siguiente ejemplo de configuración de control de agente demuestra cómo configurar la recuperación de secretos de dos fuentes de Vault dentro de la sección 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: ...
Uso de secretos en una configuración de agente
Una vez definidas las fuentes, en una configuración de agente, puede hacer referencia al almacén empleando una sintaxis de marcador de posición específica con la ruta correcta. El control del agente recupera el secreto y lo emplea para generar el archivo de configuración final que el agente va a emplear.
Ejemplo de configuración de agente usando el marcador de posición de bóveda:
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}"
En este ejemplo:
El marcador de posición ${nr-vault:local-instance:secret:my_secret:username}
indica al control del agente que recupere el valor asociado con el nombre de usuario clave del secreto en la ruta secret/my_secret
empleando la fuente de bóveda de instancia local. El marcador de posición ${nr-vault:remote:my_mount:my_path:organization}
recupera de manera similar el valor de la clave de organización de la fuente remota.
Luego de una recuperación exitosa, el control del agente procesa estos secretos desde la fuente y ruta especificadas, almacenando el resultado en un archivo de configuración privado o secreto de K8s para que lo use el agente correspondiente.
Secretos de la bóveda
Configure las fuentes de bóveda con las siguientes configuraciones:
Clave YAML | Descripción |
---|---|
| URL para solicitar datos |
| Se emplea para autenticar al extremo. |
| Especifique |
En el archivo de configuración, se puede acceder a cada secreto almacenado en Vault configurando un marcador de posición con:
- source_name: El nombre de la fuente de Vault definida en
secrets_providers
. - mount: El nombre del montaje del motor de secretos.
- path: La ruta específica al secreto.
- specific key: la clave específica dentro del secreto que se va a recuperar.
Ejemplo de formato de marcador de posición completo:
"${nr-vault:source_name:my_mount:my_path:my_value}"
Secretos de Kubernetes
Si el pod de control de agente tiene licencias, como a través de una cuenta de servicio y control de acceso basado en roles (RBAC), para acceder a los secretos y al espacio de nombres necesarios, el control de agente puede acceder directamente a los secretos desde la API Kubernetes sin necesidad de una configuración de fuentes independiente.
En el archivo de configuración del agente, recupere cada valor secreto empleando un marcador de posición que especifique:
- namespace: el namespace Kubernetes donde se encuentra el secreto.
- name: el nombre del objeto secreto de Kubernetes.
- specific key: la clave específica dentro del secreto de la cual se recuperará el valor.
Por ejemplo, emplee el formato de marcador de posición:
"${nr-kubesec:my_namespace:my_secret:my_value}"
Configuración del repositorio privado
Agente Control admite la configuración de un repositorio Helm privado para implementar tanto el propio Agente Control como el agente gestionado. Esto permite entornos en los que no se puede acceder directamente a los gráficos de New Relic Helm.
Advertencia
Al emplear el repositorio privado Helm, los gráficos deben ser compatibles y las imágenes referenciadas dentro de los gráficos deben ser accesibles. De lo contrario, el agente no funcionará como se espera.
1. Habilitar repositorio privado para agente
Por razones de seguridad, solo se permitirá el repositorio habilitado explícitamente en la configuración remota. Para habilitar un repositorio específico, necesita actualizar la configuración del agente Control:
La configuración del repositorio permitida se puede usar luego en su configuración remota dentro de New Relic Control. Ejemplo:
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 name
Además, debe configurar la instalación Helm del agente Control para emplear su repositorio privado si el gráfico agent-control
en sí está en un repositorio privado. Esto es independiente de la configuración del agente gestionado. Consulta el archivo agent-control
Helm chart values.yaml para configurar la sección installationJob
. Específicamente:
chartRepositoryUrl
contiene la URL de su repositorioname
si se emplea un nombre de gráfico diferenterepositorySecretReferenceName
yrepositoryCertificateSecretReferenceName
para autenticación (consulte la sección de autenticación a continuación para obtener más detalles)
2. Configurar la autenticación para el repositorio privado
Necesita configurar recursos adicionales para habilitar la autenticación para acceder a su repositorio privado: