Pular para conteúdo

Gunicorn

Como a maioria das aplicações Django, o NetBox roda como uma aplicação WSGI. Essa documentação mostra como instalar e configurar o gunicorn (que é automaticamente instalado com o NetBox) para ese papel, no entanto outros servidores WSGI estão disponíveis e devem funcionar de forma similar. uWSGI é alternativa mais popular.

Configuração

NetBox possui um arquivo de configuração padrão para o gunicorn. Para utilizá-lo, copie /opt/netbox/contrib/gunicorn.py para /opt/netbox/gunicorn.py. (Nós fazemos uma cópia desse arquivo além de apenas apontar para o diretório diretamente para garantir que qualquer mudança local feita não seja sobscrita por um upgrade futuro.)

sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

Enquanto que a configuração fornecida é suficiente para a maioria das instalações inicias, você pode querer editar esse arquivo e alterar o endereço IP e número de porta do Gunicorn, ou ainda realizar ajustes relacionados com a performance. Veja a documentação do Gunicorn para os parâmetros de configuração disponíveis.

Configuração do systemd

We'll use systemd to control both gunicorn and NetBox's background worker process. First, copy contrib/netbox.service and contrib/netbox-rq.service to the /etc/systemd/system/ directory and reload the systemd daemon.

Nós iremos utilizar o systemd para controlar tanto o gunicorn quanto os processos de fundo (background) do NetBox, copie contrib/netbox.service e contrib/netbox-rq.service para o diretório /etc/systemd/system e recarregue o deamon do systemd.

Warning

Os arquivos de configuração de serviço empacotados com o NetBox assumem que o serviço irá rodar com tanto o usuário e grupo nomeado de netbox. Se isso difere da sua instalação, certifique de atualizar os arquivos de serviço para estarem em conformidade com seu ambiente.

sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload

Então, inicie os serviços netbox e o netbox-rq e habilite-os para initiar no momento do boot:

sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

Pode pode utilizar o comando systemctl status netboxpara verificar que o serviço WSGI está rodando:

systemctl status netbox.service

Você deve ver uma saída (output) similar a:

● netbox.service - NetBox WSGI Service
     Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-08-30 04:02:36 UTC; 14h ago
       Docs: https://docs.netbox.dev/
   Main PID: 1140492 (gunicorn)
      Tasks: 19 (limit: 4683)
     Memory: 666.2M
     CGroup: /system.slice/netbox.service
             ├─1140492 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
             ├─1140513 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
             ├─1140514 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
...

Note

Se o serviço do NetBox falhar para iniciar, utilize o comando journalctl -eu netbox para verificar as mensagens de log que indicam qual é o problema.

Uma vez que você tenha verificado que os workers do WSGI estão online e rodando corretamente, prossiga para a configuração do servidor HTTP.