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!
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ả.
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
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.
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/’
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:
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 |
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