{"id":334,"date":"2026-09-13T00:34:53","date_gmt":"2026-09-12T22:34:53","guid":{"rendered":"https:\/\/asfy.fr\/index.php\/tutoriels\/librenms-superviser-son-reseau-docker-compose-ou-natif-ubuntu\/"},"modified":"2026-09-13T00:34:56","modified_gmt":"2026-09-12T22:34:56","slug":"librenms-superviser-son-reseau-docker-compose-ou-natif-ubuntu","status":"publish","type":"sv_tutoriel","link":"https:\/\/asfy.fr\/index.php\/tutoriels\/librenms-superviser-son-reseau-docker-compose-ou-natif-ubuntu\/","title":{"rendered":"LibreNMS : superviser son r\u00e9seau avec Docker Compose ou en natif sur Ubuntu Server"},"content":{"rendered":"<p>Un switch qui sature \u00e0 3 h du matin, un lien fibre qui bascule en boucle, un onduleur qui ne le dit \u00e0 personne\u2026 la supervision, c&rsquo;est l&rsquo;art d&rsquo;apprendre les mauvaises nouvelles <em>avant<\/em> les utilisateurs. <strong>LibreNMS<\/strong> est une plateforme de supervision r\u00e9seau libre (GPL-3) qui d\u00e9couvre vos \u00e9quipements en SNMP, trace des graphes, alerte et cartographie votre r\u00e9seau. Ce guide vous emm\u00e8ne de z\u00e9ro \u00e0 une instance <strong>reproductible, cloisonn\u00e9e et maintenable<\/strong>, avec deux chemins au choix : <strong>Docker Compose<\/strong> (rapide, isol\u00e9) ou <strong>installation native sur Ubuntu Server<\/strong> (contr\u00f4le fin de l&rsquo;OS).<\/p>\n<div class=\"sv-callout sv-callout--tip\">\n<p><strong>Public et dur\u00e9e :<\/strong> administrateurs r\u00e9seau \/ syst\u00e8me \u00e0 l&rsquo;aise avec un terminal Linux. Comptez <strong>1 h 30<\/strong> pour Docker Compose, <strong>2 h 30<\/strong> pour l&rsquo;installation native, hors int\u00e9gration des \u00e9quipements. Les adresses, noms et secrets sont des <em>exemples \u00e0 remplacer<\/em>. Testez d&rsquo;abord en pr\u00e9production.<\/p>\n<\/div>\n<h2>Ce que vous allez construire<\/h2>\n<p>LibreNMS vit dans un <strong>VLAN de supervision d\u00e9di\u00e9<\/strong>. Il est joignable en HTTPS depuis le VLAN d&rsquo;administration, et c&rsquo;est <em>lui<\/em> qui initie les sondes (SNMPv3, ICMP) vers les \u00e9quipements autoris\u00e9s. Aucun acc\u00e8s utilisateur direct aux \u00e9quipements n&rsquo;est induit, et les flux vers la zone OT sont filtr\u00e9s au strict n\u00e9cessaire.<\/p>\n<figure class=\"sv-diagram\">\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 920 430\" role=\"img\" aria-label=\"Architecture de r\u00e9f\u00e9rence : VLAN Admin, VLAN Supervision avec LibreNMS, r\u00e9seau IT et zone OT\">\n  <rect x=\"0\" y=\"0\" width=\"920\" height=\"430\" rx=\"16\" fill=\"#f6f9fb\"\/>\n  <!-- VLAN Admin -->\n  <rect x=\"30\" y=\"150\" width=\"200\" height=\"120\" rx=\"14\" fill=\"#3aa3c4\"\/>\n  <text x=\"130\" y=\"192\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"17\" font-weight=\"700\" fill=\"#fff\">VLAN ADMIN IT<\/text>\n  <text x=\"130\" y=\"218\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" fill=\"#e8f6fa\">Postes des administrateurs<\/text>\n  <text x=\"130\" y=\"240\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" fill=\"#e8f6fa\">Navigateur, SSH<\/text>\n  <!-- VLAN Supervision -->\n  <rect x=\"330\" y=\"120\" width=\"260\" height=\"180\" rx=\"14\" fill=\"#003e53\"\/>\n  <text x=\"460\" y=\"155\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"14\" font-weight=\"700\" fill=\"#f4d648\">VLAN SUPERVISION \/ MANAGEMENT<\/text>\n  <rect x=\"360\" y=\"175\" width=\"200\" height=\"90\" rx=\"10\" fill=\"#fff\"\/>\n  <text x=\"460\" y=\"208\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"19\" font-weight=\"700\" fill=\"#003e53\">LibreNMS<\/text>\n  <text x=\"460\" y=\"232\" text-anchor=\"middle\" font-family=\"DejaVu Sans Mono, Menlo, monospace\" font-size=\"13\" fill=\"#003e53\">librenms01 \u00b7 10.20.50.20<\/text>\n  <text x=\"460\" y=\"252\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"12\" fill=\"#3aa3c4\">Web \u00b7 MariaDB \u00b7 Redis \u00b7 Dispatcher<\/text>\n  <!-- R\u00e9seau IT -->\n  <rect x=\"690\" y=\"60\" width=\"200\" height=\"120\" rx=\"14\" fill=\"#69bc75\"\/>\n  <text x=\"790\" y=\"102\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"17\" font-weight=\"700\" fill=\"#fff\">R\u00c9SEAU IT<\/text>\n  <text x=\"790\" y=\"128\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" fill=\"#f0fbf2\">Switchs, routeurs, pare-feu,<\/text>\n  <text x=\"790\" y=\"150\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" fill=\"#f0fbf2\">serveurs, onduleurs<\/text>\n  <!-- Zone OT -->\n  <rect x=\"690\" y=\"240\" width=\"200\" height=\"120\" rx=\"14\" fill=\"#e06e49\"\/>\n  <text x=\"790\" y=\"282\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"17\" font-weight=\"700\" fill=\"#fff\">ZONE OT \/ SCADA<\/text>\n  <text x=\"790\" y=\"308\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" fill=\"#fdeee8\">Automates, IHM, passerelles<\/text>\n  <text x=\"790\" y=\"330\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" font-weight=\"700\" fill=\"#fdeee8\">ACL strictes, jamais any\/any<\/text>\n  <!-- Fl\u00e8ches -->\n  <defs><marker id=\"arr\" markerWidth=\"10\" markerHeight=\"10\" refX=\"8\" refY=\"5\" orient=\"auto\"><path d=\"M0,0 L10,5 L0,10 z\" fill=\"#003e53\"\/><\/marker><\/defs>\n  <line x1=\"230\" y1=\"210\" x2=\"322\" y2=\"210\" stroke=\"#003e53\" stroke-width=\"3\" marker-end=\"url(#arr)\"\/>\n  <text x=\"276\" y=\"198\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"12\" font-weight=\"700\" fill=\"#003e53\">HTTPS 443<\/text>\n  <line x1=\"590\" y1=\"180\" x2=\"682\" y2=\"130\" stroke=\"#003e53\" stroke-width=\"3\" marker-end=\"url(#arr)\"\/>\n  <text x=\"640\" y=\"140\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"12\" font-weight=\"700\" fill=\"#003e53\">SNMPv3 \/ ICMP<\/text>\n  <line x1=\"590\" y1=\"250\" x2=\"682\" y2=\"295\" stroke=\"#e06e49\" stroke-width=\"3\" stroke-dasharray=\"8 5\" marker-end=\"url(#arr)\"\/>\n  <text x=\"640\" y=\"290\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"12\" font-weight=\"700\" fill=\"#e06e49\">SNMPv3 filtr\u00e9 (UDP 161)<\/text>\n  <!-- L\u00e9gende -->\n  <text x=\"460\" y=\"395\" text-anchor=\"middle\" font-family=\"Segoe UI, Helvetica, Arial, sans-serif\" font-size=\"13\" fill=\"#003e53\">Les flux de supervision sont toujours initi\u00e9s par LibreNMS. Autoriser au strict n\u00e9cessaire, interdire any\/any entre IT et OT.<\/text>\n<\/svg><figcaption>Architecture de r\u00e9f\u00e9rence pour un environnement IT\/OT segment\u00e9 : LibreNMS dans son VLAN, administration en HTTPS, sondes SNMPv3 vers les seuls \u00e9quipements autoris\u00e9s.<\/figcaption><\/figure>\n<h2>Docker Compose ou installation native ?<\/h2>\n<table>\n<thead>\n<tr>\n<th>Crit\u00e8re<\/th>\n<th>Docker Compose<\/th>\n<th>Installation native<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Mise en route<\/td>\n<td>Rapide : une pile versionn\u00e9e (LibreNMS, MariaDB, Redis, dispatcher)<\/td>\n<td>Plus longue : Nginx, PHP-FPM, MariaDB, RRDtool, Net-SNMP \u00e0 installer un par un<\/td>\n<\/tr>\n<tr>\n<td>Isolation<\/td>\n<td>Forte : rien n&rsquo;est install\u00e9 sur l&rsquo;OS h\u00f4te<\/td>\n<td>Faible : tout vit sur l&rsquo;OS<\/td>\n<\/tr>\n<tr>\n<td>Mises \u00e0 jour<\/td>\n<td><code>docker compose pull<\/code> puis <code>up -d<\/code><\/td>\n<td>Mise \u00e0 jour automatique quotidienne par LibreNMS (<code>daily.sh<\/code>) + paquets de l&rsquo;OS<\/td>\n<\/tr>\n<tr>\n<td>R\u00e9glages fins<\/td>\n<td>Via variables d&rsquo;environnement et fichiers mont\u00e9s<\/td>\n<td>Contr\u00f4le total (PHP, SNMP, cron, systemd)<\/td>\n<\/tr>\n<tr>\n<td>Surface de maintenance<\/td>\n<td>R\u00e9duite, mais il faut prot\u00e9ger <code>.env<\/code> et les volumes<\/td>\n<td>Plus large : plus de composants \u00e0 suivre<\/td>\n<\/tr>\n<tr>\n<td>Recommand\u00e9 pour<\/td>\n<td>Labo, PME, premi\u00e8re mise en production<\/td>\n<td>\u00c9quipes qui veulent ma\u00eetriser chaque brique<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sv-callout sv-callout--warn\">\n<p><strong>S\u00e9curit\u00e9 et NIS2 :<\/strong> appliquez le principe du moindre privil\u00e8ge, la tra\u00e7abilit\u00e9 des actions d&rsquo;administration, la gestion des vuln\u00e9rabilit\u00e9s, une restauration <em>test\u00e9e<\/em> et la s\u00e9paration IT\/OT. SNMPv2c reste utile pour un diagnostic ponctuel, mais <strong>SNMPv3 authPriv<\/strong> (authentification + chiffrement) est le choix de production.<\/p>\n<\/div>\n<h2>1. Architecture et pr\u00e9requis<\/h2>\n<h3>Dimensionnement<\/h3>\n<table>\n<thead>\n<tr>\n<th>Ressource<\/th>\n<th>Labo<\/th>\n<th>Production de d\u00e9part<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>CPU \/ RAM<\/td>\n<td>2 vCPU \/ 4 Go<\/td>\n<td>4 vCPU \/ 8 Go<\/td>\n<\/tr>\n<tr>\n<td>Disque<\/td>\n<td>40 Go<\/td>\n<td>100 \u00e0 200 Go, sur SSD (les fichiers RRD des graphes font beaucoup d&rsquo;\u00e9critures)<\/td>\n<\/tr>\n<tr>\n<td>R\u00e9seau<\/td>\n<td>1 Gbit\/s<\/td>\n<td>IP fixe + DNS + NTP<\/td>\n<\/tr>\n<tr>\n<td>P\u00e9rim\u00e8tre<\/td>\n<td>Jusqu&rsquo;\u00e0 25 \u00e9quipements<\/td>\n<td>Environ 100 \u00e9quipements ; ajustez selon le nombre de ports et la r\u00e9tention<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Plan d&rsquo;adressage d&rsquo;exemple<\/h3>\n<pre><code>Hostname : librenms01\nIP       : 10.20.50.20\/24\nGateway  : 10.20.50.1\nDNS      : 10.20.10.10\nFQDN     : librenms01.infra.local\nTimezone : Europe\/Paris<\/code><\/pre>\n<h3>Flux r\u00e9seau \u00e0 autoriser<\/h3>\n<table>\n<thead>\n<tr>\n<th>Flux<\/th>\n<th>Source<\/th>\n<th>Destination<\/th>\n<th>Port \/ protocole<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Administration<\/td>\n<td>VLAN Admin<\/td>\n<td>LibreNMS<\/td>\n<td>TCP 443 (TCP 22 si n\u00e9cessaire)<\/td>\n<\/tr>\n<tr>\n<td>Polling<\/td>\n<td>LibreNMS<\/td>\n<td>\u00c9quipements IT\/OT autoris\u00e9s<\/td>\n<td>UDP 161 SNMPv3 ; ICMP<\/td>\n<\/tr>\n<tr>\n<td>Traps (optionnel)<\/td>\n<td>\u00c9quipements<\/td>\n<td>LibreNMS<\/td>\n<td>UDP 162<\/td>\n<\/tr>\n<tr>\n<td>Alertes<\/td>\n<td>LibreNMS<\/td>\n<td>Relais SMTP<\/td>\n<td>TCP 587 ou 465<\/td>\n<\/tr>\n<tr>\n<td>Services<\/td>\n<td>LibreNMS<\/td>\n<td>DNS \/ NTP<\/td>\n<td>UDP\/TCP 53 ; UDP 123<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Un NTP fiable n&rsquo;est pas un luxe : SNMPv3 tol\u00e8re mal les horloges d\u00e9synchronis\u00e9es, et un graphe dat\u00e9 de travers ne sert \u00e0 rien.<\/p>\n<h2>2. D\u00e9ploiement via Docker Compose<\/h2>\n<p>Cette option regroupe LibreNMS, MariaDB, Redis, le dispatcher (polling) et un relais SMTP (<code>msmtpd<\/code>) dans une pile versionn\u00e9e, \u00e0 partir de l&rsquo;<a href=\"https:\/\/github.com\/librenms\/docker\/tree\/master\/examples\/compose\" rel=\"nofollow\">exemple officiel du projet librenms\/docker<\/a>. Elle simplifie l&rsquo;isolation, la mise \u00e0 jour et la restauration, \u00e0 condition de prot\u00e9ger le fichier <code>.env<\/code> et les volumes persistants.<\/p>\n<h3>2.1 Pr\u00e9parer Ubuntu et Docker<\/h3>\n<pre><code># Mise \u00e0 jour de l'OS\nsudo apt update\nsudo apt full-upgrade -y\n\n# Outils de base\nsudo apt install -y ca-certificates curl wget unzip nano openssl\n\n# Fuseau horaire\nsudo timedatectl set-timezone Europe\/Paris\n\n# Docker et Compose v2 depuis les d\u00e9p\u00f4ts Ubuntu\nsudo apt install -y docker.io docker-compose-v2\nsudo systemctl enable --now docker\n\n# Autoriser le compte courant, puis ouvrir une NOUVELLE session\nsudo usermod -aG docker \"$USER\"\ndocker --version\ndocker compose version<\/code><\/pre>\n<h3>2.2 R\u00e9cup\u00e9rer l&rsquo;exemple officiel et pr\u00e9parer les secrets<\/h3>\n<pre><code>sudo mkdir -p \/opt\/librenms-docker\nsudo chown \"$USER\":\"$USER\" \/opt\/librenms-docker\ncd \/opt\/librenms-docker\nwget https:\/\/github.com\/librenms\/docker\/archive\/refs\/heads\/master.zip\nunzip master.zip\ncp -a docker-master\/examples\/compose\/. .\n\n# V\u00e9rifier les fichiers pr\u00e9sents : compose.yml, .env, librenms.env, msmtpd.env\nls -la\n\n# G\u00e9n\u00e9rer un secret long ; le conserver dans un coffre de mots de passe\nopenssl rand -base64 36\nnano .env\nchmod 600 .env<\/code><\/pre>\n<p>Dans <code>.env<\/code>, d\u00e9finissez au minimum <code>TZ=Europe\/Paris<\/code>, <code>MYSQL_DATABASE=librenms<\/code>, <code>MYSQL_USER=librenms<\/code> et un <code>MYSQL_PASSWORD<\/code> al\u00e9atoire (remplacez la valeur d&rsquo;exemple livr\u00e9e avec le d\u00e9p\u00f4t). <code>PUID<\/code>\/<code>PGID<\/code> doivent correspondre \u00e0 l&rsquo;utilisateur propri\u00e9taire du dossier (<code>id -u<\/code>, <code>id -g<\/code>). Le relais mail se configure dans <code>msmtpd.env<\/code>.<\/p>\n<div class=\"sv-callout sv-callout--danger\">\n<p><strong>Ne d\u00e9posez jamais<\/strong> <code>.env<\/code> dans un d\u00e9p\u00f4t public, ni dans un ticket, ni dans une capture d&rsquo;\u00e9cran. C&rsquo;est la cl\u00e9 de votre base de donn\u00e9es.<\/p>\n<\/div>\n<h3>2.3 Valider puis d\u00e9marrer la pile<\/h3>\n<pre><code># V\u00e9rification de la syntaxe et des variables Compose\ndocker compose config\n\n# T\u00e9l\u00e9charger les images avant le d\u00e9marrage\ndocker compose pull\n\n# D\u00e9marrer en arri\u00e8re-plan\ndocker compose up -d\n\n# V\u00e9rifier l'\u00e9tat des services\ndocker compose ps\n\n# Suivre les journaux pendant le premier d\u00e9marrage (Ctrl+C pour sortir)\ndocker compose logs -f<\/code><\/pre>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-con_ps.jpg\" alt=\"Sortie de docker compose ps : conteneurs librenms, librenms_db, librenms_dispatcher, librenms_msmtpd et librenms_redis en \u00e9tat Up\" loading=\"lazy\"><figcaption>Apr\u00e8s <code>docker compose up -d<\/code>, tous les services doivent \u00eatre <strong>Up<\/strong>. Le port 8000 n&rsquo;est publi\u00e9 que par le conteneur <code>librenms<\/code>. (Capture console reconstitu\u00e9e \u00e0 partir des commandes du tutoriel \u2014 sortie d&rsquo;exemple.)<\/figcaption><\/figure>\n<h3>Rep\u00e8re visuel : la pile de services<\/h3>\n<table>\n<thead>\n<tr>\n<th>Service<\/th>\n<th>R\u00f4le<\/th>\n<th>Donn\u00e9e \u00e0 pr\u00e9server<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>librenms<\/code><\/td>\n<td>Interface web, API et application<\/td>\n<td>Configuration et fichiers applicatifs (<code>.\/librenms<\/code>)<\/td>\n<\/tr>\n<tr>\n<td><code>db<\/code> (MariaDB)<\/td>\n<td>Base de donn\u00e9es<\/td>\n<td>Dump SQL (<code>.\/db<\/code>)<\/td>\n<\/tr>\n<tr>\n<td><code>redis<\/code><\/td>\n<td>Cache et sessions<\/td>\n<td>Recr\u00e9able ; ce n&rsquo;est pas une sauvegarde<\/td>\n<\/tr>\n<tr>\n<td><code>dispatcher<\/code><\/td>\n<td>Polling p\u00e9riodique<\/td>\n<td>Configuration de la pile<\/td>\n<\/tr>\n<tr>\n<td><code>msmtpd<\/code><\/td>\n<td>Relais SMTP pour les alertes<\/td>\n<td><code>msmtpd.env<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>syslogng<\/code> \/ <code>snmptrapd<\/code><\/td>\n<td>Optionnels : journaux et traps<\/td>\n<td>Journaux si activ\u00e9s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>2.4 Premi\u00e8re connexion et validation<\/h3>\n<p>Ouvrez <code>http:\/\/10.20.50.20:8000<\/code> et cr\u00e9ez le compte administrateur. En production, publiez l&rsquo;interface derri\u00e8re un <strong>reverse proxy HTTPS<\/strong> et limitez l&rsquo;acc\u00e8s au VLAN Admin.<\/p>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-dashboard.jpg\" alt=\"Tableau de bord LibreNMS : carte de disponibilit\u00e9, r\u00e9sum\u00e9 des \u00e9quipements, top CPU et m\u00e9moire, alertes et journal d'\u00e9v\u00e9nements\" loading=\"lazy\"><figcaption>Le tableau de bord LibreNMS une fois les \u00e9quipements ajout\u00e9s : carte de disponibilit\u00e9, r\u00e9sum\u00e9 des \u00e9quipements et des ports, top CPU\/m\u00e9moire, alertes et journal d&rsquo;\u00e9v\u00e9nements. Capture issue de la <a href=\"https:\/\/github.com\/librenms\/librenms\/tree\/master\/doc\/img\" rel=\"nofollow\">documentation officielle LibreNMS<\/a> \u2014 licence GPL-3.0<\/figcaption><\/figure>\n<pre><code># Validation applicative depuis le conteneur\ndocker compose exec --user librenms librenms php validate.php\n\n# Contr\u00f4les compl\u00e9mentaires\ndocker compose ps\ndocker compose logs --tail=100 librenms\ndocker compose logs --tail=100 db<\/code><\/pre>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-con_validate.jpg\" alt=\"Sortie de validate.php : connexion base de donn\u00e9es OK, sch\u00e9ma correct, avertissement IPv6\" loading=\"lazy\"><figcaption>R\u00e9sultat attendu de <code>validate.php<\/code> : connexion MariaDB valide, sch\u00e9ma correct, aucun <code>[FAIL]<\/code>. Un <code>[WARN]<\/code> sur IPv6 est normal si vous ne supervisez pas d&rsquo;\u00e9quipements IPv6. (Capture console reconstitu\u00e9e d&rsquo;apr\u00e8s la sortie document\u00e9e par le projet.)<\/figcaption><\/figure>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-validate_web.jpg\" alt=\"Page de validation de l'interface web LibreNMS : chaque composant affiche Ok ou Warning\" loading=\"lazy\"><figcaption>La m\u00eame validation existe dans l&rsquo;interface web (menu \u2699 &gt; <em>Validate Config<\/em>) : chaque composant doit afficher <strong>Ok<\/strong>. Capture issue de la <a href=\"https:\/\/github.com\/librenms\/librenms\/tree\/master\/doc\/img\" rel=\"nofollow\">documentation officielle LibreNMS<\/a> \u2014 licence GPL-3.0<\/figcaption><\/figure>\n<h2>3. Installation native sur Ubuntu Server<\/h2>\n<p>L&rsquo;installation native place Nginx, PHP-FPM, MariaDB, RRDtool, Net-SNMP et les t\u00e2ches LibreNMS directement sur l&rsquo;OS. Elle facilite certains r\u00e9glages syst\u00e8me mais augmente la surface de maintenance. Les commandes ci-dessous suivent la <a href=\"https:\/\/docs.librenms.org\/Installation\/Install-LibreNMS\/\" rel=\"nofollow\">proc\u00e9dure officielle<\/a> (onglet Ubuntu 24.04 \/ NGINX) et s&rsquo;ex\u00e9cutent en <code>root<\/code>.<\/p>\n<div class=\"sv-callout sv-callout--warn\">\n<p><strong>Version de PHP :<\/strong> Ubuntu 24.04 ne fournit pas une version de PHP assez r\u00e9cente pour LibreNMS, d&rsquo;o\u00f9 le d\u00e9p\u00f4t tiers <em>Sury<\/em>. Au moment de la r\u00e9daction, la documentation officielle indique <strong>PHP 8.5 recommand\u00e9 (8.4 minimum)<\/strong>. V\u00e9rifiez la version attendue sur <a href=\"https:\/\/docs.librenms.org\/Installation\/Install-LibreNMS\/\" rel=\"nofollow\">docs.librenms.org<\/a> avant de figer les commandes : adaptez <code>8.5<\/code> partout ci-dessous si n\u00e9cessaire.<\/p>\n<\/div>\n<h3>3.1 Paquets et PHP<\/h3>\n<pre><code>sudo -i\napt update\napt full-upgrade -y\napt install -y lsb-release ca-certificates curl\n\n# D\u00e9p\u00f4t Sury (PHP r\u00e9cent pour Ubuntu 24.04)\ncurl -sSLo \/tmp\/debsuryorg-archive-keyring.deb https:\/\/packages.sury.org\/debsuryorg-archive-keyring.deb\ndpkg -i \/tmp\/debsuryorg-archive-keyring.deb\necho \"deb [signed-by=\/usr\/share\/keyrings\/debsuryorg-archive-keyring.gpg] https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main\" &gt; \/etc\/apt\/sources.list.d\/php.list\napt update\n\napt install -y acl curl fping git mariadb-client mariadb-server mtr-tiny nginx-full nmap \\\n  php8.5-cli php8.5-curl php8.5-fpm php8.5-gd php8.5-gmp php8.5-mbstring php8.5-mysql \\\n  php8.5-snmp php8.5-xml php8.5-zip python3-command-runner python3-dotenv python3-pip \\\n  python3-psutil python3-pymysql python3-redis python3-setuptools python3-systemd \\\n  rrdtool snmp snmpd traceroute unzip whois\n\nphp -v<\/code><\/pre>\n<h3>3.2 Utilisateur, code et permissions<\/h3>\n<pre><code>useradd librenms -d \/opt\/librenms -M -r -s \"$(which bash)\"\ncd \/opt\ngit clone https:\/\/github.com\/librenms\/librenms.git\nchown -R librenms:librenms \/opt\/librenms\nchmod 771 \/opt\/librenms\nsetfacl -d -m g::rwx \/opt\/librenms\/rrd \/opt\/librenms\/logs \/opt\/librenms\/bootstrap\/cache \/opt\/librenms\/storage\nsetfacl -R -m g::rwx \/opt\/librenms\/rrd \/opt\/librenms\/logs \/opt\/librenms\/bootstrap\/cache \/opt\/librenms\/storage\n\n# D\u00e9pendances PHP, en tant qu'utilisateur librenms\nsu - librenms\n.\/scripts\/composer_wrapper.php install --no-dev\nexit<\/code><\/pre>\n<p>Derri\u00e8re un proxy d&rsquo;entreprise, le <em>composer wrapper<\/em> peut \u00e9chouer : installez alors Composer manuellement (<code>wget https:\/\/getcomposer.org\/composer-stable.phar<\/code>, puis d\u00e9placez-le dans <code>\/usr\/bin\/composer<\/code> et rendez-le ex\u00e9cutable).<\/p>\n<h3>3.3 Fuseau horaire, MariaDB et PHP-FPM<\/h3>\n<pre><code># Fuseau horaire : dans les deux php.ini, r\u00e9gler date.timezone = Europe\/Paris\nnano \/etc\/php\/8.5\/fpm\/php.ini\nnano \/etc\/php\/8.5\/cli\/php.ini\ntimedatectl set-timezone Europe\/Paris\n\n# MariaDB : ajouter sous [mysqld] dans \/etc\/mysql\/mariadb.conf.d\/50-server.cnf\n#   innodb_file_per_table=1\n#   lower_case_table_names=0\nnano \/etc\/mysql\/mariadb.conf.d\/50-server.cnf\nsystemctl enable mariadb\nsystemctl restart mariadb\nmysql -u root<\/code><\/pre>\n<pre><code>CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'librenms'@'localhost' IDENTIFIED BY 'MOT_DE_PASSE_COMPLEXE';\nGRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';\nexit<\/code><\/pre>\n<pre><code># PHP-FPM : un pool d\u00e9di\u00e9\ncp \/etc\/php\/8.5\/fpm\/pool.d\/www.conf \/etc\/php\/8.5\/fpm\/pool.d\/librenms.conf\nnano \/etc\/php\/8.5\/fpm\/pool.d\/librenms.conf\n#   [librenms]                 (\u00e0 la place de [www])\n#   user = librenms\n#   group = librenms\n#   listen = \/run\/php-fpm-librenms.sock\nsystemctl restart php8.5-fpm<\/code><\/pre>\n<h3>3.4 Nginx, ligne de commande lnms et t\u00e2ches planifi\u00e9es<\/h3>\n<pre><code>nano \/etc\/nginx\/conf.d\/librenms.conf<\/code><\/pre>\n<pre><code>server {\n    listen 80;\n    server_name librenms01.infra.local;\n    root \/opt\/librenms\/html;\n    index index.php;\n    charset utf-8;\n    gzip on;\n    gzip_types text\/css application\/javascript text\/javascript application\/x-javascript image\/svg+xml text\/plain text\/xsd text\/xsl text\/xml image\/x-icon;\n    location \/ { try_files $uri $uri\/ \/index.php?$query_string; }\n    location ~ [^\/]\\.php(\/|$) {\n        fastcgi_pass unix:\/run\/php-fpm-librenms.sock;\n        fastcgi_split_path_info ^(.+\\.php)(\/.+)$;\n        include fastcgi.conf;\n    }\n    location ~ \/\\.(?!well-known).* { deny all; }\n}<\/code><\/pre>\n<pre><code># D\u00e9sactiver le site par d\u00e9faut, tester puis recharger\nrm \/etc\/nginx\/sites-enabled\/default\nnginx -t\nsystemctl restart nginx\n\n# Commande lnms + compl\u00e9tion\nln -s \/opt\/librenms\/lnms \/usr\/bin\/lnms\ncp \/opt\/librenms\/misc\/lnms-completion.bash \/etc\/bash_completion.d\/\n\n# Cron, scheduler systemd et rotation des journaux\ncp \/opt\/librenms\/dist\/librenms.cron \/etc\/cron.d\/librenms\ncp \/opt\/librenms\/dist\/librenms-scheduler.service \/opt\/librenms\/dist\/librenms-scheduler.timer \/etc\/systemd\/system\/\nsystemctl daemon-reload\nsystemctl enable --now librenms-scheduler.timer\ncp \/opt\/librenms\/misc\/librenms.logrotate \/etc\/logrotate.d\/librenms<\/code><\/pre>\n<p>Terminez l&rsquo;assistant sur <code>http:\/\/10.20.50.20\/install<\/code> (base de donn\u00e9es, compte administrateur). Si l&rsquo;assistant vous demande de cr\u00e9er <code>config.php<\/code>, copiez le contenu affich\u00e9 puis <code>chown librenms:librenms \/opt\/librenms\/config.php<\/code>. V\u00e9rifiez ensuite la configuration g\u00e9n\u00e9r\u00e9e, les droits et l&rsquo;\u00e9tat du timer : <code>systemctl status librenms-scheduler.timer<\/code>, puis <code>sudo -u librenms php \/opt\/librenms\/validate.php<\/code>.<\/p>\n<h2>4. SNMPv3 Cisco et ajout d&rsquo;\u00e9quipements<\/h2>\n<p>R\u00e8gle d&rsquo;or : <strong>testez le SNMP depuis le serveur LibreNMS<\/strong> avant de soup\u00e7onner l&rsquo;application. L&rsquo;identit\u00e9 SNMPv3, les algorithmes et les secrets doivent correspondre <em>exactement<\/em> entre l&rsquo;\u00e9quipement et LibreNMS.<\/p>\n<h3>4.1 Configuration Cisco IOS-XE de r\u00e9f\u00e9rence<\/h3>\n<pre><code>configure terminal\nip access-list standard ACL-SNMP-LIBRENMS\n permit host 10.20.50.20\n deny any log\nexit\nsnmp-server view LIBRENMS-VIEW iso included\nsnmp-server group LIBRENMS-GRP v3 priv read LIBRENMS-VIEW access ACL-SNMP-LIBRENMS\nsnmp-server user librenms LIBRENMS-GRP v3 auth sha AUTHENTICATION_SECRET priv aes 128 CHIFFREMENT_SECRET\nend\nwrite memory<\/code><\/pre>\n<p>En production : conservez les secrets dans un coffre, limitez la vue SNMP au besoin r\u00e9el si votre politique l&rsquo;impose, et v\u00e9rifiez que l&rsquo;ACL est appliqu\u00e9e sur l&rsquo;interface ou le VRF appropri\u00e9. Notez que <code>snmp-server user<\/code> n&rsquo;appara\u00eet pas dans <code>show running-config<\/code> : c&rsquo;est normal, utilisez <code>show snmp user<\/code>.<\/p>\n<h3>4.2 Tester SNMPv3 depuis LibreNMS<\/h3>\n<pre><code>snmpwalk -v3 -l authPriv -u librenms \\\n  -a SHA -A 'AUTHENTICATION_SECRET' \\\n  -x AES -X 'CHIFFREMENT_SECRET' \\\n  10.20.10.21 1.3.6.1.2.1.1<\/code><\/pre>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-con_snmp.jpg\" alt=\"Sortie de snmpwalk SNMPv3 : sysDescr, sysObjectID, sysUpTime, sysContact, sysName et sysLocation d'un switch Cisco\" loading=\"lazy\"><figcaption>R\u00e9sultat attendu : <code>sysDescr<\/code>, <code>sysObjectID<\/code>, <code>sysUpTime<\/code> et <code>sysName<\/code>. Un <em>timeout<\/em> indique presque toujours un probl\u00e8me de routage, d&rsquo;ACL, d&rsquo;UDP 161, de VRF, de secret ou d&rsquo;horloge. (Capture console reconstitu\u00e9e \u2014 sortie d&rsquo;exemple.)<\/figcaption><\/figure>\n<h3>4.3 Ajouter l&rsquo;\u00e9quipement dans LibreNMS<\/h3>\n<p>Chemin : <strong>Devices &gt; Add Device<\/strong>. Renseignez :<\/p>\n<table>\n<thead>\n<tr>\n<th>Champ<\/th>\n<th>Valeur d&rsquo;exemple<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Hostname \/ IP<\/td>\n<td>10.20.10.21<\/td>\n<\/tr>\n<tr>\n<td>Version SNMP<\/td>\n<td>v3<\/td>\n<\/tr>\n<tr>\n<td>Niveau<\/td>\n<td>authPriv<\/td>\n<\/tr>\n<tr>\n<td>Utilisateur<\/td>\n<td>librenms<\/td>\n<\/tr>\n<tr>\n<td>Auth \/ Priv<\/td>\n<td>SHA \/ AES<\/td>\n<\/tr>\n<tr>\n<td>Port<\/td>\n<td>161\/UDP<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-add_device.jpg\" alt=\"Formulaire Add Device de LibreNMS : hostname, SNMP activ\u00e9, version, mode d'association des ports\" loading=\"lazy\"><figcaption>Le formulaire <em>Add Device<\/em>. Sur cette capture de la documentation, la version est <code>v2c<\/code> avec une communaut\u00e9 : choisissez <strong>v3<\/strong> dans la liste pour faire appara\u00eetre les champs utilisateur, niveau <em>authPriv<\/em>, algorithmes et secrets. Laissez <em>Force add<\/em> sur OFF : LibreNMS v\u00e9rifie d&rsquo;abord la joignabilit\u00e9 ping\/SNMP. Capture issue de la <a href=\"https:\/\/github.com\/librenms\/librenms\/tree\/master\/doc\/img\" rel=\"nofollow\">documentation officielle LibreNMS<\/a> \u2014 licence GPL-3.0<\/figcaption><\/figure>\n<p>Apr\u00e8s l&rsquo;ajout, attendez le premier polling (5 minutes par d\u00e9faut), puis v\u00e9rifiez l&rsquo;\u00e9tat de disponibilit\u00e9, les ports, les graphes et les alertes.<\/p>\n<h2>5. Exploitation : validation, sauvegarde, mise \u00e0 jour<\/h2>\n<h3>5.1 Checklist de validation<\/h3>\n<ul class=\"sv-checklist\">\n<li><strong>DNS \/ NTP<\/strong> \u2014 r\u00e9solution du FQDN et heure synchronis\u00e9e (<code>timedatectl<\/code>)<\/li>\n<li><strong>Services<\/strong> \u2014 <code>docker compose ps<\/code> ou <code>systemctl --failed<\/code><\/li>\n<li><strong>Web<\/strong> \u2014 connexion HTTPS depuis le VLAN Admin uniquement<\/li>\n<li><strong>Base<\/strong> \u2014 <code>validate.php<\/code> sans erreur<\/li>\n<li><strong>SNMP<\/strong> \u2014 <code>snmpwalk<\/code> v3 r\u00e9ussi depuis LibreNMS<\/li>\n<li><strong>Polling<\/strong> \u2014 derni\u00e8re collecte r\u00e9cente sur chaque \u00e9quipement<\/li>\n<li><strong>Alertes<\/strong> \u2014 test d&rsquo;une r\u00e8gle et r\u00e9ception d&rsquo;un e-mail via le relais SMTP<\/li>\n<li><strong>Restauration<\/strong> \u2014 dump restaur\u00e9 dans un environnement isol\u00e9, au moins une fois<\/li>\n<\/ul>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-alerts.png\" alt=\"Collection de r\u00e8gles d'alerte pr\u00eates \u00e0 l'emploi dans LibreNMS : device down, reboot, port down, utilisation de port, capteurs\" loading=\"lazy\"><figcaption>Pour tester les alertes, piochez dans la <em>Alert rule collection<\/em> (Alerts &gt; Alert Rules &gt; <em>Load from Collection<\/em>) : \u00ab Devices up\/down \u00bb, \u00ab Port status up\/down \u00bb ou \u00ab Sensor over limit \u00bb suffisent pour d\u00e9marrer. Capture issue de la <a href=\"https:\/\/github.com\/librenms\/librenms\/tree\/master\/doc\/img\" rel=\"nofollow\">documentation officielle LibreNMS<\/a> \u2014 licence GPL-3.0<\/figcaption><\/figure>\n<h3>5.2 Sauvegarde (Docker)<\/h3>\n<pre><code>sudo mkdir -p \/backup\/librenms\ncd \/opt\/librenms-docker\n\n# Dump SQL (adapter le nom du conteneur si docker compose ps affiche autre chose)\ndocker exec librenms_db sh -c 'mariadb-dump -u\"$MYSQL_USER\" -p\"$MYSQL_PASSWORD\" \"$MYSQL_DATABASE\"' \\\n  &gt; \/backup\/librenms\/librenms-$(date +%F).sql\n\n# Donn\u00e9es persistantes, configuration et RRD\nsudo tar -czf \/backup\/librenms\/librenms-data-$(date +%F).tar.gz \/opt\/librenms-docker\n\n# V\u00e9rifier taille et pr\u00e9sence des archives\nls -lh \/backup\/librenms<\/code><\/pre>\n<p>Chiffrez les sauvegardes au repos, copiez-les vers un emplacement s\u00e9par\u00e9, appliquez une r\u00e9tention et <strong>testez r\u00e9guli\u00e8rement une restauration<\/strong>. Les RRD sont volumineux mais pr\u00e9cieux (tout l&rsquo;historique des graphes) ; Redis est recr\u00e9able. Relisez au besoin la <a href=\"https:\/\/asfy.fr\/index.php\/tutoriels\/sauvegardes-3-2-1-la-regle-a-connaitre-avant-quil-ne-soit-trop-tard\/\">r\u00e8gle 3-2-1<\/a>.<\/p>\n<h3>5.3 Mise \u00e0 jour (Docker)<\/h3>\n<pre><code>cd \/opt\/librenms-docker\n# 1. V\u00e9rifier qu'une sauvegarde r\u00e9cente existe\n# 2. R\u00e9cup\u00e9rer les nouvelles images\ndocker compose pull\n# 3. Recr\u00e9er les services\ndocker compose up -d\n# 4. V\u00e9rifier l'\u00e9tat et la validation\ndocker compose ps\ndocker compose exec --user librenms librenms php validate.php<\/code><\/pre>\n<p>\u00c9vitez <code>docker compose down<\/code> hors fen\u00eatre de maintenance et sans sauvegarde v\u00e9rifi\u00e9e. Lisez les notes de version et validez d&rsquo;abord sur une instance de test lorsque la version majeure change.<\/p>\n<h3>5.4 Mise \u00e0 jour (native)<\/h3>\n<p>Par d\u00e9faut, LibreNMS <strong>se met \u00e0 jour tout seul chaque nuit<\/strong> via le script <code>daily.sh<\/code> lanc\u00e9 par le cron install\u00e9 \u00e0 l&rsquo;\u00e9tape 3.4 (d\u00e9sactivable avec <code>lnms config:set update false<\/code>). Pour forcer une mise \u00e0 jour manuelle :<\/p>\n<pre><code>su - librenms\ncd \/opt\/librenms\n.\/daily.sh\nphp validate.php\nexit<\/code><\/pre>\n<p>N&rsquo;oubliez pas les paquets de l&rsquo;OS (<code>apt update &amp;&amp; apt full-upgrade<\/code>) et red\u00e9marrez <code>php8.5-fpm<\/code> et <code>nginx<\/code> apr\u00e8s une mise \u00e0 jour de PHP.<\/p>\n<h2>6. D\u00e9pannage rapide<\/h2>\n<table>\n<thead>\n<tr>\n<th>Sympt\u00f4me<\/th>\n<th>V\u00e9rifications prioritaires<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Page web inaccessible<\/td>\n<td>IP, DNS, port publi\u00e9, <code>nginx -t<\/code> ou <code>docker compose ps<\/code>, pare-feu local<\/td>\n<\/tr>\n<tr>\n<td>Timeout SNMP<\/td>\n<td>Route, ACL, UDP 161, VRF, IP source, secrets et heure NTP<\/td>\n<\/tr>\n<tr>\n<td>Polling absent<\/td>\n<td>Dispatcher actif, timer\/cron, logs LibreNMS, taille de file et charge CPU<\/td>\n<\/tr>\n<tr>\n<td>Erreur base<\/td>\n<td>\u00c9tat MariaDB, variables <code>.env<\/code>, droits, espace disque, journaux <code>db<\/code><\/td>\n<\/tr>\n<tr>\n<td>Graphes vides<\/td>\n<td>RRD accessibles en \u00e9criture, polling ex\u00e9cut\u00e9, fuseau horaire coh\u00e9rent<\/td>\n<\/tr>\n<tr>\n<td>Alertes non re\u00e7ues<\/td>\n<td>Configuration SMTP, relais, DNS, journaux et test vers une bo\u00eete de test<\/td>\n<\/tr>\n<tr>\n<td>Disque plein<\/td>\n<td><code>du -xh<\/code>, r\u00e9tention des logs, RRD, sauvegardes externes et rotation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Commandes de diagnostic<\/h3>\n<pre><code># Docker\ndocker compose ps\ndocker compose logs --tail=200 librenms\ndocker compose logs --tail=200 dispatcher\ndocker system df\ndf -h\n\n# Natif\nsystemctl --failed\nsystemctl status nginx php8.5-fpm mariadb librenms-scheduler.timer snmpd\njournalctl -u librenms-scheduler.timer --since today\ntail -n 100 \/opt\/librenms\/logs\/librenms.log\ndf -h\n\n# R\u00e9seau et SNMP\nip route\nss -lntup\nsnmpwalk -v3 -l authPriv -u librenms -a SHA -A 'AUTH' -x AES -X 'PRIV' 10.20.10.21 1.3.6.1.2.1.1<\/code><\/pre>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-troubleshoot.png\" alt=\"Onglet Capture Debug Information d'un \u00e9quipement LibreNMS : boutons Run, Copy, Download pour Discovery, Poller, SNMP et Alerts\" loading=\"lazy\"><figcaption>Pour un \u00e9quipement pr\u00e9cis, l&rsquo;onglet \u2699 &gt; <em>Capture<\/em> de sa fiche rejoue la d\u00e9couverte, le polling ou le SNMP en mode debug, directement depuis l&rsquo;interface. Pratique pour joindre un diagnostic \u00e0 un ticket. Capture issue de la <a href=\"https:\/\/github.com\/librenms\/librenms\/tree\/master\/doc\/img\" rel=\"nofollow\">documentation officielle LibreNMS<\/a> \u2014 licence GPL-3.0<\/figcaption><\/figure>\n<div class=\"sv-callout sv-callout--danger\">\n<p><strong>Ne partagez jamais les secrets<\/strong> dans la sortie d&rsquo;un ticket : masquez mots de passe, jetons et cha\u00eenes de communaut\u00e9 avant tout partage (y compris dans les captures de debug ci-dessus).<\/p>\n<\/div>\n<h2>7. Checklist de mise en production<\/h2>\n<ul class=\"sv-checklist\">\n<li><strong>R\u00e9seau<\/strong> \u2014 VLAN supervision d\u00e9di\u00e9 ; ACL par \u00e9quipement ; aucun any\/any IT-OT<\/li>\n<li><strong>Identit\u00e9<\/strong> \u2014 compte admin nominatif, MFA ou contr\u00f4le \u00e9quivalent si disponible, droits minimaux<\/li>\n<li><strong>Chiffrement<\/strong> \u2014 HTTPS ; SNMPv3 authPriv ; secrets dans un coffre<\/li>\n<li><strong>Journalisation<\/strong> \u2014 logs applicatifs et d&rsquo;administration conserv\u00e9s et surveill\u00e9s<\/li>\n<li><strong>R\u00e9silience<\/strong> \u2014 sauvegarde SQL + donn\u00e9es + configuration ; copie s\u00e9par\u00e9e ; restauration test\u00e9e<\/li>\n<li><strong>Maintenance<\/strong> \u2014 fen\u00eatre de mise \u00e0 jour, notes de version, proc\u00e9dure de retour arri\u00e8re<\/li>\n<li><strong>Conformit\u00e9<\/strong> \u2014 inventaire, analyse de risque, gestion des vuln\u00e9rabilit\u00e9s et preuves de contr\u00f4le, en coh\u00e9rence avec NIS2<\/li>\n<\/ul>\n<figure class=\"sv-screenshot\"><img decoding=\"async\" src=\"https:\/\/asfy.fr\/wp-content\/uploads\/2026\/09\/librenms-superviser-son-reseau-docker-compose-networkmap.png\" alt=\"Carte r\u00e9seau g\u00e9n\u00e9r\u00e9e par LibreNMS : n\u0153uds reli\u00e9s par leurs liens d\u00e9couverts\" loading=\"lazy\"><figcaption>La r\u00e9compense : une fois les \u00e9quipements ajout\u00e9s, LibreNMS dessine la carte de votre r\u00e9seau \u00e0 partir des liens d\u00e9couverts (LLDP\/CDP). Capture issue de la <a href=\"https:\/\/github.com\/librenms\/librenms\/tree\/master\/doc\/img\" rel=\"nofollow\">documentation officielle LibreNMS<\/a> \u2014 licence GPL-3.0<\/figcaption><\/figure>\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.librenms.org\/Installation\/Install-LibreNMS\/\" rel=\"nofollow\">Documentation officielle \u2014 Install LibreNMS<\/a> (versions de PHP, paquets, permissions, Nginx, scheduler)<\/li>\n<li><a href=\"https:\/\/github.com\/librenms\/docker\" rel=\"nofollow\">D\u00e9p\u00f4t librenms\/docker<\/a> \u2014 image officielle, exemple Compose, commande de validation<\/li>\n<li><a href=\"https:\/\/docs.librenms.org\/General\/Updating\/\" rel=\"nofollow\">Documentation officielle \u2014 Updating<\/a><\/li>\n<li><a href=\"https:\/\/docs.librenms.org\/Support\/SNMP-Configuration-Examples\/\" rel=\"nofollow\">Documentation officielle \u2014 SNMP Configuration Examples<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>LibreNMS de A \u00e0 Z : architecture cloisonn\u00e9e IT\/OT, d\u00e9ploiement Docker Compose ou installation native sur Ubuntu Server, SNMPv3 sur Cisco, validation, sauvegarde, mise \u00e0 jour et d\u00e9pannage.<\/p>\n","protected":false},"featured_media":333,"template":"","sv_tuto_categorie":[23],"class_list":["post-334","sv_tutoriel","type-sv_tutoriel","status-publish","has-post-thumbnail","hentry","sv_tuto_categorie-reseau"],"_links":{"self":[{"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/sv_tutoriel\/334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/sv_tutoriel"}],"about":[{"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/types\/sv_tutoriel"}],"version-history":[{"count":1,"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/sv_tutoriel\/334\/revisions"}],"predecessor-version":[{"id":335,"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/sv_tutoriel\/334\/revisions\/335"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/media\/333"}],"wp:attachment":[{"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/media?parent=334"}],"wp:term":[{"taxonomy":"sv_tuto_categorie","embeddable":true,"href":"https:\/\/asfy.fr\/index.php\/wp-json\/wp\/v2\/sv_tuto_categorie?post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}