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.
Installer et configurer l'intégration New Relic eBPF
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 aperçu conformément à nos politiques de pré-sortie. Il n'est pas disponible pour les clients soumis aux réglementations HIPAA ou FedRAMP.
Vous pouvez installer l'agent New Relic eBPF sur votre cluster Kubernetes pour monitorer l'ensemble de la santé de votre système. L'agent eBPF offre une visibilité approfondie sur les performances des applications sans nécessiter de modifications de code ni de déploiement d'agents spécifiques au langage.
Accédez au volet de navigation de gauche > + Integration & Agents > eBPF Agent.
Sur l'écran Sélectionner un compte, sélectionnez le compte sur lequel vous souhaitez installer l'agent eBPF, puis cliquez sur Continuer.
Sur la page Sélectionner une méthode d’installation, sélectionnez Kubernetes et cliquez sur Continue.
Sur l'écran Saisissez votre clé utilisateur, sélectionnez l'une des options suivantes, puis cliquez sur Continue:
Utiliser une clé existante: Si vous disposez déjà d’une clé utilisateur, fournissez la clé utilisateur. Pour plus d'informations, reportez-vous à Clés utilisateur.
Créer une nouvelle clé: Si vous n’avez pas de clé utilisateur, cliquez sur Create a new key pour en créer une.
Sur l’écran Configurer l’intégration Kubernetes :
Saisissez le nom de déploiement pour Kubernetes.
(Facultatif) Saisissez l'espace de nommage pour l'intégration. L'espace de nommage par défaut est newrelic.
Cliquez sur Continue.
Sur l'écran Installer l'intégration Kubernetes :
Copiez et collez la commande affichée pour installer l'agent eBPF sur votre cluster Kubernetes à l'aide de Helm.
(Facultatif) Pour télécharger le fichier de configuration values.yaml, cliquez sur Download. Pour plus d'informations sur les paramètres de configuration, reportez-vous aux paramètres de configuration de K8.
(Facultatif) Mettez à jour le fichier values.yaml si nécessaire et enregistrez-le.
(Facultatif) Pour appliquer les modifications de configuration, exécutez la commande suivante :
Pour vérifier l’installation, exécutez la commande suivante :
bash
$
kubectl get pods -n newrelic
Accéder aux données eBPF dans New Relic
Une fois l'agent eBPF installé, il commence automatiquement à collecter les données de votre hôte Linux. Vous pouvez accéder à ces données dans l'interface utilisateur OpenTelemetry de New Relic. Pour plus d'informations sur l'interface utilisateur New Relic OpenTelemetry, reportez-vous à l'interface utilisateur OpenTelemetry APM.
Dans la bannière de recherche, définissez les critères de recherche sur instrumentation.name = nr_ebpf:
Configurer le tableau de bord eBPF
Le dashboard réseau eBPF offre une visibilité approfondie sur la santé du réseau de votre système en suivant les métriques DNS et TCP critiques directement à partir du noyau. Vous pouvez diagnostiquer les problèmes de connectivité en analysant les taux de réussite et d’échec des résolutions DNS et des connexions TCP. Identifiez les goulots d'étranglement des performances en monitoring la latence des clés telles que les poignées de main TCP, la livraison des paquets et la durée des connexions de courte durée. Le dashboard vous aide également à suivre le débit de données en visualisant les octets envoyés, reçus et tous les paquets abandonnés.
Dans les Dashboards, cliquez sur + Create a dashboard.
Dans la fenêtre Create a dashboard, cliquez sur Browse pre-built dashboards.
Dans la barre de recherche, tapez eBPF et sélectionnez eBPF.
(Facultatif) Dans la fenêtre affichée, cliquez sur Edit pour modifier le compte.
Cliquez sur Setup eBPF Agent pour configurer la source de données ou cliquez sur Skip this step si l'agent eBPF est déjà configuré.
Cliquez sur View dashboard pour afficher les données collectées par l'agent eBPF.
Conseil
L'agent eBPF génère automatiquement des noms d'entités différemment selon l'environnement :
Dans les hôtes ou Docker, les noms sont une combinaison du nom du processus, de son répertoire ou de son ID de conteneur et du port d'écoute. Par exemple, ruby:/home/ubuntu/app:[5678] ou java:f4aead533895:[8080].
Dans Kubernetes, les noms sont dérivés du nom du service, par exemple, mysql-database-service.
/* Une fois votre application instrumentée et configurée pour exporter des données vers New Relic, vous devriez pouvoir trouver vos données dans l'interface utilisateur de New Relic : * Trouvez votre entité dans <DNT>**Toutes les entités > Services - OpenTelemetry</DNT>. Le nom de l'entité est défini sur la valeur du « service.name » de l'application attribut de ressource. Pour plus d'informations sur la façon dont les entités de service New Relic sont dérivées de l'attribut de ressource OpenTelemetry, voir [Services](/docs/OpenTelemetry/bonnes pratiques/OpenTelemetry-bonnes pratiques-resources/#services). * Utilisez [NRQL](/docs/NRQL/get-started/introduction-NRQL (langage de requête New Relic)/) pour effectuer une requête directement pour [trace](https\://one.newrelic.com/launcher/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gU3BhbiBTRUxFQ1QgY291bnQoKikgd2hlcmU gbmV3cmVsaWMuc291cmNlPSclb3RscCUnIFRJTUVTRVJJRVMifV0sImluaXRpYWxDaGFydFNldHRpbmdzIjp7ImNoYXJ0VHlwZSI6IkNIQVJUX0xJTkUiLCJsaW1pdCI6NzU0MiwibGlua2VkRW50aXR5R3VpZCI6bnVsbCwibGlua2VkRGFzaGJvYXJkSWQiOm51bGwsInlTY2FsZSI6eyJzdGF0aWMiOmZhbHNlLCJkb21haW4iOltudWxsLG51bGxdfSwieVplcm8iOnRydWV9fQo=), [métriques](https\://one.newrelic.com/launcher/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gTWV0cmljIFNFTEVDVCBjb3VudCgqKSB3aGVyZS BuZXdyZWxpYy5zb3VyY2UgTElLRSAnJW90bHAlJyBUSU1FU0VSSUVTIn1dLCJpbml0aWFsQ2hhcnRTZXR0aW5ncyI6eyJjaGFydFR5cGUiOiJDSEFSVF9MSU5FIiwibGltaXQiOjc1NDIsImxpbmtlZEVudGl0eUd1aWQiOm51bGwsImxpbmtlZERhc2hib2FyZElkIjpudWxsLCJ5U2NhbGUiOnsic3RhdGljIjpmYWxzZSwiZG9tYWluIjpbbnVsbCxudWxsXX0sInlaZXJvIjp0cnVlfX0K), et [logs](https\://one.newrelic.com/launcher/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gTG9nIFNFTEVDVCBjb3VudCgqKSB3aGVyZSBu ZXdyZWxpYy5zb3VyY2U9JyVvdGxwJScgVElNRVNFUklFUyJ9XSwiaW5pdGlhbENoYXJ0U2V0dGluZ3MiOnsiY2hhcnRUeXBlIjoiQ0hBUlRfTElORSIsImxpbWl0Ijo3NTQyLCJsaW5rZWRFbnRpdHlHdWlkIjpudWxsLCJsaW5rZWREYXNoYm9hcmRJZCI6bnVsbCwieVNjYWxlIjp7InN0YXRpYyI6ZmFsc2UsImRvbWFpbiI6W251bGwsbnVsbF19LCJ5WmVybyI6dHJ1ZX19Cg==). * Voir [OpenTelemetry APM UI](/docs/OpenTelemetry/get-started/apm-monitoring/OpenTelemetry-apm-ui) pour plus d'informations. Si vous ne trouvez pas votre entité et ne voyez pas vos données avec NRQL, voir [OTLP dépannage](/docs/OpenTelemetry/bonnes pratiques/OpenTelemetry-otlp-dépannage). Vous pouvez trouver les données collectées par l'agent eBPF dans l'interface utilisateur New Relic Opentelementry. */
Paramètres de configuration
Le fichier values.yaml contient les sections de configuration suivantes :
Ces paramètres contrôlent l’identité principale et la destination des données de l’agent eBPF.
paramètres
Description
Type de données
Exemple
cluster
Spécifie le nom de votre cluster Kubernetes. Ce champ est obligatoire.
String
"production-cluster"
licenseKey
Spécifie votre clé de licence New Relic. Obligatoire si
customSecretName
n'est pas utilisé.
String
"8356...FFFFNRAL"
nrStaging
Si
true
, envoie des données à l'environnement de simulation de New Relic.
Boolean
true
customSecretName
Spécifie le nom d’un secret Kubernetes qui contient votre clé de licence. Utilisez ceci pour éviter de fournir la clé directement.
String
"newrelic-license-secret"
customSecretLicenseKey
Spécifie la clé dans le secret où la valeur de la clé de licence est stockée. Utilisé avec
customSecretName
.
String
"license"
region
Spécifie la région de votre compte New Relic (
US
ou
EU
). Obligatoire lors de l'utilisation
customSecretName
.
String
"US"
proxy
Spécifie l'URL d'un serveur proxy, y compris le port, via lequel acheminer toutes les données sortantes de l'agent.
String
"http://user:pass@host:port"
logLevel
Définit le niveau de verbosité de la logging pour l'agent. Options valides :
OFF
,
FATAL
,
ERROR
,
WARNING
,
INFO
,
DEBUG
.
String
"INFO"
logFilePath
Spécifie un chemin de fichier à l'intérieur du conteneur de l'agent pour la sortie de log. Si le chemin n'est pas valide, les logs sont dirigés vers stdout.
String
"/var/log/nr-ebpf-agent.log"
downloadedPackagedHeadersPath
Définit le chemin absolu du répertoire complet où les en-têtes Linux requis sont téléchargés manuellement et placés pour que l'agent eBPF puisse les utiliser. Ceci est utile dans les environnements restreints où l'agent n'est pas en mesure de télécharger les en-têtes Linux requis. Les en-têtes requis sont identifiés par l'agent en fonction de la version du noyau. Le chemin absolu dans le cas de K8 doit également être précédé de /hôte si nécessaire. Utiliser uniquement après recommandation du support NR.
String
"/path/to/downloaded/headers/dir"
distroKernelHeadersPath
Définit le chemin absolu du répertoire complet où les en-têtes Linux sont présents pour que l'agent eBPF les utilise. Ceci est utile lorsque les en-têtes Linux requis n'ont pas pu être installés ou que le chemin n'a pas pu être déterminé. Le chemin absolu dans le cas de K8 doit également être précédé de /hôte si nécessaire. Utiliser uniquement après recommandation du support NR.
String
"/host/usr/src/linux-headers-6.8.0-pl"
Ces paramètres contrôlent les données collectées et envoyées à New Relic, vous aidant ainsi à gérer l'ingestion des données.
paramètres
Description
Type de données
Exemple
dropDataIpServiceNames
Si
true
, empêche l'agent de signaler la télémétrie pour les services identifiés uniquement par une adresse IP.
Boolean
true
dropDataNewRelic
Si
true
, supprime toutes les télémétries provenant de l'espace de nommage
newrelic
pour empêcher l' monitoring.
Boolean
true
dropAPMEnabledPods
Si
true
, supprime la télémétrie des pods qui sont déjà monitorés par un agent New Relic APM pour éviter la duplication des données.
Boolean
true
dropDataForNamespaces
Spécifie une liste d'espaces de nommage Kubernetes dont toutes les télémétries seront supprimées.
String
["kube-system", "monitoring"]
dropDataServiceNameRegex
Définit des expressions régulières de style Go. Les données des services dont les noms correspondent à ce modèle seront supprimées.
String
"kube-dns\|otel-collector"
allowServiceNameRegex
Définit une expression régulière de style Go qui agit comme une liste autorisée pour
dropDataServiceNameRegex
. Les services correspondants sont conservés, même s'ils correspondent également au modèle de dépôt.
String
"allowed-otel-collector"
dropDataForEntity
Spécifie une liste de noms d'applications (à partir de la variable d'environnement
NEW_RELIC_APP_NAME
) à exclure de monitoring.
String
["my-test-app", "temp-service"]
tableStoreDataLimitMB
Définit la limite de mémoire en mégaoctets (Mio) pour le magasin de données interne de l'agent. Il s’agit du contrôle principal de l’utilisation de la RAM.
String
"500"
Cette section vous permet d'activer monitoring de protocoles réseau spécifiques et de configurer la manière dont les données trace (étendues) sont collectées. Vous pouvez activer ou désactiver monitoring des protocoles tels que HTTP, MySQL et autres, et définir des paramètres pour la collecte de span en fonction de la latence ou du taux d'erreur. Les protocoles suivants sont pris en charge :
HTTP
MySQL
PostgreSQL
MongoDB
Apache Cassandra
Redis
Kafka
DNS
paramètres
Description
Type de données
Exemple
protocols.<protocol-name>.enabled
Si
true
, active monitoring du protocole spécifié, par exemple,
http
,
mysql
et tout autre.
Boolean
true
protocols.<protocol-name>.spans.enabled
Si
true
, exporte les étendues de trace pour le protocole activé.
Boolean
true
protocols.<protocol-name>.spans.samplingLatency
Définit le seuil d'échantillonnage basé sur la latence pour l'exportation des étendues. Options valides :
p1
,
p10
,
p50
,
p90
,
p99
.
String
"p90"
protocols.http.spans.samplingErrorRate
Pour HTTP uniquement. Les exportations s'étendent à partir de n'importe quel itinéraire où le taux d'erreur dépasse le pourcentage spécifié (1-100).
String
"5"
Ces sections contrôlent les paramètres de déploiement des principaux composants de la solution. Un astérisque (*) indique le nom du composant.
paramètres
Description
Type de données
Exemple
*.image.repository
Spécifie le référentiel d’images de conteneur pour le composant.
String
"docker.io/newrelic/newrelic-ebpf-agent"
*.image.pullPolicy
Définit la politique d'extraction pour l'image du conteneur.
String
"IfNotPresent"
*.image.tag
Spécifie la tag de version de l'image conteneur à déployer.
String
"agent-0.2.4"
*.resources.limits.memory
Définit la mémoire maximale que le conteneur peut utiliser.
String
"2Gi"
*.resources.limits.cpu
Définit le CPU maximal que le conteneur peut utiliser.
String
"1"
*.resources.requests.memory
Définit la mémoire minimale demandée pour le conteneur au démarrage.
String
"250Mi"
*.resources.requests.cpu
Définit le CPU minimum demandé pour le conteneur au démarrage.
String
"100m"
*.tolerations
Définit les tolérances de pod pour permettre la planification sur des nœuds avec des souillures spécifiques.
Objects
[{"key": "special", "operator": "Exists"}]
*.affinity
Définit les règles d'affinité et d'anti-affinité pod pour la planification.
Object
{}
*.podAnnotations
Spécifie les annotations personnalisées à ajouter au pod du composant.
Object
{"iam.amazonaws.com/role": "my-role"}
Ces paramètres s'appliquent à tous les pods déployés par le graphique Helm, sauf s'ils sont remplacés par un paramètre spécifique au composant.
paramètres
Description
Type de données
Exemple
podLabels
Spécifie des étiquettes supplémentaires à appliquer à tous les pods déployés par le graphique.
Object
{"team": "observability"}
priorityClassName
Spécifie le
PriorityClass
pour tous les pods.
String
"high-priority"
nodeSelector
Contraint le pod à s'exécuter uniquement sur les nœuds avec des étiquettes correspondantes.
Object
{"disktype": "ssd"}
Cette section configure la communication sécurisée entre l'agent eBPF et les composants clients.
paramètres
Description
Type de données
Exemple
tls.enabled
Si
true
, active TLS pour la communication interne entre les composants.
Boolean
true
tls.autoGenerateCert.enabled
Si
true
, indique à Helm de générer automatiquement un certificat auto-signé pour TLS.
Boolean
true
tls.autoGenerateCert.recreate
Si
true
, un nouveau certificat est généré tous les
helm upgrade
.
Boolean
false
tls.autoGenerateCert.certPeriodDays
Définit la période de validité en jours du certificat généré automatiquement.
Integer
730
tls.certFile
Spécifie le chemin d'accès à votre fichier de certificat personnalisé codé en PEM.
autoGenerateCert.enabled
doit être
false
.
String
"my-certs/tls.crt"
tls.keyFile
Spécifie le chemin d'accès à votre fichier de clé privée codé PEM personnalisé.
String
"my-certs/tls.key"
tls.caFile
Spécifie le chemin d'accès à votre fichier de certificat d'autorité de certification (CA) personnalisé.