Installer NetBox ne coûte rien, puisqu’il est publié en logiciel libre (open source). Ce qui coûte, c’est de le tenir juste.
Qu’est-ce que NetBox, et que veut dire « source de vérité » ?
Sa page d’introduction le dit en une phrase : « NetBox vise à représenter l’état voulu d’un réseau, par opposition à son état opérationnel » (traduit de l’anglais). L’état voulu est celui que l’équipe a décidé, pas celui observé sur le terrain. C’est le sens de « source de vérité » dans sa documentation : un référentiel vérifié par des personnes, d’où les autres outils tirent leurs données.
Publié en 2016 sous licence Apache 2, le projet existe en version communautaire, gratuite et auto-hébergée, et en versions Cloud et Enterprise vendues par NetBox Labs. Une instance de démonstration publique permet de l’essayer. Sa documentation pose deux principes :
- l’import automatique de l’état réel y est fortement déconseillé ;
- toute donnée doit être vérifiée par une personne avant d’y entrer, pour alimenter ensuite la supervision et le provisionnement en confiance.
Que modélise NetBox pour un opérateur d’infrastructure ?
NetBox couvre le physique, le réseau et le rattachement aux clients dans un même modèle de données. Les objets utiles à un opérateur se regroupent ainsi :
| Domaine | Objets NetBox | Question à laquelle il répond |
|---|---|---|
| Implantation | Régions, groupes de sites, sites, emplacements (étage, salle), baies, réservations d’unités | Où poser un équipement, et qu’est-ce qui est déjà promis ? |
| Équipements | Types d’équipements, modules, interfaces, ports console, ports avant et arrière | De quoi est fait cet équipement, et qu’est-ce qui est libre dessus ? |
| Câblage | Câbles entre composants, panneaux de brassage via les ports avant et arrière | Par où passe ce lien, de bout en bout ? |
| Alimentation | Tableaux électriques, départs, ports d’alimentation, PDU et prises | Sur quel départ cet équipement est-il branché, principal ou redondant ? |
| Circuits | Fournisseurs, circuits, terminaisons A et Z, réseaux de fournisseurs | Quel lien loué arrive dans quelle salle, et chez qui ? |
| Adressage (IPAM) | Agrégats, préfixes, plages, adresses IP, VRF, VLAN, numéros d’AS | Quelle adresse est libre, et quel préfixe est saturé ? |
| Virtualisation | Clusters, machines virtuelles, interfaces virtuelles | Sur quel cluster tourne cette machine, et pour quel client ? |
| Clients | Locataires (tenants) et groupes de locataires, contacts | À quel client appartient cette baie, ce port, ce préfixe ? |
Deux détails comptent en exploitation. Les composants d’un équipement sont copiés depuis son type au moment de sa création : modifier le type ensuite ne change pas les équipements existants. Et chaque objet ne peut appartenir qu’à un seul locataire ; une ressource partagée entre clients ne doit être affectée à aucun.
Pour l’espace, l’énergie et la capacité restante d’une salle, voir notre guide sur le DCIM en datacenter : NetBox y tient le registre, pas la mesure.
Que ne fait pas NetBox ?
NetBox ne découvre pas, ne supervise pas et ne pousse pas de configuration. Sa documentation exclut cinq usages de son périmètre : la supervision, le serveur DNS, le serveur RADIUS, la gestion de configuration et la gestion des installations techniques.
Il n’interagit pas directement avec les équipements ; il sert ses données à d’autres outils. Trois versions de l’infrastructure coexistent :
| Version | Où elle vit | Ce qu’elle sait |
|---|---|---|
| Voulue | NetBox | Ce qui devrait exister, où, pour quel client |
| Découverte | Scans, interrogation des équipements, tables des commutateurs | Ce qui répond réellement, avec sa configuration |
| Supervisée | Outil de supervision | Ce qui est surveillé, dans quel état |
Leurs écarts sont des informations à traiter, pas une panne.
Que faut-il pour faire tourner NetBox ?
NetBox est une application web en Python, construite sur Django, qui s’appuie sur PostgreSQL pour les données et sur Redis pour le cache et les files de tâches. Sa documentation décrit une installation sur Ubuntu, derrière nginx ou Apache. Le projet communautaire netbox-docker fournit une image en conteneurs. L’instance elle-même s’exploite : version épinglée, mises à jour suivies, sauvegarde de la base, restauration testée.
Comment tenir NetBox juste dans la durée ?
NetBox reste juste si chaque donnée a un seul auteur et si un rapprochement régulier le compare à la découverte et à la supervision.
Qui écrit quoi. Un auteur par type d’objet, écrit dans une table courte :
| Donnée | Auteur | Moment |
|---|---|---|
| Baies, réservations, câblage physique | Équipe d’installation | À la clôture de l’intervention |
| Préfixes, adresses, VLAN | Équipe réseau | Avant la mise en service |
| Circuits et terminaisons | Équipe réseau ou achats | À la livraison du lien |
| Locataire d’un objet | Personne qui valide la commande | À la réservation |
Le rapprochement. Comparez à intervalle fixe NetBox avec ce que voient les commutateurs, la supervision et les PDU. Chaque écart devient une tâche avec un propriétaire. La méthode générale est détaillée dans notre guide CMDB : pourquoi elle est fausse et comment la tenir à jour.
Les mécanismes de NetBox. Ils se combinent :
- champs personnalisés : ils ajoutent des attributs aux objets sans toucher au schéma et apparaissent dans l’interface et l’API ;
- scripts personnalisés : exécutés à la demande ou planifiés, ils contrôlent aussi l’intégrité des données, par exemple que chaque équipement actif a assez d’alimentations raccordées ;
- règles d’événement : à la création, la modification ou la suppression d’un objet, elles lancent un script, envoient un webhook ou notifient un utilisateur ;
- API : lecture, création, modification et suppression des objets, jetons restreints à la lecture si besoin, et une API GraphQL. La bibliothèque Python pynetbox, la collection Ansible netbox.netbox (inventaire dynamique) et un fournisseur Terraform maintenu par E. Breuninger la consomment ;
- journal des modifications et notes : chaque changement garde l’auteur, l’heure et l’état avant et après ; les notes (journaling) expliquent pourquoi.
Un script de contrôle lancé sans enregistrement ne modifie rien : il produit la liste des écarts sans écrire.
Qu’est-ce qui reste à la main autour de NetBox ?
Le travail entre les outils reste à la main : NetBox tient le référentiel, mais les demandes, les tickets et les avis aux clients vivent ailleurs. Trois flux le montrent :
- les demandes clients : une demande de baie ou de port arrive par courriel ou par le portail client. Quelqu’un vérifie la disponibilité dans NetBox, réserve, ouvre le ticket, puis met à jour après intervention ;
- les tickets : un incident sur un équipement se traite dans l’outil de tickets. Retrouver les clients touchés demande de suivre à la main les câbles, les circuits et les locataires dans NetBox ;
- les avis de maintenance : un fournisseur annonce une coupure sur un circuit. Il faut remonter aux équipements et aux clients concernés, puis rédiger les avis.
L’enchaînement crée les écarts : réservation oubliée, câble posé mais non saisi, client oublié dans un avis. C’est ce que Hopwise Labs construit autour de la source de vérité : des rapprochements par règles, un agent seulement sur le résidu ambigu, et une personne qui valide avant toute modification dans NetBox.
Quand faut-il un plugin ou un outil maison ?
Un plugin s’impose quand il faut de nouveaux objets dans NetBox ; un outil maison, quand le besoin porte sur le flux entre plusieurs outils. Avant l’un ou l’autre, vérifiez qu’un champ personnalisé ou un script ne suffit pas.
| Besoin | Réponse adaptée | Ce qu’il faut savoir |
|---|---|---|
| Un attribut de plus sur un objet existant | Champ personnalisé | Pas de code, visible dans l’interface et l’API |
| Un contrôle ou une création en série | Script personnalisé | Exécutable à la demande ou planifié |
| Réagir à un changement dans un autre outil | Règle d’événement et webhook | Traité en tâche de fond par NetBox |
| Un objet que NetBox ne connaît pas (commande, contrat, intervention) | Plugin | Ajoute modèles et vues ; ne peut pas modifier les modèles de base |
| Un flux qui traverse tickets, courriels, supervision et NetBox | Outil maison qui appelle l’API | À maintenir : documentation, tests, plus d’une personne qui le connaît |
En résumé
NetBox décrit l’état voulu d’une infrastructure ; il ne découvre pas, ne supervise pas et ne pousse pas de configuration. Il reste juste avec un auteur par donnée, un rapprochement régulier et des corrections validées par une personne. Le travail à la main se situe entre NetBox et les autres outils.
Questions fréquentes
NetBox peut-il servir d’IPAM ?
Oui. Il gère agrégats, préfixes, plages, adresses IP, VRF, VLAN et numéros d’AS, et calcule automatiquement le taux d’occupation de chaque préfixe. Son API renvoie les préfixes et les adresses encore libres d’un préfixe. Il tient le plan d’adressage sans interagir avec les équipements : d’autres outils l’appliquent.
NetBox découvre-t-il les équipements tout seul ?
Non. Selon sa documentation, NetBox n’interagit pas directement avec les équipements et décrit l’état voulu du réseau, pas son état opérationnel. L’import automatique de l’état réel y est fortement déconseillé : les données doivent être vérifiées par une personne avant d’y entrer.
NetBox remplace-t-il la supervision ?
Non. La supervision fait partie des usages que la documentation de NetBox exclut explicitement, avec le serveur DNS, le serveur RADIUS, la gestion de configuration et la gestion des installations techniques. NetBox fournit en revanche à la supervision la liste de ce qu’elle doit surveiller.
NetBox peut-il servir de DCIM ?
Pour la partie registre, oui : sites, salles, baies, réservations d’unités, tableaux électriques, départs, prises et câbles. Il ne mesure ni la consommation, ni la température, ni les alarmes. Ces relevés viennent d’autres outils et se rapprochent avec lui.
Faut-il un plugin pour gérer les clients dans NetBox ?
Pas pour les rattacher : le modèle des locataires (tenants) représente un client ou une entité interne, et la plupart des objets peuvent lui être affectés. Un plugin devient utile quand il faut suivre des objets que NetBox ne modélise pas, comme une commande ou un contrat.
Sources
- Documentation NetBox : Introduction (source de vérité, ce que NetBox n’est pas)
- NetBox sur GitHub : présentation du projet, licence Apache 2
- Documentation NetBox : Facilities (régions, sites, emplacements, baies)
- Documentation NetBox : Devices & Cabling
- Documentation NetBox : Power Tracking
- Documentation NetBox : Circuits
- Documentation NetBox : IP Address Management
- Documentation NetBox : VLAN Management
- Code source de NetBox : points d’API des préfixes et adresses disponibles
- Documentation NetBox : Virtualization
- Documentation NetBox : Installation (Python, PostgreSQL, Redis, serveur web)
- Documentation NetBox : Redis, cache et files de tâches
- netbox-docker : image en conteneurs maintenue par la communauté
- pynetbox : client Python de l’API NetBox
- Collection Ansible netbox.netbox (inventaire dynamique)
- Fournisseur Terraform pour NetBox (E. Breuninger)
- Documentation NetBox : Tenancy
- Documentation NetBox : Custom Fields
- Documentation NetBox : Custom Scripts
- Documentation NetBox : Event Rules
- Documentation NetBox : Change Logging
- Documentation NetBox : Journaling
- Documentation NetBox : l’API de lecture et d’écriture
- Documentation NetBox : Plugins