<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Port on slash-root.fr</title><link>https://beta.slash-root.fr/tags/port/</link><description>Recent content in Port on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Sun, 15 Jun 2025 18:55:14 +0200</lastBuildDate><atom:link href="https://beta.slash-root.fr/tags/port/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker : Metrics port 9323</title><link>https://beta.slash-root.fr/docker-metrics-port-9323/</link><pubDate>Sun, 15 Jun 2025 18:55:14 +0200</pubDate><guid>https://beta.slash-root.fr/docker-metrics-port-9323/</guid><description>&lt;img src="https://beta.slash-root.fr/docker-metrics-port-9323/cover.png" alt="Featured image of post Docker : Metrics port 9323" /&gt;&lt;p&gt;L'option &lt;code&gt;metrics-addr&lt;/code&gt; est une configuration importante du daemon Docker qui permet d'exposer les métriques de performance et d'utilisation des ressources via un endpoint HTTP. Cette fonctionnalité, combinée avec le port par défaut 9323, vous donne accès à une mine d'informations sur votre environnement Docker.&lt;/p&gt;
&lt;h2 id="comprendre-loption-metrics-addr"&gt;&lt;a href="#comprendre-loption-metrics-addr" class="header-anchor"&gt;&lt;/a&gt;Comprendre l&amp;rsquo;option metrics-addr
&lt;/h2&gt;&lt;p&gt;L'option &lt;code&gt;metrics-addr&lt;/code&gt; configure l'adresse IP et le port sur lesquels le daemon Docker expose ses métriques. Par défaut, quand cette option est activée, Docker utilise le port 9323.&lt;/p&gt;
&lt;h3 id="pourquoi-le-port-9323-"&gt;&lt;a href="#pourquoi-le-port-9323-" class="header-anchor"&gt;&lt;/a&gt;Pourquoi le port 9323 ?
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;C'est un port non-privilégié (supérieur à 1024)&lt;/li&gt;
&lt;li&gt;Il est officiellement alloué à Docker par l'IANA pour cette fonctionnalité&lt;/li&gt;
&lt;li&gt;Il est peu susceptible d'entrer en conflit avec d'autres services courants&lt;/li&gt;
&lt;li&gt;Il suit la convention de Prometheus pour les ports d'exportation de métriques (9xxx)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ce-que-vous-obtenez-avec-metrics-addr"&gt;&lt;a href="#ce-que-vous-obtenez-avec-metrics-addr" class="header-anchor"&gt;&lt;/a&gt;Ce que vous obtenez avec metrics-addr
&lt;/h2&gt;&lt;p&gt;Activer l'option &lt;code&gt;metrics-addr&lt;/code&gt; dans le daemon.json vous donne accès à de nombreuses métriques Docker formatées nativement pour Prometheus :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Métriques système&lt;/strong&gt; : Utilisation CPU, mémoire, disque et réseau par conteneur&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Métriques du daemon&lt;/strong&gt; : État du daemon, nombre d'objets gérés (conteneurs, images, volumes)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Métriques d'utilisation&lt;/strong&gt; : Temps de démarrage des conteneurs, opérations réseau&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Métriques de performance&lt;/strong&gt; : Latences des opérations de build et de déploiement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Toutes ces métriques sont disponibles au format Prometheus, ce qui les rend facilement intégrables dans un système de monitoring existant.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ℹ️ &lt;strong&gt;Point technique&lt;/strong&gt; : Le format Prometheus utilise des &amp;quot;labels&amp;quot; qui permettent de filtrer et d'agréger les métriques de manière flexible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="cas-dutilisation-pour-metrics-addr"&gt;&lt;a href="#cas-dutilisation-pour-metrics-addr" class="header-anchor"&gt;&lt;/a&gt;Cas d&amp;rsquo;utilisation pour metrics-addr
&lt;/h2&gt;&lt;p&gt;L'activation de &lt;code&gt;metrics-addr&lt;/code&gt; est particulièrement utile dans les scénarios suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Supervision d'infrastructure&lt;/strong&gt; : Intégration avec Prometheus pour surveiller l'ensemble de votre environnement Docker&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alerting automatisé&lt;/strong&gt; : Déclencher des alertes basées sur des seuils de métriques spécifiques&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dashboarding&lt;/strong&gt; : Création de tableaux de bord Grafana pour visualiser les performances&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyse de tendance&lt;/strong&gt; : Collecter des données sur de longues périodes pour identifier les tendances&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Détection d'anomalies&lt;/strong&gt; : Repérer les comportements anormaux dans vos conteneurs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuration-de-metrics-addr"&gt;&lt;a href="#configuration-de-metrics-addr" class="header-anchor"&gt;&lt;/a&gt;Configuration de metrics-addr
&lt;/h2&gt;&lt;h3 id="configuration-via-daemonjson"&gt;&lt;a href="#configuration-via-daemonjson" class="header-anchor"&gt;&lt;/a&gt;Configuration via daemon.json
&lt;/h3&gt;&lt;p&gt;La méthode recommandée pour activer les métriques Docker est de modifier le fichier de configuration du daemon :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Éditez le fichier de configuration Docker :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/docker/daemon.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ajoutez la configuration pour activer l'API de métriques :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;metrics-addr&amp;#34;&lt;/span&gt; : &lt;span style="color:#e6db74"&gt;&amp;#34;127.0.0.1:9323&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;experimental&amp;#34;&lt;/span&gt; : &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; L'adresse &lt;code&gt;127.0.0.1&lt;/code&gt; limite l'accès à la machine locale. Pour exposer les métriques au réseau, utilisez &lt;code&gt;0.0.0.0:9323&lt;/code&gt; (avec précaution).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Redémarrez Docker pour appliquer les changements :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl restart docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Vérifiez que les métriques sont disponibles :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http://localhost:9323/metrics
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vous devriez voir une sortie avec de nombreuses métriques au format Prometheus.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="visualisation-simple-avec-docker-stats"&gt;&lt;a href="#visualisation-simple-avec-docker-stats" class="header-anchor"&gt;&lt;/a&gt;Visualisation simple avec Docker Stats
&lt;/h3&gt;&lt;p&gt;Pour un aperçu rapide des performances de vos conteneurs sans configuration supplémentaire :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker stats
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cela affiche en temps réel les statistiques d'utilisation des ressources pour tous les conteneurs :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU% : Pourcentage d'utilisation du CPU&lt;/li&gt;
&lt;li&gt;MEM% : Pourcentage d'utilisation de la mémoire&lt;/li&gt;
&lt;li&gt;NET I/O : Transfert réseau entrant/sortant&lt;/li&gt;
&lt;li&gt;BLOCK I/O : Lectures/écritures sur disque&lt;/li&gt;
&lt;li&gt;PIDS : Nombre de processus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour cibler des conteneurs spécifiques :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker stats container1 container2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Pour des solutions plus avancées comme Prometheus+Grafana ou cAdvisor, voir la section &amp;quot;Solutions avancées&amp;quot; en fin d'article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="les-limites-à-connaître"&gt;&lt;a href="#les-limites-%c3%a0-conna%c3%aetre" class="header-anchor"&gt;&lt;/a&gt;Les limites à connaître
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Limites des métriques natives&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de persistance des données historiques&lt;/li&gt;
&lt;li&gt;Interface de visualisation minimale&lt;/li&gt;
&lt;li&gt;Absence d'alertes automatiques&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Considérations de performance&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'activation des métriques consomme des ressources supplémentaires&lt;/li&gt;
&lt;li&gt;L'exposition sur le réseau nécessite des précautions de sécurité&lt;/li&gt;
&lt;li&gt;Le port 9323 doit être protégé par un pare-feu ou limité à localhost&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Limites de fonctionnalités&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les métriques Docker ne couvrent pas les métriques applicatives&lt;/li&gt;
&lt;li&gt;Pas d'information sur la santé des applications à l'intérieur des conteneurs&lt;/li&gt;
&lt;li&gt;Nécessite des outils complémentaires pour une vision complète&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="bonnes-pratiques"&gt;&lt;a href="#bonnes-pratiques" class="header-anchor"&gt;&lt;/a&gt;Bonnes pratiques
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Commencez simplement&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identifiez les métriques critiques pour votre cas d'usage&lt;/li&gt;
&lt;li&gt;Augmentez progressivement la complexité&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automatisez les alertes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configurez des alertes sur les seuils critiques&lt;/li&gt;
&lt;li&gt;Évitez les alertes trop sensibles qui causeraient de la fatigue d'alarme&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Corrélation de métriques&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Combinez les métriques Docker avec des métriques système et applicatives&lt;/li&gt;
&lt;li&gt;Utilisez des dashboards qui montrent des corrélations entre métriques&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Conservation des données&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Définissez une politique de rétention adaptée à vos besoins&lt;/li&gt;
&lt;li&gt;Agrégez les données anciennes pour économiser de l'espace&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="en-résumé"&gt;&lt;a href="#en-r%c3%a9sum%c3%a9" class="header-anchor"&gt;&lt;/a&gt;En résumé
&lt;/h2&gt;&lt;p&gt;Les métriques Docker sont essentielles pour une gestion efficace des conteneurs en production. La configuration via daemon.json offre un moyen simple d'exposer ces données pour votre monitoring, vous donnant une première couche de visibilité sur vos conteneurs.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Astuce&lt;/strong&gt; : Commencez par les métriques natives et docker stats pour comprendre vos besoins, puis évaluez si vous avez besoin de solutions plus avancées.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="solutions-avancées-annexe"&gt;&lt;a href="#solutions-avanc%c3%a9es-annexe" class="header-anchor"&gt;&lt;/a&gt;Solutions avancées (Annexe)
&lt;/h2&gt;&lt;h3 id="1-intégration-avec-prometheus"&gt;&lt;a href="#1-int%c3%a9gration-avec-prometheus" class="header-anchor"&gt;&lt;/a&gt;1. Intégration avec Prometheus
&lt;/h3&gt;&lt;p&gt;Les métriques exposées via daemon.json sont déjà au format Prometheus. Pour les collecter :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# prometheus.yml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;scrape_configs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;job_name&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#39;docker&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;static_configs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;targets&lt;/span&gt;: [&lt;span style="color:#e6db74"&gt;&amp;#39;127.0.0.1:9323&amp;#39;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-utilisation-de-cadvisor"&gt;&lt;a href="#2-utilisation-de-cadvisor" class="header-anchor"&gt;&lt;/a&gt;2. Utilisation de cAdvisor
&lt;/h3&gt;&lt;p&gt;Pour une solution prête à l'emploi avec interface web :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker run &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/:/rootfs:ro &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/var/run:/var/run:ro &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/sys:/sys:ro &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --volume&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/var/lib/docker/:/var/lib/docker:ro &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --publish&lt;span style="color:#f92672"&gt;=&lt;/span&gt;8080:8080 &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --detach&lt;span style="color:#f92672"&gt;=&lt;/span&gt;true &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name&lt;span style="color:#f92672"&gt;=&lt;/span&gt;cadvisor &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; gcr.io/cadvisor/cadvisor:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Interface disponible sur &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>