Kiểm tra yêu cầu phần cứng tối thiểu cho MongoDB
Trước khi triển khai, cần đảm bảo hạ tầng vật lý hoặc máy ảo đáp ứng đủ tiêu chuẩn để MongoDB hoạt động ổn định, đặc biệt là bộ nhớ RAM và không gian đĩa cứng.
MongoDB yêu cầu tối thiểu 2GB RAM để tránh bị OOM Killer (Out Of Memory) do hệ điều hành giết tiến trình. Với Ubuntu 24.04, nên cấu hình Swap file để dự phòng khi RAM hết.
Yêu cầu phần cứng khuyến nghị:
- CPU: Tối thiểu 2 Core (x86_64 hoặc ARM64).
- RAM: Tối thiểu 2GB (Khuyến nghị 4GB trở lên cho môi trường Production).
- Disk: Tối thiểu 20GB trống, khuyến nghị dùng SSD NVMe để tăng tốc độ I/O.
- Network: Port 27017 mở cho kết nối nội bộ.
Thực hiện lệnh kiểm tra tài nguyên hiện có trên server:
free -h && df -h && lscpu
Kết quả mong đợi: Bạn thấy dòng "Mem:" có giá trị Available >= 2.0G, dòng "/dev" (hoặc partition root) có Available >= 20G, và CPU có 2 Core trở lên.
Download và chuẩn bị ISO Ubuntu 24.04 LTS
Cần tải bản ISO chính thức Ubuntu 24.04 LTS (Noble Numbat) từ nguồn chính chủ để đảm bảo an toàn và tương thích với MongoDB mới nhất.
Truy cập trang chủ Ubuntu hoặc dùng lệnh curl/wget để tải file ISO. Chọn phiên bản "Ubuntu 24.04.1 LTS" (Server hoặc Desktop tùy nhu cầu, khuyến nghị Server cho môi trường DB).
Lệnh download file ISO Server (khoảng 1.5GB):
wget http://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
Kiểm tra tính toàn vẹn của file ISO bằng checksum SHA256 để tránh file bị lỗi hoặc giả mạo:
sha256sum ubuntu-24.04-live-server-amd64.iso
Kết quả mong đợi: Hash trả về phải khớp với hash công bố trên trang Ubuntu Release Archive (ví dụ: bắt đầu bằng chuỗi ký tự 16 ký tự hex). Nếu khớp, file ISO an toàn để burn vào USB hoặc mount vào Virtual Machine.
Cài đặt Ubuntu lên máy chủ vật lý hoặc máy ảo
Quá trình cài đặt cần cấu hình phân vùng đĩa cứng hợp lý để tối ưu hiệu năng cho MongoDB. MongoDB lưu dữ liệu dạng file (data directory), do đó cần phân vùng riêng biệt cho dữ liệu DB nếu có thể.
Trong quá trình cài đặt (Installer), thực hiện các bước sau:
- Language & Keyboard: Chọn English và US Layout.
- Network: Cấu hình Static IP nếu là server production, hoặc DHCP nếu test nội bộ.
- Disk Setup: Chọn "Use entire disk" hoặc "Custom partitioning".
Khi chọn Custom partitioning, cấu hình bảng phân vùng (GPT) như sau:
- / (root): 30GB, loại ext4.
- /home: 10GB, loại ext4.
- /var/lib/mongodb: Dành toàn bộ dung lượng còn lại, loại ext4 (hoặc XFS nếu disk > 1TB).
- Swap: Tạo partition swap bằng 2GB hoặc gấp đôi RAM nếu RAM < 4GB.
Trong phần User Setup:
- Tên user: admin (hoặc tên tùy chọn).
- Mật khẩu: Đặt mật khẩu mạnh (12+ ký tự, có hoa, thường, số, ký tự đặc biệt).
- SSH: Chọn "Install OpenSSH server" ngay trong bước cài đặt.
Chờ quá trình cài đặt hoàn tất và chọn "Reboot Now".
Kết quả mong đợi: Server khởi động lại và yêu cầu đăng nhập bằng user và mật khẩu vừa tạo. Màn hình login xuất hiện thành công.
Cấu hình hostname, timezone và update hệ thống
Việc đặt hostname rõ ràng giúp nhận diện server trong cluster, còn timezone đồng bộ giúp log file và các scheduled task (backup) chạy đúng giờ.
Đổi tên hostname của server thành mongo-srv-01 (ví dụ) bằng lệnh:
sudo hostnamectl set-hostname mongo-srv-01
Cập nhật file /etc/hosts để ánh xạ hostname mới với địa chỉ 127.0.0.1 và IP thật:
echo "127.0.0.1 mongo-srv-01" | sudo tee -a /etc/hosts
Cấu hình timezone sang Asia/Ho_Chi_Minh:
sudo timedatectl set-timezone Asia/Ho_Chi_Minh
Kiểm tra lại kết quả cấu hình:
hostnamectl && timedatectl
Kết quả mong đợi: Dòng "Static hostname" hiển thị "mongo-srv-01" và dòng "Time zone" hiển thị "Asia/Ho_Chi_Minh".
Thực hiện cập nhật toàn bộ hệ thống và các gói phần mềm trước khi cài đặt MongoDB:
sudo apt update && sudo apt upgrade -y
Cài đặt các công cụ cần thiết cho Sysadmin (build-essential, git, vim, net-tools):
sudo apt install -y build-essential git vim net-tools curl wget
Kết quả mong đợi: Quá trình upgrade và install hoàn tất không báo lỗi, màn hình trở về prompt command.
Tạo user mới có quyền sudo và cấu hình SSH key
Để bảo mật, không nên sử dụng user root trực tiếp cho các tác vụ hàng ngày. Cần tạo một user mới có quyền sudo và cấu hình đăng nhập qua SSH Key thay vì mật khẩu.
Tạo user mới tên sysadmin:
sudo adduser sysadmin
Trong quá trình tạo, nhập mật khẩu cho user này và điền thông tin cá nhân (có thể để trống). Sau đó thêm user vào nhóm sudo:
sudo usermod -aG sudo sysadmin
Chuyển sang user mới để test quyền và thiết lập SSH key:
sudo su - sysadmin
Tạo thư mục .ssh nếu chưa tồn tại và tạo cặp key SSH (RSA 4096 bit):
mkdir -p ~/.ssh && ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
Copy public key vào danh sách cho phép đăng nhập của chính user này:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
Cấu hình SSHD để chỉ cho phép đăng nhập bằng Key và tắt đăng nhập Root:
sudo nano /etc/ssh/sshd_config
Trong file /etc/ssh/sshd_config, chỉnh sửa hoặc thêm các dòng sau (tìm các dòng có sẵn và sửa, hoặc thêm mới):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Khởi động lại dịch vụ SSH để áp dụng thay đổi:
sudo systemctl restart sshd
Thử kết nối SSH từ terminal khác (hoặc giữ nguyên terminal hiện tại nếu đã cấu hình agent) để xác minh:
ssh sysadmin@localhost
Kết quả mong đợi: Kết nối SSH thành công ngay lập tức mà không yêu cầu nhập mật khẩu (hoặc chỉ yêu cầu passphrase của private key nếu có). Nếu đăng nhập bằng mật khẩu root hoặc user cũ bị từ chối (Connection refused hoặc Permission denied), nghĩa là cấu hình bảo mật thành công.
Điều hướng series:
Mục lục: Series: Triển khai Database Document với MongoDB và Ubuntu 24.04
Phần 2: Cài đặt MongoDB Community Edition chính thức trên Ubuntu 24.04 »