Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Le fichier values-newrelic.yaml
, qui définissait traditionnellement les paramètres de l'agent New Relic, inclut désormais également la configuration du contrôle de l'agent. Les paramètres que vous définissez dans ce fichier déterminent le fonctionnement d'Agent Control et de ses agents gérés. Ce fichier est appelé configuration locale.
Voici un exemple de configuration :
L'exemple montre comment configurer Agent Control avec deux agents gérés :Kubernetes infrastructure l'agent et Fluent Bit pour le transfert de log . Par exemple, si vous ne souhaitez pas envoyer de mesures de santé pour votre Fluent Bit log collecteur, définissez simplement sendMetrics: false
dans le fichier YAML avant d'exécuter la commande d'installation.
Pour déployer la configuration de manière centralisée sur le cluster, définissez ce même contenu YAML dans la section de Configurations de contrôle de la flotte. Vous pouvez ensuite appliquer la configuration à une flotte entière de clusters dans le cadre d’un déploiement à distance. Il s’agit du fichier de configuration à distance .
La configuration à distance garantit un comportement cohérent de l'agent dans votre environnement, simplifie la gestion des changements et vous permet de faire évoluer l'observabilité sans gérer manuellement les fichiers YAML locaux.
Agent Control utilise Kubernetes ConfigMaps
pour stocker et appliquer les paramètres de configuration. Si la configuration locale et la configuration distante sont présentes, configuration à distance est prioritaire par défaut. Pour remplacer intentionnellement les paramètres distants et revenir à configuration locale, vous pouvez déployer une configuration à distance vide via le contrôle de la flotte. Gardez à l’esprit que ce changement s’appliquera à tous les clusters de la flotte sélectionnée.
Pour explorer tous les paramètres de configuration disponibles, reportez-vous à values-newrelic.yaml
.
Exemple de configuration
Les exemples suivants montrent comment configurer Agent Control pour gérer différents ensembles d’agents. Ces configurations peuvent être utilisées soit lors de l'installation initiale, soit dans le cadre d'une configuration à distance dans le contrôle de la flotte.
Infrastructure New Relic et Fluent Bit
Cet exemple déploie Agent Control avec monitoring d'infrastructure et Fluent Bit pour la collecte log .
OpenTelemetry avec paramètres de collecteur personnalisés
Cet exemple déploie Agent Control avec la distribution New Relic d'OpenTelemetry (NRDOT) collecteur et désactive le filelog
Récepteur dans le graphique Helm nr-k8s-otel-collector
géré.
Configuration à distance : infrastructure New Relic
Cet exemple montre comment configurer à distance l'agent New Relic Infrastructure pour Kubernetes à l'aide du contrôle de la flotte. Il permet la collecte de métriques de processus en définissant enableProcessMetrics: true
.
Configuration à distance : Fluent Bit
Cet exemple a configuré Fluent Bit à distance via le contrôle de la flotte. Il active les rapports de métriques de santé à partir du collecteur log en définissant sendMetrics: true
.
Configuration à distance : Prometheus
Cet exemple configure l'agent Prometheus à distance à l'aide du contrôle de la flotte. Il permet à low-data mode
de réduire le volume de télémétrie et de désactiver l'intégration par défaut.
Configuration à distance : OpenTelemetry
Configuration du proxy
Agent Control prend en charge la configuration du proxy pour acheminer le trafic via des proxys d'entreprise ou des intermédiaires réseau. La configuration du proxy peut être définie via des variables d'environnement ou directement dans le fichier de configuration.
Préséance de proxy
Agent Control utilisera les paramètres proxy dans l'ordre de priorité suivant :
proxy
Champ de configuration dans la configuration de Agent ControlHTTP_PROXY
variable d'environnementHTTPS_PROXY
variable d'environnement
Important
La configuration du proxy n'est actuellement pas compatible avec la récupération du certificat pour la validation de la signature. Si vous devez configurer un proxy, vous disposez des options suivantes :
- Ajoutez une exception pare-feu à
https://newrelic.com
afin que requests à ce point de terminaison puissent ignorer le proxy (recommandé) - Utiliser un certificat local via
fleet_control.signature_validation.certificate_pem_file_path
(la rotation des certificats doit être gérée manuellement) - Désactivez la validation de signature en définissant
fleet_control.signature_validation.enabled: false
(fortement déconseillé pour des raisons de sécurité)
Configuration du proxy avec des certificats auto-signés
Pour les configurations de proxy utilisant l'authentification HTTPS avec des certificats auto-signés, vous devez fournir le bundle de certificats CA et configurer l'authentification proxy :
Configuration du proxy pour les agents gérés
Prudence
La configuration d'un proxy dans Agent Control ne configure pas automatiquement les mêmes paramètres de proxy pour les agents qu'il gère. Chaque agent possède sa propre configuration proxy qui doit être définie séparément en fonction du format de configuration et des exigences spécifiques de cet agent.
Lorsque vous utilisez un proxy, vous devez également configurer les paramètres de proxy pour chaque agent géré individuellement. Reportez-vous à la documentation spécifique de chaque agent pour les options de configuration du proxy.
Gestion des secrets
Agent Control fournit un mécanisme robuste pour gérer les données sensibles, telles que les mots de passe et les clés API, en les récupérant auprès de fournisseurs de secrets dédiés. Cela garantit que les informations sensibles ne sont pas codées en dur directement dans les fichiers de configuration. Le système prend actuellement en charge les fournisseurs secrets suivants :
- HashiCorp Vault : appelé
nr-vault
dans la configuration. - Secrets Kubernetes : appelés
nr-kubesec
dans la configuration.
Définition des secrets dans la configuration
Pour utiliser les secrets, définissez-les dans votre fichier YAML de configuration Agent-Control en suivant ces étapes :
- Définissez la section
secrets_providers
: configurez vos fournisseurs de secrets de manière centralisée dans cette section. Assurez-vous que chaque entrée correspond à un fournisseur pris en charge. - Configurer les sources secrètes : pour chaque fournisseur, spécifiez une ou plusieurs sources. Une source inclut les détails de configuration nécessaires (par exemple, URL, jeton) pour que le contrôle de l'agent se connecte et récupère un groupe de secrets.
- Utilisez l'espace réservé dans la configuration de l'agent : au lieu des données sensibles réelles, utilisez une chaîne espace réservé dans configuration de votre agent. Le contrôle de l'agent remplace automatiquement ces espaces réservés par les secrets récupérés lors du processus de rendu.
Important
Si le contrôle de l'agent ne parvient pas à récupérer un secret, le rendu de la configuration échouera et l'agent ne sera pas exécuté. Il s’agit d’une fonctionnalité de sécurité essentielle pour empêcher les agents de s’exécuter avec une configuration incomplète ou incorrecte.
L'exemple de configuration de contrôle d'agent suivant montre comment configurer la récupération de secrets à partir de deux sources Vault dans la section 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: ...
Utilisation des secrets dans une configuration d'agent
Une fois les sources définies, dans une configuration d'agent, vous pouvez référencer le coffre à l'aide d'une syntaxe d'espace réservé spécifique avec le chemin correct. Le contrôle de l'agent récupère le secret et l'utilise pour restituer le fichier de configuration final que l'agent va utiliser.
Exemple de configuration d'agent utilisant l'espace réservé du coffre-fort :
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}"
Dans cet exemple :
L'espace réservé ${nr-vault:local-instance:secret:my_secret:username}
demande au contrôle de l'agent de récupérer la valeur associée au nom d'utilisateur de la clé à partir du secret du chemin secret/my_secret
à l'aide de la source du coffre-fort de l'instance locale. L'espace réservé ${nr-vault:remote:my_mount:my_path:organization}
récupère de la même manière la valeur de la clé d'organisation à partir de la source distante.
Après une récupération réussie, le contrôle de l'agent restitue ces secrets à partir de la source et du chemin spécifiés, en stockant le résultat dans un fichier secret K8s ou un fichier de configuration privé à utiliser par l'agent correspondant.
Les secrets du coffre-fort
Configurez les sources du coffre-fort avec les paramètres suivants :
Clé YAML | Description |
---|---|
| URL pour demander des données |
| Utilisé pour s'authentifier auprès du point de terminaison. |
| Spécifiez |
Dans le fichier de configuration, chaque secret stocké dans Vault est accessible en définissant un espace réservé avec :
- source_name: Le nom de la source Vault définie dans
secrets_providers
. - mount: Le nom du support moteur secret.
- path: Le chemin spécifique vers le secret.
- specific key: La clé spécifique dans le secret à récupérer.
Exemple de format d'espace réservé complet :
"${nr-vault:source_name:my_mount:my_path:my_value}"
Les secrets de Kubernetes
Si le pod de contrôle d'agent dispose d'autorisations, par exemple via un compte de service et un contrôle d'accès basé sur les rôles (RBAC), pour accéder aux secrets et à l'espace de nommage requis, le contrôle d'agent peut accéder directement aux secrets de l'API Kubernetes sans avoir besoin d'une configuration de sources distincte.
Dans le fichier de configuration de l'agent, récupérez chaque valeur secrète à l'aide d'un espace réservé spécifiant :
- namespace: L'espace de nommage Kubernetes où se trouve le secret.
- name: le nom de l'objet secret Kubernetes.
- specific key: La clé spécifique dans le secret à partir de laquelle récupérer la valeur.
Par exemple, utilisez le format d'espace réservé :
"${nr-kubesec:my_namespace:my_secret:my_value}"
Configuration du référentiel privé
Agent Control prend en charge la configuration de Helm privé pour déployer à la fois Agent Control lui-même et les agents gérés. Cela permet des environnements dans lesquels les cartes New Relic Helm ne sont pas directement accessibles.
Prudence
Lors de l'utilisation du référentiel privé Helm, les cartes doivent être compatibles et les images référencées dans les cartes doivent être accessibles. Dans le cas contraire, les agents ne fonctionneront pas comme prévu.
1. Activer le référentiel privé pour les agents
Pour des raisons de sécurité, seul le référentiel explicitement activé sera autorisé en configuration à distance. Pour activer un référentiel spécifique, vous devez mettre à jour la configuration de l'Agent Control :
La configuration référentielle autorisée peut ensuite être utilisée dans votre configuration à distance au sein de New Relic Control. Exemple:
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
De plus, vous devez configurer l'installation Helm d'Agent Control pour utiliser votre référentiel privé si le graphique agent-control
lui-même se trouve dans un référentiel privé. Ceci est distinct de la configuration des agents gérés. Reportez-vous au fichier agent-control
Helm chart values.yaml pour configurer la section installationJob
. Spécifiquement:
chartRepositoryUrl
contenant l'URL de votre référentielname
si vous utilisez un nom de graphique différentrepositorySecretReferenceName
etrepositoryCertificateSecretReferenceName
pour l'authentification (voir la section authentification ci-dessous pour plus de détails)
2. Configurer l'authentification pour le référentiel privé
Vous devez configurer des ressources supplémentaires pour activer l'authentification pour accéder à votre référentiel privé :