182 lines
7.2 KiB
Markdown
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
|