Initial vault setup
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user