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.
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 Agent Control. El parámetro que defina en este archivo determinará cómo funcionan tanto el Agent Control como su agente gestionado. Este archivo se denomina configuración local.
He aquí un ejemplo de configuración:
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.
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 .
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.
Agent Control emplea Kubernetes ConfigMaps
para almacenar y aplicar ajustes de configuración. Si están presentes tanto la configuración local como la remota, la configuración remota tiene prioridad de forma predeterminada. Para anular intencionalmente la configuración remota y volver a la configuración local, puede implementar una configuración remota vacía a través de control de flota. Tenga en cuenta que este cambio se aplicará a todos los clústeres de la flota seleccionada.
Para explorar todas las configuraciones disponibles, consulte values-newrelic.yaml
.
Configuración de muestra
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.
Infraestructura New Relic y Fluent Bit
Este ejemplo implementar Agent Control con monitoreo de infraestructura y Fluent Bit para recolección de logs.
OpenTelemetry con 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
.
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
Configuración de proxy
Agente Control admite la configuración de proxy para enrutar el tráfico a través de servidores proxy corporativos o intermediarios de red. La configuración del proxy se puede realizar 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: