Importante
¡Agent Control y New Relic Control ahora están disponibles a nivel general para Kubernetes! El soporte para hosts Linux y hosts Windows también se encuentra en el programa de vista previa pública, de conformidad con nuestras políticas de versión preliminar.
Agente Control proporciona un enfoque perfecto para la configuración independientemente del entorno en el que se implementa. Hay dos métodos disponibles para gestionar la configuración del agente:
Configuración local: un archivo
values.yamlcompleto empleado durante la instalación inicial Helm .Configuración remota: una configuración centralizada basada en YAML que usted crea en New Relic Control y que se implementa de forma remota en toda su flota.
La configuración remota es el método recomendado para la gestión diaria. Garantiza un comportamiento consistente del agente en todo su entorno, simplifica la gestión de cambios y le permite escalar sin actualizar manualmente los archivos YAML locales en cada host.
Sugerencia
El archivo values-newrelic.yaml , que tradicionalmente definía la configuración del agente New Relic , ahora también incluye la configuración para el control del agente. El parámetro que defina en este archivo determinará cómo funcionan tanto el agente Control como su agente gestionado. Este archivo se denomina configuración local.
Comprender las dos capas de configuración
La configuración de agente Control se estructura en dos capas:
Configuración principal de Agente Control: estas son las configuraciones de nivel superior que controlan cómo funciona Agente Control, como su conexión a New Relic, su identidad y los detalles de administración de la flota.
Configuración del agente gestionado: Estos son los
chart_valuesindividuales para cada subagente (por ejemplo, agente de infraestructura, Fluent Bit) que el agente Control despliega y gestiona.
Cuando están presentes tanto una configuración local como remota, el Control del agente aplica la siguiente lógica:
- La configuración remota tiene prioridad. Cualquier configuración definida en una configuración remota desde New Relic Control anulará la configuración correspondiente en el archivo local
values.yaml. - Para anular intencionalmente la configuración remota con su configuración local, puede implementar una configuración remota vacía a través de New Relic Control. Este cambio se aplicará a todos los clústeres de la flota seleccionada.
Configuración Kubernetes
Estas instrucciones y ejemplos se aplican al control de agente que se ejecuta en un clúster de Kubernetes.
Configuración local values.yaml para Kubernetes
El archivo de configuración local para Kubernetes, empleado durante la instalación, contiene todas las configuraciones para el agente Control y su agente gestionado.
Este ejemplo muestra las dos capas de configuración dentro de un solo archivo.
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.
Configuración remota para 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 .
Sugerencia
Cuando define una configuración en la UI de control New Relic , la estructura YAML es diferente. Solo proporciona el YAML que corresponde al bloque content para un solo agente.
Configuración de ejemplo: agente Control en Kubernetes
configuración: agente Control en Kubernetes Los siguientes ejemplos muestran cómo configurar agente 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.
Los siguientes ejemplos muestran cómo configurar el control del agente con un conjunto de subagentes empleando el archivo local values.yaml .
Control de agentes con infraestructura New Relic y Fluent Bit
Este ejemplo implementar Agent Control con monitoreo de infraestructura y Fluent Bit para recolección de logs.
Agente Control con OpenTelemetry y configuraciones de recolector personalizadas
con OpenTelemetry y configuraciones de recolector personalizadas Este ejemplo despliega el agente 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
Práctica recomendada de seguridad: no almacene valores confidenciales como su clave de licencia directamente en la configuración. Recomendamos emplear un secreto de Kubernetes. Luego, el control del agente puede extraer de forma segura estos valores del secreto en tiempo de ejecución.
Configuración de ejemplo: configuración de agente remoto en Kubernetes
Los siguientes ejemplos muestran cómo configurar agentes individuales de forma remota desde la UI de New Relic Control.
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
Este ejemplo configura el recolector OpenTelemetry New Relic y habilita lowDataMode como una opción válida.
Importante
Práctica recomendada de seguridad: no almacene valores confidenciales como su clave de licencia directamente en la configuración. Recomendamos emplear un secreto de Kubernetes. Luego, el control del agente puede extraer de forma segura estos valores del secreto en tiempo de ejecución.
Configuración de proxy para Kubernetes
Agente Control admite la configuración de proxy para enrutar el tráfico a través de servidores proxy corporativos. La configuración del proxy se puede establecer a través de variables de entorno o directamente en el archivo de configuración.
Precedencia de proxy
Agent Control empleará la configuración de proxy en el siguiente orden de precedencia:
proxyampo de configuración en la configuración de Agent ControlHTTP_PROXYVariable ambientalHTTPS_PROXYVariable ambiental
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
Agent Control provides a robust mechanism for managing sensitive data, such as passwords and API keys, by retrieving them from dedicated secret providers. This ensures that sensitive information is not hard-coded directly into configuration files. The system currently supports the providers described in Value providers.
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 los repositorios explícitamente habilitados se permiten en la configuración remota. Para habilitar un repositorio específico, actualice la configuración del agente Control de la siguiente manera:
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 nameAdemás, debe configurar la instalación Helm del agente Control para emplear su repositorio privado si el gráfico agent-control-bootstrap en sí está en un repositorio privado. Esto es independiente de la configuración del agente gestionado. Consulta el archivo agent-control-bootstrap Helm chart values.yaml para configurar la sección installationJob de la siguiente manera:
chartRepositoryUrl:La URL que contiene la ubicación de su repositorio.chartName:El nombre del gráfico si se emplea un nombre de gráfico diferente.repositorySecretReferenceNameyrepositoryCertificateSecretReferenceName: Los secretos necesarios para autenticar en su repositorio. Consulte la sección de autenticación a continuación para obtener más detalles.
2. Configurar la autenticación para el repositorio privado
Debe configurar recursos adicionales para habilitar la autenticación para acceder a su repositorio privado de la siguiente manera:
Configuración de Linux
Estas son las rutas predeterminadas para la configuración del control del agente:
Localarchivo de configuración:/etc/newrelic-agent-control/config.yamlRemotearchivo de configuración:/var/lib/newrelic-agent-control/config.yaml(si está habilitado mediante control de flota desplegable)- Definición de servicio:
/lib/systemd/system/newrelic-agent-control.service - Archivo de entorno de servicio:
/etc/newrelic-agent-control/newrelic-agent-control.conf
De forma predeterminada, el agente puede orquestar el agente de infraestructura y el recolector 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"Puede cambiar el nombre o eliminar cualquiera de los agentes según sus requisitos de observabilidad. El nombre del agente debe ser un nombre de etiqueta RFC-1035 válido.
También puede emplear variables de entorno para definir la configuración del agente:
- Emplee el prefijo
NR_(guión bajo único) para apuntar a la configuración principal de Control del agente. - Emplee
__(guiones bajos dobles) para apuntar las configuraciones disponibles en el Control de agente. Esto es necesario para evitar colisiones con claves de configuración que contienen guiones bajos. - Las variables de entorno solo tienen precedencia sobre el archivo de configuración local. Si la configuración remota está habilitada, no se consideran las variables de entorno.
- Por ejemplo, para definir una configuración dinámica para
fleet_control::endpoint, agregueNR_FLEET_CONTROL__ENDPOINT=https://opamp.service.newrelic.com/v1/opampen el archivo de definición de servicio.
Configurar el agente
Actualmente, agente Control puede gestionar los siguientes tipos de agentes predefinidos en el host:
- Agente de infraestructura New Relic :
newrelic/com.newrelic.infrastructure. Se admiten todas las características existentes en el agente de infraestructura, incluida la integración orquestada en el host y nuestro reenviador de integración de logs basado en FluentBit. - Distribución de New Relic para OpenTelemetry:
newrelic/com.newrelic.opentelemetry.collector
Cada tipo de agente ofrece un conjunto de variables opcionales que se pueden personalizar para adaptar su comportamiento. Para personalizar la configuración local del agente:
- Cree un archivo
values.yml: este archivo contendrá los valores de configuración deseados. - Coloque el archivo
values.ymlen el directorio/etc/newrelic-agent-control/fleet/agents.d/YOUR-AGENT-NAME/values/. Aquí,YOUR-AGENT-NAMEes el nombre real de su agente (por ejemplo,nr-infra-agent).
A continuación se muestra una lista de variables disponibles para las últimas versiones del tipo de agente:
- Agente de infraestructura New Relic :
0.1.0 - Distribución de New Relic para OpenTelemetry:
0.1.0
Tipo de agente | Variable | Tipo | Por defecto |
|---|---|---|---|
|
| Un YAML que contiene configuración de agente de infraestructura | (vacío) |
|
| Un mapa YAML (las claves son nombres de archivos) que contiene la configuración de integración en el host | (vacío) |
|
| Un mapa YAML (las claves son nombres de archivos) que contiene el reenvío de configuración de logs | (vacío) |
|
| Puerto para el servidor de estado local del agente de infraestructura |
|
|
| Configuración del recopilador OpenTelemetry (en formato YAML) | (vacío) |
|
| Ruta y puerto para la extensión de verificación del estado del recolector OTel local http extremo |
|
Todos los agentes gestionados |
| Tiempo hasta el próximo reintento si el recolector no se inicia (en segundos). |
|
Sugerencia
Puede configurar los ajustes del agente de infraestructura y los ajustes del recolectorOpenTelemetry según sea necesario siguiendo la configuración compatible.
Configuración de muestra
Configuración remota con control de flota
Los siguientes ejemplos contienen casos de uso comunes que están listos para copiar y pegar como configuración válida para el agente de control y el agente gestionado.
Configuración de Windows
Estas son las rutas predeterminadas para la configuración de Agent Control en Windows:
Localarchivo de configuración:C:\Program Files\New Relic\newrelic-agent-control\local-data\agent-control\local_config.yamlRemotearchivo de configuración:C:\ProgramData\New Relic\newrelic-agent-control\fleet-data\agent-control\remote_config.yaml(sincronizado desde Fleet Control)- Ejecutable del servicio:
C:\Program Files\New Relic\newrelic-agent-control\newrelic-agent-control.exe - Directorio de logs:
C:\ProgramData\New Relic\newrelic-agent-control\logs\
De forma predeterminada, Agent Control en Windows puede orquestar el agente de infraestructura y el colector de 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"Sugerencia
Para cuentas regionales, use el extremo apropiado y token_url:
- Región de la UE:
https://opamp.service.eu.newrelic.com/v1/opampyhttps://system-identity-oauth.service.eu.newrelic.com/oauth2/token - Región de JP:
https://opamp.service.jp.newrelic.com/v1/opampyhttps://system-identity-oauth.service.jp.newrelic.com/oauth2/token
Puede cambiar el nombre o eliminar cualquiera de los agentes según sus requisitos de observabilidad. El nombre del agente debe ser un nombre de etiqueta RFC-1035 válido.
Notas de configuración específicas de Windows
- Las rutas de archivo usan barras invertidas (
\\) y rutas estilo Windows (por ejemplo,C:\\ProgramData\\...) - Los binarios del agente usan extensiones
.exe - El servicio se ejecuta como
LocalSystem— asegúrese de que los archivos de configuración tengan permisos de escritura restringidos - Las plantillas y configuraciones de entornos Linux pueden requerir ajustes de ruta para la compatibilidad con Windows
Configurar agentes
Agent Control en Windows actualmente puede gestionar los siguientes tipos de agentes:
- Agente de infraestructura de New Relic:
newrelic/com.newrelic.infrastructure. Admite integraciones en el host y reenvío de logs a través de Fluent Bit integrado. - Distribución de New Relic para OpenTelemetry:
newrelic/com.newrelic.opentelemetry.collector
Para personalizar la configuración local del agente, coloque un archivo values.yml en el directorio de valores del agente. Las variables disponibles son las mismas que para los hosts de Linux.
Configuración de muestra
Configuración remota con Fleet Control
Value providers
Value providers allow Agent Control resolve values from external sources when a configuration is rendered, so sensitive data such as license keys, tokens, or passwords doesn't need to be hard-coded in your configuration files.
Values are referenced with the ${NAMESPACE:NAME} placeholder syntax inside agent configurations. Agent Control resolves them every time a configuration is applied, including remote configuration updates, so rotated values are picked up without restarting Agent Control.
Importante
If Agent Control fails to resolve a value, the configuration rendering fails and the agent isn't started. This prevents agents from running with incomplete or incorrect configurations.
After a successful resolution, Agent Control stores the rendered result in a Kubernetes secret or in a private configuration file for use by the corresponding agent.
Supported value providers
Proveedor | Placeholder namespace | Requires configuration |
|---|---|---|
Variables de entorno |
| No |
HashiCorp Vault |
| Sí |
Local files |
| No |
Secretos de Kubernetes |
| No |
Kubernetes ConfigMaps |
| No |
Configuring value providers
Only HashiCorp Vault requires explicit configuration. Define it under the value_providers key of the Agent Control configuration. The legacy key secrets_providers is still accepted as an 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: ...Each entry under sources defines a named Vault source with the following settings:
Clave YAML | Requerido | Descripción |
|---|---|---|
| Sí | Full Vault URL, including the |
| Sí | Token used to authenticate against the endpoint. |
| Sí | Secrets engine version: |
| No | HTTP timeout for Vault requests. Defaults to |
Variables de entorno: nr-env
Reads a value from the host environment (available to Agent Control process).
config_agent: license_key: "${nr-env:NEW_RELIC_LICENSE_KEY}"HashiCorp Vault: nr-vault
Reads a key from a Vault KV secret. Requires the value_providers.vault configuration described above.
The placeholder uses this format:
"${nr-vault:SOURCE_NAME:MOUNT:PATH:KEY}"SOURCE_NAME: name of the Vault source defined invalue_providers.MOUNT: name of the secrets engine mount.PATH: path to the secret.KEY: key within the secret to retrieve.
Por ejemplo:
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}"Here, ${nr-vault:local-instance:secret:my_secret:username} retrieves the value of the username key from the secret at secret/my_secret using the local-instance source, and ${nr-vault:remote:my_mount:my_path:organization} retrieves the organization key from the remote source.
Local files: nr-file
Reads the contents of a local file, trimming leading and trailing whitespace.
The placeholder takes the absolute path to the file:
config_agent: license_key: "${nr-file:/etc/newrelic/license.key}"Kubernetes secrets: nr-kubesec
Reads a key from a Kubernetes secret. Available on Kubernetes only, and requires no additional configuration as long as the Agent Control pod has permissions, through a service account and RBAC, to access the required secrets and namespaces.
The placeholder uses this format:
"${nr-kubesec:NAMESPACE:SECRET_NAME:KEY}"NAMESPACE: namespace where the secret is located.SECRET_NAME: name of the Kubernetes secret object.KEY: key within the secret to retrieve.
Kubernetes ConfigMaps: nr-kubecm
Reads a key from a Kubernetes ConfigMap. Available on Kubernetes only, and requires no additional configuration as long as the Agent Control pod has permissions to access the required ConfigMaps and namespaces.
The placeholder uses this format:
"${nr-kubecm:NAMESPACE:CONFIGMAP_NAME:KEY}"NAMESPACE: namespace where the ConfigMap is located.CONFIGMAP_NAME: name of the Kubernetes ConfigMap object.KEY: key within the ConfigMap to retrieve.