• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Configuration du contrôle des agents avec Terraform

|View as Markdown (English)

New Relic Agent Control avec Terraform offre une solution puissante et déclarative pour gérer des flottes d’agents à grande échelle. En utilisant conjointement Terraform et Agent Control, vous pouvez garantir une approche cohérente, reproductible, et évolutive pour déployer l’instrumentation New Relic sur toute votre infrastructure, en particulier lorsque vous gérez plusieurs clusters Kubernetes.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

Conseil

Lors de la configuration d’un nouveau cluster avec Terraform, assurez-vous d’utiliser le même nom de cluster lors de l’installation d’Agent Control.

Compatibilité Kubernetes

Pour savoir quelles versions de Kubernetes sont compatibles avec cette solution, reportez-vous à la section compatibilité dans l'aperçu.

Installation

Si vous n'avez pas vos clientId et clientSecret, utilisez l'appel d'API NerdGraph suivant pour les générer. Cela nécessite votre clé d'administrateur d'utilisateur New Relic et votre ID d'organisation.

bash
$
curl -X POST \
>
https://api.newrelic.com/graphql \
>
-H 'Content-Type: application/json' \
>
-H 'x-api-key: [INSERT_USER_API_KEY]' \
>
--data-raw '{"query": "mutation SICreate { systemIdentityCreate(name: \"User Key for Agent Control\" organizationId: \"[INSERT_YOUR_ORG_ID]\") { clientId clientSecret } }"}' \
>
--compressed

Dans la commande, remplacez les valeurs d'espace réservé par votre organizationId et votre clé utilisateur. Cela renvoie les informations d'identification requises que vous utiliserez dans votre fichier de configuration.

Étape 1 : Créez votre répertoire de projet

Créez un répertoire pour votre projet et placez votre fichier main.tf à l'intérieur. C'est ici que vous définirez vos ressources Terraform. Confirmez que vous avez ajouté le fournisseur Helm à votre fichier Terraform.

Étape 2 : Configurer Terraform avec la sortie Helm

Configurez votre script Terraform avec une sortie Helm qui utilise les graphiques de New Relic pour le contrôle des agents. L'exemple suivant montre une configuration de base :

provider "helm" {
kubernetes {
config_paths = [
"~/.kube/config"
]
}
}
resource "helm_release" "newrelic" {
name = "agent-control"
repository = "https://newrelic.github.io/helm-charts/"
chart = "agent-control"
namespace = "newrelic"
create_namespace = "true"
values = [
file("./values-newrelic.yaml")
]
}

Notez que le script Terraform fait référence à un fichier values-newrelic.yaml . Il s'agit du fichier de configuration de contrôle de l'agent New Relic qui sera utilisé pour configurer le contrôle de l'agent. Il n’est pas nécessaire qu’il se trouve dans le même répertoire que le script Terraform. Vous pouvez le référencer à partir de n'importe quel emplacement en fournissant le chemin correct dans la fonction file() dans l'attribut values de la ressource helm_release .

Ou, si vous placez le fichier values-newrelic.yaml directement dans le répertoire du projet Terraform, le script main.tf le référencera automatiquement.

Voici un exemple de fichier values-newrelic.yaml de base sans configuration supplémentaire incluse :

global:
cluster: [YOUR_CLUSTER_NAME]
licenseKey: [YOUR_INGEST_LICENSE_KEY]
agentControlDeployment:
chartValues:
systemIdentity:
organizationId: [ORG_ID]
parentIdentity:
clientId: [YOUR_IDENTITY_CLIENT_ID]
clientSecret: [YOUR_IDENTITY_CLIENT_SECRET]
config:
fleet_control:
# optional
fleet_id: [YOUR_FLEET_ENTITY_GUID]
log:
level: trace

Pour explorer tous les paramètres de configuration disponibles, reportez-vous à values-newrelic.yaml.

Étape 3 : Exécuter les commandes Terraform

Initialisez Terraform, examinez le plan et appliquez les modifications.

bash
$
# Initialize Terraform
$
terraform init
bash
$
# Review the changes before applying
$
terraform plan
bash
$
# Apply the changes to your cluster
$
terraform apply

Étape 5 : Vérifier l’installation

Vérifiez que le module de contrôle de l'agent et tous les agents configurés fonctionnent correctement dans leur espace de nommage respectif.

bash
$
# Check Agent Control pods
$
kubectl get pods -n newrelic
bash
$
# Check pods in the agent namespace, e.g., 'newrelic-agents'
$
kubectl get pods -n newrelic-agents

Configuration

Dans le fichier values-newrelic.yaml , vous pouvez configurer Agent Control pour déployer plusieurs agents de monitoring. Voici un exemple montrant le déploiement de plusieurs agents, notamment :

  • Infrastructure : agent infrastructure de New Relic
  • Logs : agent de logs de Fluent Bit
  • OpenTelemetry: la distribution New Relic du Collector OpenTelemetry
  • Gateway : agent de gateway New Relic Contrôle de pipeline
agentControlDeployment:
chartValues:
systemIdentity:
organizationId: "****"
parentIdentity:
clientId: [YOUR_IDENTITY_CLIENT_ID]
clientSecret: [YOUR_IDENTITY_CLIENT_SECRET]
config:
agents:
infrastructure:
agent_type: newrelic/com.newrelic.infrastructure:0.1.0
logs:
agent_type: newrelic/io.fluentbit:0.1.0
agent-operator:
agent_type: com.newrelic.k8s_agent_operator:0.1.0
open-telemetry:
agent_type: newrelic/com.newrelic.opentelemetry.collector:0.1.0
gateway:
agent_type: newrelic/com.newrelic.pipeline_control_gateway:0.1.0
agentsConfig:
infrastructure:
chart_version: "*"
chart_values:
newrelic-infrastructure:
enableProcessMetrics: true
logs:
# Ref: `https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging`
# Recommended: check and define an explicit chart version (latest stable)
chart_version: "*"
chart_values:
newrelic-logging:
sendMetrics: true
agent-operator:
chart_version: "*"
open-telemetry:
# Ref: `https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/values.yaml`
# Recommended: check and define an explicit chart version (latest stable)
chart_version: "*"
chart_values:
nr-k8s-otel-collector:
receivers.filelog.enabled: false
gateway:
chart_version: "*"
chart_values:
gateway:
autoscaling:
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70

Important

Important : pour l'environnement de production, nous recommandons fortement d'utiliser un chart_version spécifique et épinglé au lieu d'un caractère générique (*). Cela garantit des mises à jour cohérentes et prévisibles, évitant ainsi tout comportement inattendu ou toute modification radicale.

Désinstaller

Important

Supprimer une ressource de sortie Helm de votre configuration Terraform est une action destructrice. Lorsque vous exécutez terraform apply après cette modification, Terraform désinstallera le graphique et détruira toutes les ressources associées, ce qui peut entraîner une perte de données. Avant de procéder, assurez-vous de bien comprendre l’impact potentiel sur votre environnement :

  • Passez en revue toutes les dépendances et tous les services qui pourraient être touchés.
  • Pensez à sauvegarder toutes les données persistantes ou la configuration liée à la sortie.
  • Confirmez que la suppression de cette sortie est nécessaire et correspond à votre stratégie de gestion infrastructure . Soyez toujours prudent lorsque vous apportez des modifications importantes à votre infrastructure et assurez-vous de disposer de procédures de restauration appropriées en cas de problème.

Pour désinstaller Agent Control :

  1. Supprimez le bloc de ressources helm_release pour newrelic_agent_control de votre fichier main.tf .
  2. Exécutez terraform plan pour examiner les modifications. Examinez attentivement la sortie du plan pour vous assurer que seules les ressources prévues sont marquées pour suppression.
  3. Exécutez terraform apply et confirmez l'exécution pour désinstaller la sortie. Cela mettra en œuvre les modifications prévues, supprimant ainsi efficacement la sortie Helm spécifiée de votre environnement.

Confirmez l'exécution lorsque vous êtes invité à terminer le processus de désinstallation.

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.