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.
Vous pouvez monitorer votre cluster Kubernetes à l'aide d'OpenTelemetry, qui fournit un moyen standardisé de collecter et d'envoyer des données de télémétrie à New Relic. Cette intégration vous permet d'obtenir des informations sur votre environnement Kubernetes, y compris les métriques, les événements et les logs.
New Relic recommande d'utiliser la distribution New Relic d'OpenTelemetry (NRDOT) pour Kubernetes. Cette distribution est préconfigurée pour fonctionner de manière transparente avec New Relic et inclut tous les composants et configurations nécessaires pour monitorer efficacement votre cluster Kubernetes. Cependant, si vous préférez utiliser votre propre collecteur OpenTelemetry, vous pouvez le faire en vous assurant qu'il inclut les composants requis pour le monitoring de Kubernetes.
Exigences
Pour envoyer des données de télémétrie Kubernetes à New Relic, vous avez besoin d'un collecteur OpenTelemetry. Notre NRDOT est configuré pour monitorer automatiquement votre cluster Kubernetes. Il déploie tous les composants nécessaires via notre chart Helm nr-k8s-otel-collector.
Si vous optez pour un autre collecteur OpenTelemetry, assurez-vous qu'il inclut tous les composants clés pour une monitoring complet de Kubernetes :
Notre monitoring OpenTelemetry pour Kubernetes offre une prise en charge robuste dans divers environnements de déploiement. Les plateformes prises en charge incluent :
Fournisseurs Cloud :
Amazon EKS
Microsoft AKS
Google GKE
Oracle OKE
Red Hat OpenShift
Clusters sur site : Nous prenons en charge les clusters Kubernetes sur site.
Versions de Kubernetes : la prise en charge s'aligne sur les versions de Kubernetes actuellement supportées par chaque fournisseur, garantissant la compatibilité et des solutions de monitoring efficaces dans ces environnements.
Important
Les nœuds Windows ne sont pas pris en charge.
Installez votre cluster Kubernetes avec OpenTelemetry
Vous pouvez installer OpenTelemetry pour Kubernetes à l'aide de l'une des méthodes suivantes :
La méthode d'installation Helm est l'approche recommandée pour déployer OpenTelemetry sur Kubernetes. Cette méthode simplifie le processus de déploiement et facilite la gestion de la configuration. Vous pouvez utiliser soit le NRDOT, soit votre propre collecteur OpenTelemetry.
New Relic recommande d'utiliser le NRDOT pour Kubernetes, qui est préconfiguré pour fonctionner de manière transparente avec New Relic. Cette distribution comprend tous les composants et configurations nécessaires pour monitorer efficacement votre cluster Kubernetes. Cependant, si vous préférez utiliser votre propre collecteur OpenTelemetry, vous pouvez le faire en vous assurant qu'il inclut les composants requis pour le monitoring de Kubernetes.
Vous devriez voir des pods avec des noms tels que nr-k8s-otel-collector-<hash> dans l'espace de noms newrelic.
Vérifiez que New Relic reçoit les données nécessaires, y compris les métriques, les événements et les logs, en exécutant les requêtes suivantes. Pour plus d'informations, consultez l'Introduction au générateur de requêtes.
FROM Metric SELECT*WHERE k8s.cluster.name='<CLUSTER_NAME>'
FROM OtlpInfrastructureEvent SELECT*WHERE k8s.cluster.name='<CLUSTER_NAME>'
FROM Log SELECT*WHERE k8s.cluster.name='<CLUSTER_NAME>'
Conseil
Si vous souhaitez utiliser un autre collecteur OpenTelemetry pour collecter les données de télémétrie Kubernetes, mettez à jour les paramètres image dans votre fichier values.yaml pour spécifier le collecteur OpenTelemetry souhaité :
image:
repository: otel/opentelemetry-collector-contrib # Example: Using the contrib distro
tag:"latest"# Or a specific stable version like "0.98.0"
La méthode d'installation par manifeste permet de configurer OpenTelemetry pour Kubernetes sans utiliser Helm. Cette méthode convient aux utilisateurs qui préfèrent une approche plus pratique ou qui ont des exigences spécifiques nécessitant une configuration manuelle.
Pour effectuer une installation de manifeste :
Copiez le contenu du répertoire d'exemples rendus du nr-k8s-otel-collector dans votre espace de travail local. Ce répertoire contient les fichiers manifestes Kubernetes.
Mettez à jour le fichier secret.yaml dans votre répertoire rendered local. Remplacez <Your Base64 encoded License key> par votre clé de licence New Relic, encodée en Base64.
Windows (PowerShell) : Utilisez [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("YOUR_LICENSE_KEY")).
Mettez à jour manuellement le nom de votre cluster dans les fichiers daemonset-configmap.yaml et deployment-configmap.yaml de votre répertoire local rendered. Localisez les instances de k8s.cluster.name et remplacez <cluster_name> par le nom souhaité pour votre cluster.
-key: k8s.cluster.name
action: upsert
value: <cluster_name>
Après avoir mis à jour ces champs requis, créez l'espace de noms newrelic et déployez les manifestes sur votre cluster à l'aide de kubectl.
bash
$
kubectl create namespace newrelic
$
kubectl apply -n newrelic -R-f rendered
Conseil
Lors d'un déploiement sans Helm, les composants déployés via les manifestes rendus peuvent inclure un préfixe, tel que example-. Ce préfixe est généralement utilisé dans les modèles de charts Helm pour le nommage dynamique basé sur le nom de la release Helm. Si vous préférez des conventions de nommage plus claires, vous pouvez ajuster ces préfixes directement dans les fichiers manifestes avant de les appliquer.
Paramètres de configuration dans values.yaml
Le fichier values.yaml dans le dépôt de charts Helm nr-k8s-otel-collector contient tous les paramètres de configuration que vous pouvez utiliser pour personnaliser votre déploiement OpenTelemetry Collector. Ce fichier vous permet de définir diverses options, telles que le nom du cluster, la clé de licence et d'autres paramètres du collecteur.
et que vous ne fournissez pas votre propre instance de Kube State Metrics (KSM) version 1.8 ou ultérieure. Les versions 2.0 et ultérieures de KSM désactivent par défaut les métriques de labels et d'annotations ; vous pouvez les activer en utilisant les options
metricLabelsAllowlist
ou
metricAnnotationsAllowList
dans votre configuration KSM.
true
kube-state-metrics.prometheusScrape
Booléen
Empêche Prometheus de découvrir automatiquement les endpoints KSM. Cela permet d'éviter la duplication potentielle des données collectées si KSM est déjà monitoré par une autre instance Prometheus.
false
provider
Chaîne
Spécifie le fournisseur cloud ou l'environnement où votre cluster Kubernetes est déployé. Ce paramètre définit des contraintes de configuration connues spécifiques à votre fournisseur. Actuellement, les valeurs prises en charge sont
"GKE_AUTOPILOT"
pour les clusters Google Kubernetes Engine Autopilot et
"OPEN_SHIFT"
pour Red Hat OpenShift.
"GKE_AUTOPILOT"
image.repository
Chaîne
Définit le dépôt d'images Docker pour le collecteur OpenTelemetry. Vous pouvez spécifier votre propre image de collecteur, à condition qu'elle réponde aux exigences nécessaires pour le monitoring de Kubernetes.
"newrelic/nrdot-collector-k8s"
image.pullPolicy
Chaîne
Détermine la politique de récupération de l'image. La valeur par défaut est
IfNotPresent
, qui évite de télécharger une image si elle existe déjà localement. Si ce paramètre est défini sans valeur spécifique, sa valeur par défaut est
Always
.
"IfNotPresent"
image.tag
Chaîne
Remplace le tag de l'image par défaut. Par défaut, le tag est défini sur
appVersion
du graphique. Utilisez ce paramètre pour spécifier une version particulière de l'image du collecteur.
"1.1.0"
cluster
Chaîne
Définit le nom du cluster Kubernetes monitoré. Ceci est un paramètre obligatoire. Vous pouvez également le configurer à l'aide de
global.cluster
.
"my-eks-cluster"
licenseKey
Chaîne
Spécifie votre clé de licence New Relic pour l'authentification. Ceci est un paramètre obligatoire. Vous pouvez également le configurer à l'aide de
global.licenseKey
.
"NRAL-ABCDEFGHIJKLMN"
customSecretName
Chaîne
Spécifie le nom d'un Secret Kubernetes créé par l'utilisateur qui contient la clé de licence New Relic. Utilisez cette option si vous préférez ne pas inclure la clé de licence directement dans votre fichier
values.yaml
. Vous pouvez également le configurer à l'aide de
global.customSecretName
.
"my-nr-license-secret"
customSecretLicenseKey
Chaîne
Spécifie la clé dans le Secret Kubernetes (défini par
customSecretName
) où se trouve la clé de licence. Utilisez cette option lorsque vous obtenez la clé de licence à partir d'un Secret. Vous pouvez également le configurer à l'aide de
global.customSecretLicenseKey
.
"licenseKey"
proxy
Chaîne
Configure les instances de l'OpenTelemetry Collector (Daemonset et Deployment) pour envoyer toutes les données de télémétrie via le proxy HTTP/HTTPS spécifié.
"http://your-proxy.example.com:3128"
podLabels
Map (clé-valeur)
Spécifie les étiquettes supplémentaires à ajouter à tous les pods du chart. Ces étiquettes peuvent être utilisées pour organiser et sélectionner des ressources Kubernetes.
{app.kubernetes.io/component: "otel-collector"}
labels
Map (clé-valeur)
Spécifie les étiquettes supplémentaires à ajouter à tous les objets Kubernetes créés par le chart. Ces étiquettes s'appliquent largement aux déploiements, aux services et aux autres ressources.
{environment: "production"}
priorityClassName
Chaîne
Définit le
priorityClassName
pour tous les pods déployés par le chart. Ceci contrôle la priorité de planification des pods. Vous pouvez également le configurer à l'aide de
global.priorityClassName
.
"system-cluster-critical"
dnsConfig
Map (clé-valeur)
Définit le
dnsConfig
pour tous les pods déployés par le chart. Cela permet de définir des paramètres DNS personnalisés pour les pods. Vous pouvez également le configurer à l'aide de
global.dnsConfig
.
{nameservers: ["8.8.8.8"]}
daemonset.nodeSelector
Map (clé-valeur)
Définit le sélecteur de nœud pour les pods DaemonSet, contrôlant les nœuds sur lesquels ils sont planifiés. Ce paramètre surcharge les sélecteurs de nœuds globaux.
{kubernetes.io/os: "linux"}
daemonset.tolerations
List
Spécifie les tolérances pour les pods du DaemonSet, leur permettant d'être planifiés sur des nœuds avec des taints correspondants. Ce paramètre remplace les tolérances globales.
Configure les affinités pour les pods DaemonSet, influençant leur planification en fonction des labels de nœud ou de pod. Ce paramètre remplace les affinités globales.
Spécifie les annotations supplémentaires à ajouter aux pods du Daemonset.
{prometheus.io/scrape: "true"}
daemonset.podSecurityContext
Map (clé-valeur)
Définit le contexte de sécurité au niveau du pod pour le Daemonset. Ce paramètre surcharge les contextes de sécurité globaux des pods.
{runAsUser: 1000}
daemonset.containerSecurityContext
Map (clé-valeur)
Définit le contexte de sécurité au niveau du conteneur pour le DaemonSet. Ce paramètre remplace les contextes de sécurité globaux de conteneur. Ce graphique a pour valeur par défaut
privileged: false
.
{privileged: false}
daemonset.resources
Map (clé-valeur)
Définit les ressources de calcul (requêtes et limites de CPU et de mémoire) pour les conteneurs du DaemonSet.
Spécifie les variables d'environnement supplémentaires à définir pour les conteneurs du DaemonSet.
[{name: "DEBUG_MODE", value: "true"}]
daemonset.envsFrom
List
Spécifie des sources de variables d'environnement supplémentaires pour les conteneurs du DaemonSet, généralement issues de Secrets ou de ConfigMaps.
[{secretRef: {name: "my-daemonset-secret"}}]
daemonset.configMap.overrideConfig
Map (clé-valeur)
Fournit une configuration OpenTelemetry complète pour le Daemonset. S'il est défini, ce paramètre remplace la configuration par défaut et désactive les autres paramètres de configuration spécifiques au DaemonSet.
Spécifie la configuration OpenTelemetry supplémentaire pour le Daemonset. Si défini, ce paramètre étend la configuration par défaut en ajoutant des récepteurs, processeurs, exportateurs, connecteurs ou pipelines supplémentaires.
receivers: {custom_receiver: {}}
deployment.nodeSelector
Map (clé-valeur)
Définit le sélecteur de nœud pour les pods de déploiement, contrôlant les nœuds sur lesquels ils sont planifiés. Ce paramètre remplace les sélecteurs de nœuds globaux.
{kubernetes.io/hostname: "control-plane-node"}
deployment.tolerations
List
Spécifie les tolérances pour les pods de déploiement, leur permettant d'être planifiés sur des nœuds ayant des teintes correspondantes. Ce paramètre remplace les tolérances globales.
[{key: "CriticalAddonsOnly", operator: "Exists"}]
deployment.affinity
Map (clé-valeur)
Configure les affinités pour les pods du Deployment, influençant leur ordonnancement en fonction des étiquettes de nœud ou de pod. Ce paramètre remplace les affinités globales.
Spécifie les variables d'environnement supplémentaires à définir pour les conteneurs du déploiement.
[{name: "ENV_VAR", value: "some_value"}]
deployment.envsFrom
List
Spécifie des sources de variables d'environnement supplémentaires pour les conteneurs du Déploiement, généralement à partir de Secrets ou de ConfigMaps.
[{configMapRef: {name: "my-deployment-config"}}]
deployment.configMap.overrideConfig
Map (clé-valeur)
Fournit une configuration OpenTelemetry complète pour le déploiement. S'il est défini, ce paramètre remplace la configuration par défaut et désactive les autres paramètres de configuration spécifiques au Déploiement.
Spécifie la configuration OpenTelemetry supplémentaire pour le Déploiement. Si défini, ce paramètre étend la configuration par défaut en ajoutant des récepteurs, processeurs, exportateurs, connecteurs ou pipelines supplémentaires.
exporters: {log: {verbosity: "detailed"}}
nodeSelector
Map (clé-valeur)
Définit le sélecteur de nœud pour tous les pods déployés par le chart, affectant à la fois le DaemonSet et le Deployment. Ce paramètre peut également être configuré à l'aide de
global.nodeSelector
.
{disktype: "ssd"}
tolerations
List
Définit les tolérances pour tous les pods déployés par le chart, leur permettant d'être planifiés sur des nœuds ayant des teintes correspondantes. Ce paramètre peut également être configuré à l'aide de
Configure les affinités pour tous les pods déployés par le chart, influençant leur ordonnancement en fonction des étiquettes de nœud ou de pod. Ce paramètre peut également être configuré à l'aide de
Définit le contexte de sécurité au niveau du pod pour tous les pods déployés par le chart. Ce paramètre peut également être configuré à l'aide de
global.securityContext.pod
.
{runAsGroup: 3000}
containerSecurityContext
Map (clé-valeur)
Définit le contexte de sécurité au niveau du conteneur pour tous les conteneurs des pods déployés par le chart. Ce paramètre peut également être configuré à l'aide de
global.securityContext.container
.
{allowPrivilegeEscalation: false}
rbac.create
Booléen
Spécifie si les ressources de contrôle d'accès basé sur les rôles (RBAC), telles que les comptes de service, les rôles et les RoleBindings, doivent être créées par le chart Helm.
true
ou
false
serviceAccount.create
Booléen
Spécifie si un ServiceAccount Kubernetes doit être créé pour les pods du collecteur. Si défini sur
true
et que
serviceAccount.name
n'est pas spécifié, un nom est généré à l'aide du modèle de nom complet.
true
ou
false
serviceAccount.name
Chaîne
Spécifie un nom personnalisé pour le ServiceAccount. Si non défini et que
serviceAccount.create
est
true
, le graphique génère un nom.
"my-otel-sa"
serviceAccount.annotations
Map (clé-valeur)
Spécifie les annotations supplémentaires à ajouter au ServiceAccount créé.
Active le logging au niveau débogage pour cette intégration. S'il est défini globalement (à l'aide de
global.verboseLog
), cela active les logs de débogage pour toutes les intégrations.
true
ou
false
nrStaging
Booléen
Indique au collecteur d'envoyer toutes les données au backend de staging New Relic. Cette option nécessite une clé de licence de préproduction valide. Ce paramètre peut également être configuré à l'aide de
global.nrStaging
.
true
ou
false
receivers.prometheus.enabled
Booléen
Indique si le récepteur
prometheus
est activé pour la collecte de données.
true
ou
false
receivers.prometheus.scrapeInterval
Chaîne
Définit l'intervalle de scraping pour le récepteur
prometheus
, déterminant la fréquence de collecte des métriques.
1m
receivers.k8sEvents.enabled
Booléen
Indique si le récepteur
k8sEvents
est activé pour collecter les événements Kubernetes.
true
ou
false
receivers.hostmetrics.enabled
Booléen
Indique si le récepteur
hostmetrics
est activé pour la collecte de métriques au niveau de l'hôte.
true
ou
false
receivers.hostmetrics.scrapeInterval
Chaîne
Définit l'intervalle de scrape pour le récepteur
hostmetrics
.
1m
receivers.kubeletstats.enabled
Booléen
Indique si le récepteur
kubeletstats
est activé pour collecter des métriques depuis le Kubelet.
true
ou
false
receivers.kubeletstats.scrapeInterval
Chaîne
Définit l'intervalle de scrape pour le récepteur
kubeletstats
.
1m
receivers.filelog.enabled
Booléen
Indique si le récepteur
filelog
est activé pour collecter des logs à partir de fichiers, généralement des logs de conteneurs.
true
ou
false
lowDataMode
Booléen
Active un mode qui envoie uniquement les métriques essentielles nécessaires pour alimenter l'interface utilisateur Kubernetes de New Relic. Cela permet de réduire le volume d'ingestion de données.
true
ou
false
Alertes
Vous pouvez installer des politiques d'alerte essentielles en suivant le flux d'installation guidée dans Integrations & Agents. Cela configure automatiquement une politique d'alerte nommée politique d'alerte Kubernetes (OpenTelemetry) dans votre compte New Relic avec plusieurs conditions d'alerte conçues pour l'observabilité Kubernetes. Personnalisez ces conditions pour répondre à vos besoins spécifiques de monitoring.
Rechercher et utiliser des données
Consultez ces documents pour en savoir plus sur la façon de trouver des données :