Inštalácia NetBox Docker

Na čo slúži NetBox

NetBox slúži ako centrálna evidencia IT infraštruktúry.
Je to miesto, kde si zapisujem, aké zariadenia mám v sieti, aké majú IP adresy, aký majú účel, kde sa nachádzajú a aké služby na nich bežia.

NetBox nie je monitoring. Nehovorí mi, či server práve spadol alebo či má vysoké CPU. Na to slúži Zabbix.

NetBox odpovedá na otázky typu:

Aké zariadenia mám v sieti?
Akú IP adresu má konkrétny server?
Na ktorom zariadení beží daná služba?
Aký model je dané zariadenie?
Aké má sériové číslo?
Ktorý server je DNS, mail alebo monitoring?
Aké porty/služby sú na serveri spustené?
Typ inštaláciePodporované OSMinimálne požiadavky
NetBox cez DockerLinux server, napr. Ubuntu, Debian, Rocky Linux, AlmaLinux, Fedora, Raspberry Pi OSDocker min. 20.10.10, containerd min. 1.5.6, docker-compose min. 1.28.0
NetBox manuálna inštaláciaNajčastejšie Ubuntu/Debian LinuxPython min. 3.10; podporované Python verzie sú 3.10, 3.11, 3.12
NetBox na Raspberry PiRaspberry Pi OS / Debian-based LinuxDocker + docker-compose, ideálne Raspberry Pi 4/5, aspoň 2 GB RAM
NetBox na WindowsWindows 10/11 alebo Windows Server cez WSL2/Docker DesktopDocker Desktop + WSL2
NetBox na macOSmacOS cez Docker DesktopDocker Desktop

Odporúčané minimum pre malý lab

ProstriedokMinimumOdporúčané
CPU1 vCPU2 vCPU
RAM2 GB4 GB
Disk10–20 GB30+ GB
OSLinuxUbuntu/Debian/Raspberry Pi OS
Docker20.10.10+aktuálna stabilná verzia
Docker Compose1.28.0+novší docker compose plugin alebo docker-compose

Krátka poznámka

NetBox je najjednoduchšie prevádzkovať cez Docker na Linux serveri. Potrebuje funkčný Docker, Docker Compose, databázu PostgreSQL a Redis/Valkey, ktoré sú pri netbox-docker nasadení súčasťou docker-compose stacku.

Vytvorenie priečinka

mkdir -p ~/netbox
cd ~/netbox

Stiahnutie oficiálneho NetBox Docker repozitára

git clone -b release https://github.com/netbox-community/netbox-docker.git .

Potom skontrolujte obsah priečinka:

ls

Uvidíte niečo takéto

docker-compose.yml
docker-compose.override.yml.example
env
configuration
README.md

Vytvorte override súbor

cp docker-compose.override.yml.example docker-compose.override.yml

Nastavenie portu NetBoxu

Pôvodný port

services:
  netbox:
    ports:
      - "8000:8080"

Ja som ho potreboval zmeniť na 4030

sed -i 's/"8000:8080"/"4030:8080"/' docker-compose.override.yml

a ešte pred „Spustenie kontajneru“. Presne tam sa rieši port 4030, takže tá poznámka tam bude logicky sedieť. Na stránke máš časť „Nastavenie portu NetBoxu“ na riadkoch, kde meníš 8000:8080 na 4030:8080, a hneď potom nasleduje „Spustenie kontajneru“.

## Poznámka k portu 4030 a službe netbox-worker

Pri úprave portu treba dať pozor, aby verejný port `4030` používala iba hlavná služba `netbox`.

V mojom prípade sa po reštarte servera objavila chyba:

    Error response from daemon: failed to set up container networking:
    Bind for 0.0.0.0:4030 failed: port is already allocated

Dôvod bol ten, že v `docker-compose.yml` je použitý YAML anchor:

    netbox: &netbox

a služba `netbox-worker` dedí nastavenia z hlavnej služby `netbox` cez:

    <<: *netbox

Ak hlavná služba `netbox` obsahuje:

    ports:
      - "4030:8080"

tak môže túto časť zdediť aj `netbox-worker`. Potom sa oba kontajnery pokúšajú použiť rovnaký port `4030`.

Riešenie je v časti `netbox-worker` zrušiť dedenie portov:

    netbox-worker:
      <<: *netbox
      ports: []

Po úprave konfigurácie stačí stack reštartovať:

    sudo docker-compose down
    sudo docker-compose up -d

Kontrola:

    sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

Správny stav je, že port `4030` má iba hlavný NetBox kontajner:

    netbox-netbox-1          0.0.0.0:4030->8080/tcp
    netbox-netbox-worker-1   bez verejného portu

Môžeme to skontrolovať

cat docker-compose.override.yml

Spustenie kontajneru

sudo docker-compose up -d

Prvý štart a stav unhealthy

Pri prvom spustení NetBoxu môže kontajner chvíľu svietiť ako:

unhealthy

alebo môže docker-compose up -d skončiť hláškou:

dependency failed to start: container netbox-netbox-1 is unhealthy

Môžeme overiť stav

sudo docker-compose ps

Ak je všetko v poriadku, kontajnery by mali mať stav healthy.

Môžeme sledovať logy

sudo docker-compose logs -f netbox

Treba počkať, kým sa objaví:

✅ Initialisation is done.
[INFO] Listening at: http://:::8080
sudo docker-compose ps

Ak je NetBox stále označený ako unhealthy, ale inicializácia už dobehla, pomôže reštart služby:

sudo docker-compose restart netbox
sudo docker-compose ps

Poznámka

Pri prvom štarte NetBox vykonáva databázové migrácie, preto môže byť kontajner niekoľko minút označený ako unhealthy. Po dokončení migrácií sa stav zmení na healthy.

Prístup k službe

http://IP_ADRESA_SERVERA:4030

Vytvorenie užívateľa

Pred prihlásením je potrebné vytvoriť užívateľa

sudo docker-compose exec netbox /opt/netbox/netbox/manage.py createsuperuser

Skript sa spýta nasledovné veci

Username:
Email address:
Password:
Password again:

naspäť