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
Actualmente, agente Control solo es compatible con Kubernetes. La configuración y los ejemplos proporcionados en este documento son específicos de este entorno.
agente Control proporciona dos métodos para gestionar la configuración del agente:
Configuración local: un archivo
values.yaml
completo 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_values
individuales 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 .
callout.warning
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
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
.
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
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
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:
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: