• /
  • 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

Installer l'intégration Docker OpenTelemetry

Monitorez vos conteneurs Docker en installant un collecteur OpenTelemetry directement sur les hôtes Linux. Ce guide fournit des instructions de configuration complètes pour la collecte des métriques de conteneurs et la collecte facultative de logs à l'aide du New Relic NRDOT Collector (recommandé) ou de l'OpenTelemetry Collector Contrib.

Avant de commencer

Vérifiez votre configuration

Étapes d'intégration

Suivez ces étapes pour configurer la supervision des conteneurs Docker avec OpenTelemetry. Choisissez votre type de collecteur ci-dessous :

Installer le collecteur NRDOT

Le NRDOT Collector est la distribution New Relic d'OpenTelemetry avec des paramètres préconfigurés optimisés pour New Relic.

Conseil

Si NRDOT Collector est déjà installé, vous pouvez passer à l'étape 2 pour le configurer pour le monitoring de Docker.

Installation DEB (Debian/Ubuntu) :

bash
$
# Example version - check releases for latest: https://github.com/newrelic/nrdot-collector-releases/releases
$
export collector_version="1.10.0"
$
export collector_arch="amd64" # or arm64
$
$
curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${collector_version}/nrdot-collector_${collector_version}_linux_${collector_arch}.deb" -o collector.deb
$
sudo dpkg -i collector.deb
$
$
# Disable auto-start until configuration is complete
$
sudo systemctl disable nrdot-collector
$
sudo systemctl stop nrdot-collector

Installation RPM (RHEL/CentOS/Fedora) :

bash
$
# Example version - check releases for latest: https://github.com/newrelic/nrdot-collector-releases/releases
$
export collector_version="1.10.0"
$
export collector_arch="x86_64" # or arm64
$
$
curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${collector_version}/nrdot-collector_${collector_version}_linux_${collector_arch}.rpm" -o collector.rpm
$
sudo rpm -i collector.rpm
$
$
# Disable auto-start until configuration is complete
$
sudo systemctl disable nrdot-collector
$
sudo systemctl stop nrdot-collector

Autres distributions Linux: Pour les installations par archive ou d'autres méthodes, consultez le guide d'installation NRDOT.

Vérifier l'installation :

bash
$
nrdot-collector --version

Sortie attendue : Informations de version

Configurer le collecteur pour le monitoring de Docker

Pour NRDOT Collector, créez un fichier de configuration de monitoring Docker autonome qui remplace la configuration par défaut.

Important

Monitoring autonome vs combiné: cette configuration monitore uniquement les conteneurs Docker. Si vous avez également besoin de métriques d'hôte (CPU, mémoire, disque) ou de logs système, utilisez la configuration par défaut du NRDOT Collector qui inclut les récepteurs hostmetrics et filelog, et ajoutez-y le récepteur docker_stats.

Créez /etc/nrdot-collector/docker-stats-config.yaml avec le contenu suivant :

receivers:
# Docker Stats Receiver - collects container metrics
docker_stats:
endpoint: unix:///var/run/docker.sock
collection_interval: 15s
timeout: 5s
api_version: "1.25"
# Most metrics required for New Relic UI are enabled by default:
# CPU: container.cpu.usage.total, container.cpu.utilization
# Memory: container.memory.usage.total, container.memory.percent
# Network: container.network.io.usage.tx_bytes, container.network.io.usage.rx_bytes
# container.network.io.usage.tx_dropped, container.network.io.usage.rx_dropped
# Storage: container.blockio.io_service_bytes_recursive
#
# The following metrics need to be explicitly enabled:
metrics:
# Required for New Relic UI
container.pids.count:
enabled: true
# Additional network error metrics
container.network.io.usage.tx_errors:
enabled: true
container.network.io.usage.rx_errors:
enabled: true
processors:
# Batch processor optimizes data transmission
batch:
timeout: 10s
send_batch_size: 1024
# Transform processor - removes descriptions and units
transform:
metric_statements:
- context: metric
statements:
- set(description, "")
- set(unit, "")
exporters:
otlp_http:
endpoint: ${env:OTEL_EXPORTER_OTLP_ENDPOINT:-https://otlp.nr-data.net}
headers:
api-key: ${env:NEW_RELIC_LICENSE_KEY}
compression: gzip
service:
pipelines:
metrics/docker:
receivers: [docker_stats]
processors: [transform, batch]
exporters: [otlp_http]

Configurer les permissions du socket Docker

Le collecteur a besoin d'accéder au socket Docker pour collecter les métriques des conteneurs. Accordez à l'utilisateur du collecteur l'accès au groupe Docker.

bash
$
# Add nrdot-collector user to docker group
$
sudo usermod -aG docker nrdot-collector
$
$
# Verify the user was added
$
groups nrdot-collector
$
$
# Restart Docker to apply group changes
$
sudo systemctl restart docker
$
$
# Test Docker socket access
$
sudo -u nrdot-collector docker ps

Si la commande de test réussit et affiche vos conteneurs, les permissions sont correctement configurées.

Facultatif - Configurer la collecte de logs

Vous pouvez également collecter les logs de vos conteneurs Docker en utilisant le créateur de récepteur OpenTelemetry avec l'extension observateur Docker.

Important

Prérequis pour la collecte de logs :

  • Le processus du collecteur doit disposer des droits de lecture sur le répertoire /var/lib/docker/containers/. Cela nécessite généralement d'exécuter le collecteur en tant que root ou d'ajouter l'utilisateur du collecteur au groupe docker.
  • Les ports des conteneurs doivent être exposés pour que le créateur de récepteurs puisse découvrir et collecter les logs des conteneurs.

Ajoutez la configuration de la collecte de logs à votre fichier docker-stats-config.yaml existant.

extensions:
# Docker observer - discovers running containers
docker_observer:
endpoint: unix:///var/run/docker.sock
use_hostname_if_present: true
receivers:
# Your existing dockerstats receiver...
# Receiver creator - dynamically creates filelog receivers for discovered containers
receiver_creator:
watch_observers: [docker_observer]
receivers:
filelog:
rule: type == "container"
config:
include:
- /var/lib/docker/containers/`container_id`/`container_id`-json.log
poll_interval: 200ms
start_at: end
include_file_name: false
include_file_path: false
operators:
- id: container-parser
type: container
format: docker
add_metadata_from_filepath: false
processors:
# Your existing processors...
# Add entity type attribute for logs (required for New Relic entity correlation)
attributes/logs:
actions:
- key: nr.entity_type
value: CONTAINER
action: upsert
service:
extensions: [docker_observer]
pipelines:
# Your existing metrics pipeline...
logs:
receivers: [receiver_creator]
processors: [attributes/logs, batch]
exporters: [otlp_http]

Configurer l'authentification et démarrer le collecteur

Configurez l'authentification en ajoutant votre point de terminaison New Relic et OTLP au service du collecteur.

Variables d'environnement du NRDOT Collector :

VariableDescriptionDéfautRequis
NEW_RELIC_LICENSE_KEYVotre clé de licence d'ingestion New RelicAucunOui
OTEL_EXPORTER_OTLP_ENDPOINTPoint de terminaison OTLP New Relic pour votre régionhttps://otlp.nr-data.net (É.-U.)Non

Configuration du point de terminaison :

  • Région États-Unis: https://otlp.nr-data.net (par défaut)

  • Région UE: https://otlp.eu01.nr-data.net

    Pour plus d'options de point de terminaison, consultez la documentation OTLP New Relic.

    Configurer le service systemd :

    Vous allez maintenant configurer le service NRDOT Collector pour utiliser votre configuration de supervision Docker et vos identifiants d'authentification. Cela implique de créer une surcharge systemd pour spécifier le fichier de configuration personnalisé et les variables d'environnement.

  1. Créer un répertoire de remplacement systemd :

    bash
    $
    sudo mkdir -p /etc/systemd/system/nrdot-collector.service.d
  2. Créez une configuration de surcharge pour utiliser la configuration des statistiques Docker. Remplacez YOUR_LICENSE_KEY par votre clé de licence New Relic et YOUR_OTLP_ENDPOINT par le point de terminaison approprié pour votre région :

    bash
    $
    cat <<EOF | sudo tee /etc/systemd/system/nrdot-collector.service.d/override.conf
    $
    [Service]
    $
    Environment="NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
    $
    Environment="OTEL_EXPORTER_OTLP_ENDPOINT=YOUR_OTLP_ENDPOINT"
    $
    ExecStart=
    $
    ExecStart=/usr/bin/nrdot-collector --config=/etc/nrdot-collector/docker-stats-config.yaml
    $
    EOF
  3. Rechargez systemd, activez et démarrez le collecteur :

    bash
    $
    sudo systemctl daemon-reload
    $
    sudo systemctl enable nrdot-collector
    $
    sudo systemctl start nrdot-collector
    $
    $
    # Verify the collector is running
    $
    sudo systemctl status nrdot-collector
    $
    $
    # Check logs for any errors
    $
    journalctl -u nrdot-collector -f

    Conseil

    La ligne ExecStart= vide efface la commande par défaut avant de définir la nouvelle. Cela garantit que le collecteur utilise uniquement la configuration des statistiques Docker au lieu de la configuration par défaut.

Installer OpenTelemetry Collector Contrib

Téléchargez et installez OpenTelemetry Collector Contrib en suivant le guide d'installation officiel.

Conseil

Si vous avez déjà installé OpenTelemetry Collector Contrib, vous pouvez passer à l'étape 2 pour le configurer pour le monitoring Docker.

Vérifier l'installation :

bash
$
otelcol-contrib --version

Sortie attendue : Informations de version (v0.88.0 minimum recommandée)

Configurer le collecteur pour le monitoring de Docker

Pour OpenTelemetry Collector Contrib, fusionnez les récepteurs, les processeurs, les exportateurs et les pipelines de service dans votre fichier de configuration (généralement /etc/otelcol-contrib/config.yaml).

receivers:
# Docker Stats Receiver - collects container metrics
docker_stats:
endpoint: unix:///var/run/docker.sock
collection_interval: 15s
timeout: 5s
api_version: "1.25"
# Most metrics required for New Relic UI are enabled by default:
# CPU: container.cpu.usage.total, container.cpu.utilization
# Memory: container.memory.usage.total, container.memory.percent
# Network: container.network.io.usage.tx_bytes, container.network.io.usage.rx_bytes
# container.network.io.usage.tx_dropped, container.network.io.usage.rx_dropped
# Storage: container.blockio.io_service_bytes_recursive
#
# The following metrics need to be explicitly enabled:
metrics:
# Required for New Relic UI
container.pids.count:
enabled: true
# Additional network error metrics
container.network.io.usage.tx_errors:
enabled: true
container.network.io.usage.rx_errors:
enabled: true
processors:
# Resource detection - adds host metadata
resourcedetection:
detectors: [system, docker]
system:
resource_attributes:
host.name:
enabled: true
host.id:
enabled: true
# Batch processor - optimizes data transmission
batch:
timeout: 30s
send_batch_size: 512
# Transform processor - removes descriptions and units
transform:
metric_statements:
- context: metric
statements:
- set(description, "")
- set(unit, "")
expor
exporters:
# New Relic OTLP Exporter
otlp_http/newrelic:
endpoint: ${env:NEWRELIC_OTLP_ENDPOINT}
headers:
api-key: ${env:NEWRELIC_LICENSE_KEY}
compression: gzip
timeout: 30s
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 300s
service:
pipelines:
metrics:
receivers: [docker_stats]
processors: [resourcedetection, transform, batch]
exporters: [otlp_http/newrelic]

Enregistrez le fichier et assurez-vous que l'utilisateur système otelcol-contrib peut le lire.

Configurer les permissions du socket Docker

Le collecteur a besoin d'accéder au socket Docker pour collecter les métriques des conteneurs. Accordez à l'utilisateur du collecteur l'accès au groupe Docker.

bash
$
# Add otelcol-contrib user to docker group
$
sudo usermod -aG docker otelcol-contrib
$
$
# Verify the user was added
$
groups otelcol-contrib
$
$
# Restart Docker to apply group changes
$
sudo systemctl restart docker
$
$
# Test Docker socket access
$
sudo -u otelcol-contrib docker ps

Si la commande de test réussit et affiche vos conteneurs, les permissions sont correctement configurées.

Facultatif - Configurer la collecte de logs

Vous pouvez également collecter les logs de vos conteneurs Docker en utilisant le créateur de récepteur OpenTelemetry avec l'extension observateur Docker.

Important

Prérequis pour la collecte de logs :

  • Le processus du collecteur doit disposer des droits de lecture sur le répertoire /var/lib/docker/containers/. Cela nécessite généralement d'exécuter le collecteur en tant que root ou d'ajouter l'utilisateur du collecteur au groupe docker.
  • Les ports des conteneurs doivent être exposés pour que le créateur de récepteurs puisse découvrir et collecter les logs des conteneurs.

Fusionnez la configuration suivante avec votre fichier de configuration existant à /etc/otelcol-contrib/config.yaml.

extensions:
# Docker observer - discovers running containers
docker_observer:
endpoint: unix:///var/run/docker.sock
use_hostname_if_present: true
receivers:
# Your existing dockerstats receiver...
# Receiver creator - dynamically creates filelog receivers for discovered containers
receiver_creator:
watch_observers: [docker_observer]
receivers:
filelog:
rule: type == "container"
config:
include:
- /var/lib/docker/containers/`container_id`/`container_id`-json.log
poll_interval: 200ms
start_at: end
include_file_name: false
include_file_path: false
operators:
- id: container-parser
type: container
format: docker
add_metadata_from_filepath: false
processors:
# Your existing processors...
# Add entity type attribute for logs (required for New Relic entity correlation)
attributes/logs:
actions:
- key: nr.entity_type
value: CONTAINER
action: upsert
service:
extensions: [docker_observer]
pipelines:
# Your existing metrics pipeline...
logs:
receivers: [receiver_creator]
processors: [attributes/logs]
exporters: [otlp_http/newrelic]

Configurer l'authentification et démarrer le collecteur

Configurez l'authentification en ajoutant votre point de terminaison New Relic et OTLP au service du collecteur.

Variables d'environnement OpenTelemetry Collector Contrib :

VariableDescriptionRequis
NEWRELIC_LICENSE_KEYVotre clé de licence d'ingestion New RelicOui
NEWRELIC_OTLP_ENDPOINTPoint de terminaison OTLP New Relic pour votre régionOui

Configuration du point de terminaison :

  • Région US: https://otlp.nr-data.net:4318

  • Région UE: https://otlp.eu01.nr-data.net:4318

    Pour plus d'options de point de terminaison, consultez la documentation OTLP New Relic.

    Configurer le service systemd :

    Vous allez maintenant configurer le service OpenTelemetry Collector Contrib avec vos identifiants d'authentification. Cela implique de définir des variables d'environnement pour votre clé de licence New Relic et votre point de terminaison OTLP.

  1. Créer un répertoire de remplacement systemd :

    bash
    $
    sudo mkdir -p /etc/systemd/system/otelcol-contrib.service.d
  2. Créez environment.conf avec votre configuration. Remplacez YOUR_LICENSE_KEY par votre clé de licence New Relic et YOUR_OTLP_ENDPOINT par le point de terminaison approprié pour votre région :

    bash
    $
    cat <<EOF | sudo tee /etc/systemd/system/otelcol-contrib.service.d/environment.conf
    $
    [Service]
    $
    Environment="NEWRELIC_LICENSE_KEY=YOUR_LICENSE_KEY"
    $
    Environment="NEWRELIC_OTLP_ENDPOINT=YOUR_OTLP_ENDPOINT"
    $
    EOF
  3. Rechargez systemd et redémarrez le collecteur :

    bash
    $
    sudo systemctl daemon-reload
    $
    sudo systemctl restart otelcol-contrib
    $
    $
    # Verify the collector is running
    $
    sudo systemctl status otelcol-contrib
    $
    $
    # Check logs for any errors
    $
    journalctl -u otelcol-contrib -f

Affichez vos données dans New Relic

Une fois l'intégration terminée et le collecteur en cours d'exécution, vous devriez commencer à voir des données dans New Relic en quelques minutes :

  1. Allez à one.newrelic.com > All capabilities > All entities.
  2. Recherchez votre hôte Docker par nom d'hôte ou nom de conteneur.
  3. Cliquez sur votre entité pour afficher les métriques et les détails du conteneur Docker.
  4. Explorez la page Summary pour consulter les métriques de performance, l'utilisation des ressources et la santé des conteneurs.

Les métriques de conteneur Docker sont associées au type d'événement Metric. Vous pouvez interroger ces données à des fins de dépannage ou pour créer des graphiques et des dashboards personnalisés.

Dépannage

Si vous rencontrez des problèmes lors de la configuration, consultez le guide de dépannage du monitoring Docker pour obtenir des étapes de diagnostic détaillées et des solutions aux problèmes courants, notamment :

  • Problèmes de démarrage et de configuration du collecteur
  • Métriques manquantes ou problèmes de connectivité des données
  • Erreurs de permission refusée
  • Optimisation des performances
  • Dépannage de la collecte de logs

Prochaines étapes

Maintenant que vous avez configuré le monitoring des conteneurs Docker, vous pouvez enrichir votre pile d'observabilité :

Droits d'auteur © 2026 New Relic Inc.

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