설치 가이드 · 6 min read · Nov 17, 2025
우분투 18.04 LTS에 NetBox 네트워크 문서화 및 관리 도구 설치하는 방법

NetBox는 컴퓨터 네트워크를 관리하고 문서화하는 데 사용할 수 있는 무료 오픈 소스 웹 애플리케이션 소프트웨어입니다. 웹 브라우저를 통해 IP 주소 및 데이터 센터 인프라를 관리하도록 특별히 설계되었습니다. NetBox는 Django Python 프레임워크로 작성되었으며 데이터베이스에는 PostgreSQL을 사용합니다. NetBox를 사용하면 중앙 위치에서 가상 머신 및 클러스터, 데이터 회로, 네트워크, 콘솔 및 전원 연결을 쉽게 관리하고 문서화할 수 있습니다.
이 튜토리얼에서는 우분투 18.04 서버에 NetBox를 설치하는 방법을 설명합니다.
요구 사항
- 우분투 18.04가 실행되는 서버.
- 서버에 루트 비밀번호가 설정되어 있어야 합니다.
시작하기
먼저, 다음 명령어로 시스템의 패키지를 최신 버전으로 업데이트합니다:
apt-get update -y
apt-get upgrade -y모든 패키지가 업데이트되면 시스템을 재시작하여 모든 구성 변경 사항을 적용합니다.
다음으로, NetBox를 실행하는 데 필요한 종속성을 설치해야 합니다. 다음 명령어로 모두 설치할 수 있습니다:
apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y모든 종속성이 설치되면 다음 단계로 진행할 수 있습니다.
PostgreSQL 설치 및 구성
다음으로, 서버에 PostgreSQL을 설치해야 합니다. 기본적으로 우분투 18.04 기본 저장소에는 최신 버전의 PostgreSQL이 없습니다. 따라서 PostgreSQL 저장소를 시스템에 추가해야 합니다.
먼저, 다음 명령어로 GPG 키를 다운로드하고 추가합니다:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -다음으로, 다음 명령어로 저장소를 추가합니다:
nano /etc/apt/sources.list.d/postgres.list다음 줄을 추가합니다:
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main파일을 저장하고 닫습니다. 그런 다음, 다음 명령어로 저장소를 업데이트하고 PostgreSQL을 설치합니다:
apt-get update -y
apt-get install postgresql postgresql-contrib -y설치가 완료되면 다음 명령어로 PostgreSQL의 상태를 확인합니다:
systemctl status postgresql다음과 같은 출력을 볼 수 있어야 합니다:
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2019-08-07 07:00:51 UTC; 23s ago
Main PID: 13552 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 1098)
CGroup: /system.slice/postgresql.service
Aug 07 07:00:50 hitesh systemd[1]: Starting PostgreSQL RDBMS...
Aug 07 07:00:51 hitesh systemd[1]: Started PostgreSQL RDBMS.
다음으로, NetBox를 위한 데이터베이스와 사용자를 생성해야 합니다. 먼저, 다음 명령어로 PostgreSQL 셸에 로그인합니다:
su - postgres
postgres@hitesh:~$ psql출력:
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1))
Type "help" for help.
다음으로, 다음 명령어로 NetBox를 위한 데이터베이스와 사용자를 생성합니다:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';다음으로, 다음 명령어로 NetBox에 모든 권한을 부여합니다:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;마지막으로, 다음 명령어로 PostgreSQL 셸에서 나갑니다:
postgres=#exit작업이 완료되면 다음 단계로 진행할 수 있습니다.
NetBox 설치 및 구성
다음 명령어로 /opt 디렉토리에 NetBox의 최신 버전을 다운로드할 수 있습니다:
cd /opt
git clone -b master https://github.com/digitalocean/netbox.git다음으로, netbox 디렉토리로 변경하고 Django SECRET Key를 생성합니다:
cd /opt/netbox/netbox/netbox/
./generate_secret_key.py다음과 같은 출력에서 생성된 키를 볼 수 있어야 합니다:
+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$다음으로, 다음 명령어로 기본 구성 파일의 이름을 변경합니다:
mv configuration.example.py configuration.py다음으로, 구성 파일을 열고 데이터베이스 세부정보와 비밀 키를 정의합니다:
nano configuration.py다음과 같은 변경을 합니다:
#서버 IP 주소로 your-server-ip를 교체하세요:
# 예: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['your-server-ip']
# PostgreSQL 데이터베이스 구성.
DATABASE = {
'NAME': 'netbox', # 데이터베이스 이름
'USER': 'netbox', # PostgreSQL 사용자 이름
'PASSWORD': 'password', # PostgreSQL 비밀번호
'HOST': 'localhost', # 데이터베이스 서버
'PORT': '', # 데이터베이스 포트 (기본값은 비워두세요)
}
SECRET_KEY = '+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$'작업이 완료되면 파일을 저장하고 닫습니다.
다음으로, 다음 명령어로 NetBox에 필요한 모든 종속성을 설치합니다:
pip3 install -r /opt/netbox/requirements.txt설치가 완료되면 다음 명령어로 데이터베이스를 마이그레이션합니다:
cd /opt/netbox/netbox/
python3 manage.py migrate성공적으로 마이그레이션이 완료되면 다음과 같은 출력을 볼 수 있어야 합니다:
Applying secrets.0004_tags... OK
Applying secrets.0005_change_logging... OK
Applying secrets.0006_custom_tag_models... OK
Applying ipam.0021_vrf_ordering... OK
Applying ipam.0022_tags... OK
Applying ipam.0023_change_logging... OK
Applying ipam.0024_vrf_allow_null_rd... OK
Applying ipam.0025_custom_tag_models... OK
Applying dcim.0067_device_type_remove_qualifiers... OK
Applying dcim.0068_rack_new_fields... OK
Applying dcim.0069_deprecate_nullablecharfield... OK
Applying dcim.0070_custom_tag_models... OK
Applying extras.0020_tag_data... OK
Applying extras.0021_add_color_comments_changelog_to_tag... OK
Applying dcim.0071_device_components_add_description... OK
Applying dcim.0072_powerfeeds... OK
Applying dcim.0073_interface_form_factor_to_type... OK
Applying extras.0022_custom_links... OK
Applying extras.0023_fix_tag_sequences... OK
Applying ipam.0026_prefix_ordering_vrf_nulls_first... OK
Applying ipam.0027_ipaddress_add_dns_name... OK
Applying sessions.0001_initial... OK
Applying taggit.0003_taggeditem_add_unique_index... OK
Applying users.0001_api_tokens_squashed_0002_unicode_literals... OK
Applying users.0003_token_permissions... OK다음으로, NetBox를 위한 관리자 계정을 생성해야 합니다. 다음 명령어로 수행할 수 있습니다:
python3 manage.py createsuperuser관리자 사용자 이름과 비밀번호를 제공하고 Enter를 누르면 다음과 같은 출력을 볼 수 있어야 합니다:
Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.다음으로, 다음 명령어로 정적 파일을 이동하고 초기 데이터를 로드합니다:
python3 manage.py collectstatic
python3 manage.py loaddata initial_dataNetBox를 위한 Gunicorn 설치 및 구성
다음으로, NetBox를 위한 Gunicorn을 설치해야 합니다. 다음과 같이 pip 명령어로 설치할 수 있습니다:
pip3 install gunicorn다음으로, 다음 명령어로 NetBox를 위한 Gunicorn 구성 파일을 생성합니다:
nano /opt/netbox/gunicorn_config.py다음 줄을 추가합니다:
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'작업이 완료되면 파일을 저장하고 닫습니다.
NetBox를 위한 Supervisor 구성
다음으로, NetBox 서비스를 관리하기 위해 Supervisor를 구성해야 합니다. 다음 명령어로 수행할 수 있습니다:
nano /etc/supervisor/conf.d/netbox.conf다음 줄을 추가합니다:
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data파일을 저장하고 닫은 후, 다음 명령어로 supervisor 서비스를 재시작하고 시스템 재부팅 후 시작되도록 활성화합니다:
systemctl restart supervisor
systemctl enable supervisor다음 명령어로 Supervisor 서비스를 확인할 수도 있습니다:
systemctl status supervisor출력:
? supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-08-07 07:13:26 UTC; 8s ago
Docs: http://supervisord.org
Process: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS)
Main PID: 15015 (supervisord)
Tasks: 5 (limit: 1098)
CGroup: /system.slice/supervisor.service
??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
Aug 07 07:13:26 hitesh systemd[1]: Started Supervisor process control system for UNIX.
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,087 CRIT Supervisor running as root (no user in config file)
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,089 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 INFO RPC interface 'supervisor' initialized
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 CRIT Server 'unix_http_server' running without any HTTP authentication check
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 INFO supervisord started with pid 15015
Aug 07 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 INFO spawned: 'netbox' with pid 15037
Aug 07 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 INFO success: netbox entered RUNNING state, process has st
NetBox를 위한 Nginx 구성
다음으로, 포트 80을 사용하여 NetBox에 접근하기 위해 Nginx를 구성해야 합니다. 이를 위해 다음 명령어로 가상 호스트 구성 파일을 생성합니다:
nano /etc/nginx/sites-available/netbox다음 줄을 추가합니다:
server {
listen 80;
server_name your-domain-name;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://your-server-ip:8001;
}
}파일을 저장하고 닫습니다. 그런 다음, 다음 명령어로 가상 호스트를 활성화합니다:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/마지막으로, 다음 명령어로 Nginx 서비스를 재시작하여 모든 구성 변경 사항을 적용합니다:
systemctl restart nginxNetBox 웹 인터페이스 접근
이제 NetBox가 설치되고 구성되었으므로 NetBox 웹 인터페이스에 접근할 시간입니다.
웹 브라우저를 열고 URL http://your-domain.com을 입력합니다. 다음 페이지로 리디렉션됩니다:

이제 오른쪽 상단 모서리에 있는 로그인 버튼을 클릭합니다. 다음 페이지가 표시됩니다:

이제 관리자 사용자 이름과 비밀번호를 제공한 후 로그인 버튼을 클릭합니다. 다음 페이지에서 NetBox 기본 대시보드를 볼 수 있어야 합니다:

축하합니다! 우분투 18.04 서버에 NetBox를 성공적으로 설치하고 구성했습니다. 이제 중앙 위치에서 네트워크 및 IP 주소를 관리하고 문서화할 수 있습니다. 질문이 있으면 언제든지 문의하세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.