Collecteur OpenTelemetry (otel-collector)
Reçoit les traces, métriques et journaux OTLP, les marque avec les attributs de ressource du cluster et les exporte vers OpenSearch ou l'Elasticsearch du client (journaux), Jaeger (traces), Prometheus et, en option, Opik (traces des LLM).
Généré depuis catalog/services/otel-collector.yaml : ne pas modifier à la main.
Résumé
| Version | 0.130.0 |
| Usage | installer et configurer, configurer et connecter |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Observabilité |
| Méthodes d'installation | binary, podman |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | Apache-2.0 |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Composant de la plateforme | otel-collector |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| image de conteneur | docker.io/otel/opentelemetry-collector-contrib | 0.130.0 | Apache-2.0 | clé d'image otelcol-contrib, utilisée par otel-collector, condensé sha256:867d1074c2f750936fb9358ec9eefa009308053cf156b2c7ca1761ba5ef78452 |
| archive binaire | otelcol-contrib_0.130.0_linux_amd64.tar.gz | 0.130.0 | Apache-2.0 | https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.130.0/otelcol-contrib_0.130.0_linux_amd64.tar.gz, x86_64, somme de contrôle sha256 |
Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|---|---|
binary | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64 (architecture des artefacts du descripteur) |
podman | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
Le descripteur ne déclare aucun contrôle préalable de l'hôte.
Programmes que les commandes et les contrôles du service lancent sur l'hôte, hors des racines gérées : les ajouter à allowed_commands de l'agent (voir Sécurité de l'agent Navin), sinon l'agent les refuse avec command_not_allowed : /usr/bin/curl.
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
otel-collector | otlp_grpc | 4317/tcp | oui |
otel-collector | otlp_http | 4318/tcp | oui |
otel-collector | metrics | 8888/tcp | oui |
otel-collector | health | 13133/tcp | non |
otel-collector | zpages | 55679/tcp | non |
Services et connexions nécessaires
opensearch:opensearch(facultative).elasticsearch:elasticsearch(facultative).jaeger:jaeger(facultative).prometheus:prometheus(facultative).llm_tracing:opik(facultative).
Détail et résolution : voir Dépendances.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
binary | oui | les archives binaires du descripteur, décompressées dans le répertoire du service |
podman | - | les images de conteneur du descripteur, exécutées par Podman sous systemd |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Collecteur (otel-collector) | maître | binary, podman | 4317/tcp, 4318/tcp, 8888/tcp, 13133/tcp, 55679/tcp |
Agent (agent) (par défaut)
Un collecteur sur chaque hôte qui envoie vers les systèmes cibles.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
otel-collector | min 1, recommandé 3 |
Passerelle (gateway)
Collecteurs sans état répliqués derrière le répartiteur de charge.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
otel-collector | min 2, recommandé 2 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez Collecteur OpenTelemetry. La carte affiche la licence
Apache-2.0et les dépendances dont l'installation a besoin. Choisissez la Méthode parmibinary,podman(par défautbinary). -
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode :
agent(par défaut),gateway. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. -
Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (
opensearch,elasticsearch,jaeger,prometheus,llm_tracing) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison. -
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Connecter un service existant
| Schémas | https, http |
| Port par défaut | 4317 |
| Authentification | facultative |
| Contrôle de santé | health_url + / |
| Méthode d'authentification | Champs | Description |
|---|---|---|
none | - | Récepteur OTLP sans authentificateur. |
bearer | token | Extension bearertokenauth du récepteur OTLP : le collecteur ne contrôle le jeton qu'à la réception de données, le Manager ne peut pas le tester avant. |
basic | username, password | Extension basicauth (htpasswd) du récepteur OTLP, contrôlée par le collecteur à la réception de données seulement. |
Documentation officielle : https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/bearertokenauthextension
| Champ | Type | Défaut | Description | Remarques |
|---|---|---|---|---|
URL du point de santé (health_url) | url | - | URL du point de santé du service existant. | obligatoire |
Haute disponibilité
| Cluster | réplicas (replication) |
| Haute disponibilité | externe (external) |
| Bascule | répartiteur (load-balancer) |
| Réplication | aucun (none) |
| Quorum | aucun (none) |
| Découverte | aucun (none) |
| Point d'entrée | répartiteur (load-balancer) |
| Documentation officielle | https://opentelemetry.io/docs/collector/deploy/gateway/ |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
agent | ha (ha) | par hôte (per-host) | - | - | Un agent sur chaque hôte : chaque hôte se couvre lui-même, la perte d'un hôte ne perd que sa propre couverture. |
gateway | ha (ha) | actif-actif (active-active) | - | 2 | Collecteurs sans état répliqués derrière le répartiteur. |
Remarques
- Un collecteur garde les données en cours en mémoire : un arrêt brutal perd ce qui n'était pas encore exporté. Les backends (OpenSearch, Jaeger, Prometheus) demandent leur propre haute disponibilité.
Paramètres de configuration
Général
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port OTLP gRPC (grpc_port) | port | 4317 | - | non | non | non | Port du récepteur OTLP gRPC. |
Port OTLP HTTP (http_port) | port | 4318 | - | non | non | non | Port du récepteur OTLP HTTP. |
Port des métriques internes (metrics_port) | port | 8888 | - | non | non | non | Port des métriques propres au collecteur. |
Port zPages (zpages_port) | port | 55679 | - | non | non | non | Port des pages de débogage zPages, lié à localhost. |
Port de santé (health_port) | port | 13133 | - | non | non | non | Port de l'extension de contrôle de santé. |
TLS (tls_enabled) | bool | false | - | non | non | oui | Servir les récepteurs OTLP gRPC et HTTP et les métriques propres en TLS avec un certificat émis par l'autorité de la console. |
Port interne des métriques (self_metrics_port) | port | 4319 | - | non | non | non | Port de la boucle locale qui reçoit les métriques propres au collecteur quand TLS est activé, avant de les servir en TLS sur le port des métriques internes (le lecteur Prometheus intégré n'a pas de TLS). (avancé) |
Limite mémoire (memory_limit_mib) | int | 1024 | min 128, max 65536, MiB | non | non | non | Limite du processeur memory_limiter. |
Environnement (environment) | string | production | - | non | non | non | Valeur de deployment.environment ajoutée par le processeur resource. |
Dépendances
Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).
| Liaison | Fournie par | Type de connexion | Point d'accès | Facultative | Quand rien n'est lié | Description |
|---|---|---|---|---|---|---|
opensearch | opensearch | - | http | oui | reste non liée (facultative) | OpenSearch qui reçoit les journaux (index eai-logs-*). |
elasticsearch | - (versions >= 8.12, < 9) | elasticsearch | - | oui | reste non liée (facultative) | Elasticsearch que le client exploite déjà, déclaré comme connexion et jamais installé par Navin : il reçoit les journaux dans le flux de données logs-eai.otel-default (mappage OpenTelemetry, Elasticsearch 8.12 ou une 8.x plus récente), en plus d'OpenSearch quand les deux sont liés. |
jaeger | jaeger | - | otlp_grpc | oui | reste non liée (facultative) | Jaeger qui reçoit les traces (OTLP gRPC). |
prometheus | prometheus | - | http | oui | reste non liée (facultative) | Prometheus qui reçoit les métriques (écriture distante). |
llm_tracing | opik | - | api | oui | reste non liée (facultative) | Backend Opik qui reçoit les traces des LLM (OTLP sur HTTP, /v1/private/otel). |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|---|---|---|---|---|---|---|---|
otlp_grpc | grpc | otel-collector | 4317 (grpc_port) | - | tls_enabled | tls | - | - |
otlp_http | http | otel-collector | 4318 (http_port) | - | tls_enabled | - | - | - |
Commandes
| Commande | Composant | Cible | Description |
|---|---|---|---|
État des pipelines (zPages) (zpages) | otel-collector | tous les hôtes | Lit la page des pipelines de l'extension zPages. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
otel-collector | HTTP http://127.0.0.1:{{ config.health_port }}/ | Attendu 200 ; 30 tentatives ; intervalle 1 s ; délai 3 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
grpc_free | port_free {"param": "grpc_port"} | port 4317 libre sur l'hôte | bloquant | tous les composants |
http_free | port_free {"param": "http_port"} | port 4318 libre sur l'hôte | bloquant | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.log }}.
Liens rapides
- zPages (depuis l'hôte uniquement) :
http://127.0.0.1:{{ config.zpages_port }}/debug/servicez
Documentation amont
- Site : https://opentelemetry.io
- Sources : https://github.com/open-telemetry/opentelemetry-collector-contrib
- Haute disponibilité : https://opentelemetry.io/docs/collector/deploy/gateway/
- Authentification : https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/bearertokenauthextension