Organize e Documente sua Infraestrutura com NetBox


Hoje, quando se fala em cuidar de uma infraestrutura, não falamos apenas em conhecer configurações, dominar comandos ou viver dentro da CLI de um roteador ou terminal. Precisamos falar — e muito — sobre documentação.
"Qual é o IP da filial do Rio?"
"Quantos IPs ainda tenho disponíveis no meu bloco público?"
"Minha rede comporta mais um projeto ou preciso expandir?"
Essas perguntas surgem o tempo todo no dia a dia do NOC ou da equipe técnica — e é aí que entra o NetBox, uma ferramenta fantástica de IPAM (IP Address Management) e DCIM (Data Center Infrastructure Management).
Com o NetBox, você consegue criar uma base de dados sólida da sua rede: documentar VLANs, racks, dispositivos, endereçamentos IP, conexões, links físicos, circuitos de operadoras, e até integrações com automações via API. Ele te dá visibilidade, controle e segurança para crescer com organização e confiança.
🔧 Requisitos de Instalação
Geralmente, quando estou em um sistema operacional recém-instalado, o primeiro comando que executo é:
apt-get update -y && apt-get upgrade -y
Neste artigo, estou utilizando o Ubuntu 22.04 LTS, que é uma excelente base para instalar o NetBox de forma estável e segura.
Abaixo estão os principais componentes necessários para uma instalação completa do NetBox:
📦 Componentes que vamos configurar:
PostgreSQL – banco de dados relacional que armazenará toda a estrutura da documentação.
Redis – banco de dados em memória usado para cache e gerenciamento de filas de tarefas assíncronas.
Componentes do NetBox – download do código-fonte, criação do ambiente virtual Python e instalação de dependências.
Gunicorn – servidor de aplicação WSGI que executará o NetBox em produção.
Servidor HTTP (Nginx) – atuará como proxy reverso para servir o NetBox para os usuários.
Nos próximos passos, vamos configurar cada um desses itens em sequência, do zero até o acesso via navegador.
🐘 Instalação do PostgreSQL
Instale o PostgreSQL com:
apt install -y postgresql
ℹ️ O NetBox exige PostgreSQL na versão 14 ou superior.
Para verificar a versão instalada:
psql -V
No meu caso, usando o repositório padrão do Ubuntu 22.04, foi instalada a versão 16.9
.
🧱 Criando o banco de dados e usuário
Acesse o shell do PostgreSQL:
sudo -u postgres psql
No prompt do PostgreSQL, execute os comandos abaixo (substitua a senha por uma forte e segura!):
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K'; (NAO ESQUEÇA DE TROCAR!!!!)
ALTER DATABASE netbox OWNER TO netbox;
\connect netbox;
GRANT CREATE ON SCHEMA public TO netbox;
⚠️ Atenção: nunca use senhas fracas nesse passo. Guarde a senha do usuário
netbox
, pois será usada no arquivo de configuração.
🔌 Testando a conexão com o banco
Execute o comando abaixo para verificar se o usuário netbox
consegue se conectar ao banco criado:
psql --username netbox --password --host localhost netbox
$ psql --username netbox --password --host localhost netbox
Password for user netbox: ( SENHA QUE VOCE UTILIZOU QUANDO CRIOU A DATABASE E USUARIO NETBOX )
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
netbox=> \conninfo
You are connected to database "netbox" as user "netbox" on host "localhost" (address "127.0.0.1") at port "5432".
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
netbox=> \q
🔴 Instalação do Redis
Instale o Redis com:
apt install -y redis-server
Verifique se a versão é superior a 4.0:
redis-server -v
Teste se o Redis está funcionando corretamente:
redis-cli ping
Se tudo estiver certo, a resposta será:
Instalação dos pacotes necessários
Vamos instalar os pacotes que o NetBox precisa para funcionar corretamente:
apt install -y python3 python3-pip python3-venv python3-dev \
build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev \
libssl-dev zlib1g-dev
Verifique se o Python está na versão 3.10 ou superior:
python3 -V
Clonando o repositório do NetBox
Crie a pasta onde o NetBox será instalado:
mkdir -p /opt/netbox/
cd /opt/netbox/
Instale o Git (caso ainda não tenha):
apt install -y git
Clone o repositório do NetBox:
git clone https://github.com/netbox-community/netbox.git .
Obs: faça o git clone dentro da pasta /opt/netbox/ ok ?
Você verá uma saída semelhante à listagem dos arquivos clonados.
Criando o usuário do sistema
Crie uma conta de sistema chamada netbox
. Usaremos essa conta para executar os serviços WSGI e HTTP, além de garantir que ela tenha permissão sobre os diretórios apropriados:
sudo adduser --system --group netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
sudo chown --recursive netbox /opt/netbox/netbox/reports/
sudo chown --recursive netbox /opt/netbox/netbox/scripts/
Configuração do NetBox
Acesse o diretório de configuração e copie o arquivo de exemplo:
cd /opt/netbox/netbox/netbox/
cp configuration_example.py configuration.py
Abra o arquivo configuration.py
em seu editor e ajuste os seguintes parâmetros:
ALLOWED_HOSTS
Defina os hosts permitidos para acessar o NetBox. Caso não tenha uma regra específica de segurança, você pode definir assim:
ALLOWED_HOSTS = ['*']
DATABASE
Insira os dados de acesso ao banco de dados que você configurou anteriormente. Um exemplo:
DATABASE = {
'NAME': 'netbox',
'USER': 'netbox_user',
'PASSWORD': 'senha',
'HOST': 'localhost',
'PORT': '',
}
SECRET_KEY
Gere uma chave secreta aleatória com pelo menos 50 caracteres:
python3 ../generate_secret_key.py
Copie o valor gerado e insira no campo SECRET_KEY
do arquivo de configuração.
✅ Executando o Script de Upgrade
Após a configuração inicial, execute o script de instalação para preparar o ambiente:
/opt/netbox/upgrade.sh
👤 Criando o Superusuário
- Ative o ambiente virtual:
source /opt/netbox/venv/bin/activate
- Antes de criar o superusuário, execute as migrações manualmente (em alguns casos, o
upgrade.sh
não cria as tabelas corretamente):
cd /opt/netbox/netbox/
python3 manage.py migrate
- Crie o superusuário:
python3 manage.py createsuperuser
Será solicitado um e-mail, mas você pode apenas pressionar
Enter
para pular.
🧪 Validação do NetBox via Runserver
Dentro do ambiente virtual, você pode rodar o NetBox para validação:
python3 manage.py runserver 0.0.0.0:8000 --insecure
Se tudo estiver funcionando corretamente, o NetBox já estará acessível — mas essa execução é apenas para fins de teste.
Para sair do ambiente virtual:
deactivate
⚙️ Gunicorn
O Gunicorn é um servidor WSGI utilizado para executar aplicações Python em ambientes de produção, como o NetBox. Ele atua como intermediário entre a aplicação e o servidor web (como o Nginx).
Vamos configurá-lo:
cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload
Agora inicie os serviços:
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq
systemctl status netbox.service
🌐 Instalando o Apache com SSL
Vamos instalar o Apache e gerar um certificado SSL autoassinado:
- Gere o certificado:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/netbox.key \
-out /etc/ssl/certs/netbox.crt
Será necessário preencher informações como país, estado, etc. Use dados reais ou genéricos para testes.
- Instale o Apache:
apt install -y apache2
- Copie a configuração do NetBox para o Apache:
cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
- Habilite os módulos e o site:
sudo a2enmod ssl proxy proxy_http headers rewrite
sudo a2ensite netbox
sudo systemctl restart apache2
❗ Corrigindo erro de "Falha de Mídia Estática"
Se ao acessar o NetBox você ver o erro "Falha de mídia estática" (como o setmode.js
não carregando), siga os passos abaixo:
✅ 1. Reexecutar o collectstatic
Ative o ambiente virtual:
source /opt/netbox/venv/bin/activate
Execute:
cd /opt/netbox/netbox
python3 manage.py collectstatic --no-input
Esse comando copia todos os arquivos estáticos (como setmode.js
) para o diretório definido em STATIC_ROOT
.
Se tudo tiver sido feito corretamente... Ufa! O NetBox deve carregar normalmente agora! 🎉
Esse deu trabalho pessoal ! faça com calma que vai dar certo !!!
Obrigado é até a proxima !
Subscribe to my newsletter
Read articles from Hudson Alves Amaral directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
