Files
2026-06-09 18:40:21 +02:00

182 lines
7.2 KiB
Markdown

---
title: NetBox
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, monitoring, network, infrastructure, dcim, ipam, python, production]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/netbox-community/netbox]
---
# 📊 NetBox
> **La source de vérité de votre infrastructure réseau** : DCIM, IPAM, gestion des racks, circuits, câblage. L'outil de référence des opérateurs réseau et hébergeurs.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [netbox.dev](https://netbox.dev/) |
| **GitHub** | [netbox-community/netbox](https://github.com/netbox-community/netbox) |
| **License** | Apache-2.0 |
| **Langage** | Python (Django) |
| **Étoiles GitHub** | 20.8k ⭐ |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-monitoring|Monitoring]], Network, DCIM, IPAM |
## 📝 Description
**NetBox** est l'**outil open source de référence** pour modéliser et documenter les **infrastructures réseau**. Conçu à l'origine par l'équipe réseau de **DigitalOcean** (devenu ensuite **NetBox Labs**), il est aujourd'hui utilisé par des milliers d'organisations : hébergeurs, opérateurs, grandes entreprises, gouvernements.
C'est une **single source of truth (SSoT)** pour toute votre infrastructure : chaque device, chaque port, chaque VLAN, chaque IP, chaque rack est documenté. NetBox n'est pas un outil de monitoring temps réel (vs [[app-uptime-kuma]] ou [[app-netdata]]) — c'est un **outil de modélisation et d'inventaire**.
Fonctionnalités principales :
-**DCIM** (Data Center Infrastructure Management) : racks, devices, ports, câblage
-**IPAM** (IP Address Management) : préfixes, IPs, VRFs, VLANs
-**Circuits** : liens opérateurs, providers, types de contrats
-**Virtualisation** : VMs, clusters, interfaces virtuelles
-**Wireless** : WLANs, SSIDs, points d'accès
-**Power** : PDUs, feeds, connexions électriques
-**API REST** et **GraphQL** complètes (NetBox est "API-first")
-**Plugins** : extensible par la communauté
-**Webhooks** : synchronisation vers Prometheus, Ansible, etc.
-**Custom fields** : adapter le modèle à votre infra
-**Power search** : filtres avancés sur toutes les relations
-**Visualisations** : diagrammes de racks, topologies
**Public cible** : **ingénieurs réseau, opérateurs, hébergeurs, grands comptes**. Pas pour le homelab basique — NetBox brille quand on a 50+ devices.
**Comparaison** : NetBox est **complémentaire** aux outils de monitoring (Uptime Kuma, Netdata, Prometheus) : il ne vous dit pas si un serveur est down, il vous dit **où il est, comment il est branché, et à qui appartient cette IP**. C'est l'équivalent d'un **gestionnaire de parc** (GLPI) mais spécialisé réseau. Alternatives : **phpIPAM** (IPAM pur, plus léger), **RackTables** (DCIM pur), **Nautobot** (fork de NetBox par Network to Code).
## 🚀 Installation
### Option 1 : Docker Compose (officiel, recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
netbox:
image: netboxcommunity/netbox:latest
container_name: netbox
restart: unless-stopped
depends_on:
- postgres
- redis
ports:
- "8000:8000" # Web UI
environment:
ALLOWED_HOSTS: netbox.example.com
DB_NAME: netbox
DB_USER: netbox
DB_PASSWORD: netbox-password
DB_HOST: postgres
REDIS_HOST: redis
REDIS_PASSWORD: ""
SECRET_KEY: "votre-secret-key-50-chars-min-random"
volumes:
- netbox-data:/opt/netbox/netbox/media
labels:
- "traefik.enable=true"
- "traefik.http.routers.netbox.rule=Host(`netbox.example.com`)"
- "traefik.http.routers.netbox.entrypoints=websecure"
- "traefik.http.routers.netbox.tls.certresolver=letsencrypt"
postgres:
image: postgres:15-alpine
container_name: netbox-postgres
restart: unless-stopped
environment:
POSTGRES_DB: netbox
POSTGRES_USER: netbox
POSTGRES_PASSWORD: netbox-password
volumes:
- netbox-postgres:/var/lib/postgresql/data
redis:
image: redis:7-alpine
container_name: netbox-redis
restart: unless-stopped
volumes:
netbox-data:
netbox-postgres:
```
### Option 2 : Paquets officiels (Debian/Ubuntu)
```bash
# NetBox fournit des paquets natifs
wget https://github.com/netbox-community/netbox/releases/download/v4.1.0/netbox-4.1.0.tar.gz
# Suivre la doc : https://docs.netbox.dev/installation/
```
## ⚙️ Configuration Initiale
1. **Accéder à l'UI** : `http://IP:8000`
2. **Créer le superuser** : `docker exec -it netbox python manage.py createsuperuser`
3. **Définir le modèle de données** : créer vos **sites** (datacenters), **racks**, **device roles**, **device types**
4. **Importer l'existant** : via l'API REST ou des scripts Python (pas d'UI bulk import native)
5. **Connecter un outil de monitoring** : via l'API, NetBox devient la source de vérité pour Prometheus, Ansible, etc.
6. **Configurer les custom fields** : adapter NetBox à votre infrastructure (ex: contrat_support, date_achat, etc.)
## 🔄 Alternatives
### Open Source
- **Nautobot** — Fork par Network to Code, plus extensible, hooks avancés
- **phpIPAM** — IPAM pur, plus léger, PHP
- **RackTables** — DCIM pur, PHP, plus ancien
- **Device42** — Concurrent direct, freemium (anciennement open source)
- **InfraBox** — Clone moderne en Go, mais peu actif
- **GLPI + plugin Network** — GLPI est plus généraliste
### Comparaison NetBox vs alternatives
| Critère | NetBox | Nautobot | phpIPAM | RackTables |
| :--- | :--- | :--- | :--- | :--- |
| Self-hosted | ✅ | ✅ | ✅ | ✅ |
| DCIM | ✅ | ✅ | ❌ | ✅ |
| IPAM | ✅ | ✅ | ✅ | Basique |
| API | REST + GraphQL | REST + GraphQL | REST | Basique |
| Plugins | ✅ | ✅ (plus riche) | ❌ | ❌ |
| UI | Moderne | Moderne | Datée | Très datée |
| Licence | Apache-2.0 | Apache-2.0 | GPL-3.0 | GPL-2.0 |
**Verdict** : NetBox est **la référence** pour la modélisation réseau. Nautobot est son principal challenger (plus extensible, hooks puissants).
### Propriétaires (ce que NetBox remplace)
- **Device42** (payant, freemium)
- **Infoblox** (très cher, IPAM/DHCP/DNS)
- **SolarWinds IPAM** (payant)
- **ManageEngine NetFlow** (payant)
- **Cisco Prime** (remplacé par Cisco DNA Center, propriétaire)
## 🔐 Sécurité
- **Auth** : local, LDAP, SAML2, OAuth2, OIDC, SSO
- **2FA** : TOTP natif
- **Permissions granulaires** par objet (RBAC)
- **HTTPS** via [[app-traefik]] obligatoire (l'API donne accès à toute l'infra)
- **Secrets** : NetBox peut stocker des secrets (mots de passe, clés SSH) chiffrés en base
- **Audit log** : toutes les modifications sont tracées
## 📚 Ressources
- [GitHub netbox-community/netbox](https://github.com/netbox-community/netbox)
- [Documentation officielle](https://docs.netbox.dev/)
- [NetBox Labs (société)](https://netboxlabs.com/)
- [Plugins populaires](https://github.com/topics/netbox-plugin)
- [Démo publique](https://demo.netbox.dev/)
## Pages Liées
- [[cat-monitoring]] — Catégorie Monitoring
- [[app-uptime-kuma]] — Monitoring d'uptime
- [[app-netdata]] — Métriques système
- [[app-traefik]] — Reverse proxy HTTPS
- [[observabilite]] — Vue d'ensemble observabilité
- [[checklist-monitoring-minimal]] — Checklist