Trang chủTin tứcNetBox là gì? Hướng dẫn cài đặt NetBox trên Linux chi tiết nhất
NetBox là gì? Hướng dẫn cài đặt NetBox trên Linux chi tiết nhất

Khám phá NetBox là gì? Hướng dẫn chi tiết cách cài đặt NetBox trên Linux, từ các bước cơ bản đến cấu hình nâng cao, giúp bạn quản lý mạng hiệu quả hơn.

NetBox là công cụ quản lý cơ sở hạ tầng mạng hiệu quả, giúp theo dõi và quản lý tài nguyên mạng và kết nối giữa chúng. Bài viết này sẽ giúp bạn hiểu NetBox là gì, và  hướng dẫn bạn cài đặt NetBox một cách đơn giản và chính xác. Hãy cùng bắt đầu để tối ưu hóa quản lý cơ sở hạ tầng của bạn với NetBox!

Hình 1. NetBox là gì? Hướng dẫn cài đặt NetBox đơn giản, chi tiết trên Linux
Hình 1. NetBox là gì? Hướng dẫn cài đặt NetBox đơn giản, chi tiết trên Linux

I. Tổng quát

1. NetBox là gì?

NetBox là một ứng dụng mã nguồn mở, được phát triển bởi DigitalOcean, để quản lý và lập tài liệu cho cơ sở hạ tầng mạng. Nó được thiết kế để giúp các tổ chức quản lý tài sản mạng của mình một cách hiệu quả và chính xác.

Netbox là một công cụ quản lý cơ sở hạ tầng mạng và trung tâm dữ liệu. Nó được sử dụng để quản lý và theo dõi cơ sở hạ tầng mạng, bao gồm thiết bị mạng, máy chủ, và các kết nối giữa chúng. Nó cung cấp giao diện người dùng trực quan và API mạnh mẽ để giúp các nhà quản trị hệ thống quản lý tài nguyên mạng một cách hiệu quả.

Hình 2. NetBox là gì? 
Hình 2. NetBox là gì? 

2. Chức năng của NetBox là gì?

NetBox có đầy đủ các chức năng mà một người quản trị hệ thống cần. Dưới đây là một vài chức năng cơ bản của NetBox:

  • Quản lý thiết bị: Theo dõi thông tin chi tiết về các thiết bị mạng như router, switch, máy chủ và module, …
  • Quản lý địa chỉ IP: Giúp theo dõi và phân bổ địa chỉ IP một cách hiệu quả, rõ ràng
  • Quản lý mạch kết nối: Theo dõi các kết nối mạng và các mạch kết nối giữa các thiết bị
  • Quản lý vùng và site: Tổ chức các site và vị trí vật lý để dễ dàng theo dõi
  • Quản lý VLAN và mạng không dây: Chia VLAN, nắm được thông tin các VLAN và mạng không dây
Hình 3. Chức năng của NetBox là gì?
Hình 3. Chức năng của NetBox là gì?

3. Tại sao cần sử dụng NetBox

Trước khi có NetBox, chúng ta thường chỉ sử dụng Bảng Tính (Excel, Google Sheets) để quản lý các địa chỉ IP, tài sản mạng,… mặc dù nó dễ dàng truy cập, linh hoạt khi sử dụng nhưng những ứng dụng này không đảm bảo tính chính xác của dữ liệu khi có nhiều người tham gia quản lý, nó không có tính năng tự động hóa và tích hợp với các hệ thống khác.

Tuy nhiên, từ khi NetBox ra đời, việc sử dụng NetBox đã làm cho khả năng quản lý các cơ sở hạ tầng mạng, trung tâm dữ liệu trở nên dễ dàng hơn. NetBox cung cấp một giải pháp toàn diện, dễ sử dụng và không tốn kém, phù hợp với nhiều loại tổ chức từ nhỏ đến lớn.

Hình 4. Trước và sau khi có NetBox
Hình 4. Trước và sau khi có NetBox

II. Hướng dẫn cài đặt NetBox đơn giản, chính xác

Sau khi bạn đã hiểu rõ Netbox là gì, tiếp theo chúng ta sẽ tiến hành cài đặt Netbox theo các bước như sau:

1. Chuẩn bị

Yêu cầu hệ thống:

- Để cài đặt NetBox, bạn cần một máy chủ với hệ điều hành Linux, như Ubuntu 20.04 hoặc Centos 7. 

- Máy chủ cần có ít nhất 2GB RAM và 4GB dung lượng lưu trữ kèm với kết nối mạng ổn định

Công cụ cần thiết:

- Trước khi tiến hành cài đặt, đảm bảo thiết bị của bạn đã cài đặt các công cụ quản lý gói như `apt` hoặc `yum`

- Hãy chắc chắn rằng bạn có quyền truy cập root hoặc sudo trước khi tiến hành cài đặt

2. Tiến hành cài đặt

Quá trình cài đặt sẽ dựa theo các bước cài đặt của NetBox, mọi thao tác và thứ tự hành động đều đảm bảo tuân thủ theo quá trình cài đặt của NetBox. Bạn có thể tham khảo hướng dẫn cài đặt của NetBox tại đây.

Trước khi vào các bước cài đặt, chúng ta sẽ cập nhật hệ thống của mình trước với các câu lệnh như sau:
- Đối với hệ điều hành Ubuntu hoặc tương tự:

sudo apt update

sudo apt upgrade 

- Đối với hệ điều hành Centos 9 hoặc tương tự:

sudo yum update

sudo yum upgrade

2.1 Cài đặt PostgreSQL

a. Cài đặt

Phần này đòi hỏi phải cài đặt và cấu hình cơ sở dữ liệu PostgreSQL cục bộ. Nếu bạn đã có sẵn dịch vụ cơ sở dữ liệu PostgreSQL, hãy chuyển sang phần tiếp theo.

NetBox yêu cầu PostgreSQL 12 trở lên. Xin lưu ý rằng MySQL và các cơ sở dữ liệu quan hệ khác không được hỗ trợ.

- Cài đặt đối với Ubuntu Server:

# Câu lệnh cài đặt

sudo apt install -y postgresql

# Câu lệnh kiểm tra phiên bản

psql -V

- Cài đặt đối với Centos 9:

# Câu lệnh cài đặt

sudo yum install -y postgresql

# Câu lệnh kiểm tra phiên bản

psql -V

CentOS cấu hình xác thực dựa trên máy chủ ident cho PostgreSQL theo mặc định. Vì NetBox sẽ cần xác thực bằng tên người dùng và mật khẩu, hãy sửa đổi để hỗ trợ xác thực MD5 bằng cách thay đổi thành cho các dòng bên dưới: /var/lib/pgsql/data/pg_hba.conf  ident  md5

host    all             all             127.0.0.1/32            md5

host    all             all             ::1/128                 md5

Khi PostgreSQL đã được cài đặt, bật dịch vụ và cho phép nó chạy tự động:

sudo systemctl enable --now postgresql

b. Cấu hình

Tiến hành tạo Database và User:

sudo -u postgres psql

Hướng dẫn nhập dữ liệu:

root@ubuntunetbox:/home/ducmanh287# sudo -u postgres psql

psql (16.4 (Ubuntu 16.4-0ubuntu0.24.04.2))

Type "help" for help.

postgres=# CREATE DATABASE <tên database của bạn>;

CREATE DATABASE

postgres=# CREATE USER netbox WITH PASSWORD 'Password của bạn';

CREATE ROLE

postgres=# ALTER DATABASE netbox OWNER TO  <tên database của bạn>;

ALTER DATABASE

postgres=# \connect <tên database của bạn>;

You are now connected to database " <tên database của bạn>" as user "postgres".

 <tên database của bạn>=# GRANT CREATE ON SCHEMA public TO <tên database của bạn>;

GRANT

 <tên database của bạn>=#  \q

root@ubuntunetbox:/home/ducmanh287#

Mẫu đầu ra như sau:

root@ubuntunetbox:/home/ducmanh287# sudo -u postgres psql

psql (16.4 (Ubuntu 16.4-0ubuntu0.24.04.2))

Type "help" for help.

postgres=# CREATE DATABASE netbox;

CREATE DATABASE

postgres=# CREATE USER netbox WITH PASSWORD 'SuncloudVnam2024';

CREATE ROLE

postgres=# ALTER DATABASE netbox OWNER TO netbox;

ALTER DATABASE

postgres=# \connect netbox;

You are now connected to database "netbox" as user "postgres".

netbox=# GRANT CREATE ON SCHEMA public TO netbox;

GRANT

netbox=#  \q

root@ubuntunetbox:/home/ducmanh287#

Sau khi hoàn tất, chúng ta thực hiện kiểm tra lại

root@ubuntunetbox:/home/ducmanh287# psql --username netbox --password --host localhost netbox

Password: <Nhập Password của bạn>

psql (16.4 (Ubuntu 16.4-0ubuntu0.24.04.2))

SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, 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, compression: off)

netbox=> \q

root@ubuntunetbox:/home/ducmanh287#

Vậy là chúng ta đã hoàn tất cài đặt và cấu hình Postgre SQL

2.2. Cài đặt Redis

Redis là một kho lưu trữ khóa-giá trị trong bộ nhớ mà NetBox sử dụng để lưu vào bộ nhớ đệm và xếp hàng. Phần này yêu cầu cài đặt và cấu hình phiên bản Redis cục bộ. Nếu bạn đã có sẵn dịch vụ Redis, hãy chuyển sang phần tiếp theo.

- Câu lệnh cài đặt:

# Đối với Ubuntu và tương tự

sudo apt install -y redis

# Đối với Centos 9 và tương tự

sudo yum install -y redis

- Kiểm tra cài đặt:

redis-server -v

- Kiểm tra trạng thái: Khi sử dụng lệnh này, nếu nhận được kết quả như dưới thì bạn đã thành công

redis-cli ping     # Câu lệnh

PONG               # Kết quả

Vậy là chúng ta đã hoàn thành cài đặt Redis

2.3. Cài đặt Python và các môi trường

Trước khi cài đặt NetBox, chúng ta sẽ cần cài đặt Python và các môi trường cần thiết cho hoạt động của NetBox.

Lưu ý: NetBox hỗ trợ Python 3.10, 3.11, và 3.12

- Cài đặt:

# Đối với Ubuntu:

sudo apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

# Đối với Centos 9:

sudo yum install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

- Kiểm tra phiên bản (Ít nhất là Python 3.10):

root@ubuntunetbox:/home/ducmanh287# python3 -V

Python 3.12.3

2.4. Cài đặt NetBox

a. Tải xuống NetBox

Khi đã có đầy đủ các thành phần cần thiết, chúng ta bắt đầu tải xuống NetBox

Bạn có thể tải xuống theo hai cách như sau:

- Tải trực tiếp 

- Clone từ Github của NetBox

Để thuận tiện nhất, tôi sẽ sử dụng cách thứ nhất vì một số máy không được cài sẵn git trong hệ thống của mình

- Ví dụ bạn muốn tải xuống phiên bản 4.0.0:

sudo wget https://github.com/netbox-community/netbox/archive/refs/tags/v4.0.0.tar.gz

Lưu ý: File tải xuống sẽ nằm ở thư mục hiện tại mà bạn đang hoạt động.

- Tiến hành giải nén:

sudo tar -xzf v4.0.0.tar.gz -C /opt

- Tạo liên kết tượng trưng:

sudo ln -s /opt/netbox-X.Y.Z/ /opt/netbox

b. Tạo Groups và phân quyền cho NetBox

Bây giờ, chúng ta sẽ cấp quyền cho NetBox bằng cách thêm vào group.

Sử dụng câu lệnh sau:

adduser --system --group <tên group>

Ví dụ mẫu với tên group là “netbox”:

root@ubuntunetbox:/home/ducmanh287# adduser --system --group netbox

info: Selecting UID from range 100 to 999 ...

info: Selecting GID from range 100 to 999 ...

info: Adding system user `netbox' (UID 112) ...

info: Adding new group `netbox' (GID 113) ...

info: Adding new user `netbox' (UID 112) with group `netbox' ...

info: Not creating `/nonexistent'.

Phân quyền cho NetBox:

chown --recursive netbox /opt/netbox

chown --recursive netbox /opt/netbox/netbox/media/

sudo chown --recursive netbox /opt/netbox/netbox/reports/

sudo chown --recursive netbox /opt/netbox/netbox/scripts/

c. Cấu hình NetBox

Để cho an toàn, trước khi chỉnh sửa file cấu hình chính thì chúng ta nên tạo một file cấu hình backup để đề phòng trong quá trình chỉnh sửa gặp lỗi.

# Di chuyển tới thư mục chứa file cấu hình

cd /opt/netbox/netbox/netbox

# Tạo 1 bản sao file cấu hình

cp configuration_example.py configuration.py

Khởi tạo 1 khóa an toàn. Hãy lưu khóa đã được gen ra, sau này sẽ còn sử dụng:

python3 ../generate_secret_key.py

Bắt đầu chỉnh sửa file cấu hình

- Truy cập vào file cấu hình, bạn có thể dùng vim hoặc nano:

vim configuration.py

- Tìm đến các dòng sau và thực hiện thêm thông tin

ALLOWED_HOSTS = [<Nhập vào IP của Server>]

DATABASE = {

    'ENGINE': 'django.db.backends.postgresql',  # Database engine

    'NAME': 'netbox',         # Database name

    'USER': '<Nhập vào User>',               # PostgreSQL username

    'PASSWORD': '<Nhập vào mật khẩu>',           # PostgreSQL password

    'HOST': 'localhost',      # Database server

    'PORT': '',               # Database port (leave blank for default)

    'CONN_MAX_AGE': 300,      # Max database connection age

}

SECRET_KEY = '<Nhập vào mã bạn vừa gen khi nãy>'

Sau khi hoàn tất cấu hình, các bạn thực hiện save file. Tùy theo việc bạn sử dụng vim hoặc nano mà cách save file sẽ khác nhau.

d. Cài đặt NetBox

Sau khi cấu hình xong, chúng ta cài đặt NetBox với câu lệnh sau:

/opt/netbox/upgrade.sh

Sau khi cài đặt xong, bạn sẽ nhận được thông báo như sau:

Completed.

Removing expired user sessions (python3 netbox/manage.py clearsessions)...

Upgrade complete! Don't forget to restart the NetBox services:

  > sudo systemctl restart netbox netbox-rq

2.5. Tạo User và kiểm thử

a. Tạo User NetBox

Trước tiên, chúng ta cần khởi động một môi trường ảo NetBox

root@ubuntunetbox:/home# source /opt/netbox/venv/bin/activate

(venv) root@ubuntunetbox:/home#

Bắt đầu tạo người dùng

python3 manage.py createsuperuser

Mẫu tạo như sau:

(venv) root@ubuntunetbox:/opt/netbox/netbox# python3 manage.py createsuperuser

Username: nadmin

Email address: admin@example.com

Password: < Nhập vào mật khẩu>

Password (again): <Nhập lại mật khẩu>

Superuser created successfully.

(venv) root@ubuntunetbox:/opt/netbox/netbox#

Như vậy là chúng ta đã hoàn tất tạo Super User của NetBox

b. Kiểm thử

Trước tiên, tạo một đường liên kết tượng trưng

ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

Tiến hành chạy thử NetBox Server:

python3 manage.py runserver 0.0.0.0:8000 --insecure

Mẫu đầu ra cho việc khởi chạy thành công:

(venv) root@ubuntunetbox:/opt/netbox/netbox# python3 manage.py runserver 0.0.0.0:8000 --insecure

Performing system checks...

System check identified no issues (0 silenced).

August 28, 2024 - 07:56:29

Django version 5.0.5, using settings 'netbox.settings'

Starting development server at http://0.0.0.0:8000/

Quit the server with CONTROL-C.

Bây giờ bạn có thể truy cập trang web NetBox tại địa chỉ ‘http://<IP>:8000/

Hình 5. Mẫu truy cập trang web NetBox
Hình 5. Mẫu truy cập trang web NetBox

Như vậy là bạn đã hoàn tất cài đặt NetBox cho máy chủ của mình

2.6. Cấu hình thêm

Để NetBox có thể sử dụng ‘systemctl’ như các dịch vụ khác trên máy chủ, chúng ta thực hiện như sau:

# Sao chép các thư mục cần thiết

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

cp -v /opt/netbox/contrib/*.service /etc/systemd/system/

# Khởi động lại dịch vụ ngầm và khởi chạy NetBox

systemctl daemon-reload

systemctl start netbox netbox-rq

systemctl enable netbox netbox-rq

Kiểm thử bằng câu lệnh:

systemctl status netbox.service

2.7. Cấu hình Nginx cho trang web NetBox

Để NetBox có thể chạy được mà không cần khởi động máy chủ, chúng ta cần cài Nginx hoặc Apache cho NetBox

Cài đặt Nginx nếu bạn chưa có:

sudo apt install -y nginx

Chỉnh sửa file cấu hình Nginx:

# Truy cập vào file cấu hình

vim /etc/nginx/nginx.conf

# Thêm vào sau dòng http{:

server_name_hash_bucket_size 64;

Bây giờ chúng ta tiến hành tạo file cấu hình trang web NetBox

- Tạo file:

vim /etc/nginx/sites-available/netbox.conf

- Thêm vào nội dung sau:

server {

  listen         80;

  server_name    www.netboxtest.local;

  access_log                /var/log/nginx/netbox.access.log;

  error_log                 /var/log/nginx/netbox.error.log;

  client_max_body_size 25m;

  # Proxy everything over to the netbox server

  location /static/ {

    alias /opt/netbox/netbox/static/;

  }

  location / {

    proxy_set_header        X-Real-IP $remote_addr;

    proxy_set_header        X-Forwarded-Proto $scheme;

    proxy_set_header      X-Forwarded-Host $http_host;

    proxy_pass              http://127.0.0.1:8001;

  }

}

Để trang web khởi chạy tốt nhất, chúng ta cần xóa file ‘default’ của Nginx và tạo liên kết tượng trưng tới file của NetBox:

# Xóa file Nginx

sudo rm /etc/nginx/sites-enabled/default

# Tạo liên kết tượng trưng

sudo ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/netbox.conf

Như vậy là việc cấu hình trang web NetBox bằng Nginx đã hoàn tất.

3. Kiểm tra kết quả

Sau khi việc cài đặt hoàn tất, chúng ta tiến hành kiểm tra lại kết quả bằng cách truy cập vào trang web NetBox bằng địa chỉ IP: “http://<địa chỉ IP>”

Ví dụ như sau:

Hình 6. Truy cập NetBox bằng địa chỉ IP
Hình 6. Truy cập NetBox bằng địa chỉ IP

Hoặc nếu bạn muốn truy cập bằng tên miền như đã cấu hình ở trên “www.netboxtest.local” thì bạn cần khai báo nó qua file host của máy client như sau:

Truy cập vào file host: “C:\Windows\System32\drivers\etc”

Mở file hosts và thêm vào dòng khai báo như sau:

192.168.217.138     www.netboxtest.local

Hình 7. Truy cập NetBox bằng tên miền
Hình 7. Truy cập NetBox bằng tên miền

Như vậy là quá trình cài đặt NetBox của bạn đã thành công!

Tổng Kết

Hy vọng qua bài viết bạn đã hiểu rõ Netbox là gì cũng như các bước cài đặt lên hệ thống của mình. NetBox là một công cụ quản lý cơ sở hạ tầng mạng mã nguồn mở, giúp quản trị viên dễ dàng theo dõi và quản lý thiết bị mạng, địa chỉ IP và kết nối giữa các tài nguyên trong hệ thống. Với giao diện thân thiện và khả năng mở rộng thông qua API, NetBox tối ưu hóa quy trình quản lý và giảm thiểu lỗi cấu hình. Nhờ vào các chức năng mạnh mẽ và tích hợp linh hoạt, NetBox trở thành một giải pháp không thể thiếu cho việc quản lý cơ sở hạ tầng mạng trong các tổ chức hiện đại.

>>> Có thể bạn quan tâm: Docker Netbox - Hướng dẫn các bước cài đặt chi tiết nhất

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật