1. Xác định yêu cầu cấu hình phần cứng
Trước khi cài đặt hệ điều hành, bạn cần xác định rõ các thông số phần cứng tối thiểu để đảm bảo OpenSearch hoạt động ổn định ngay từ đầu. OpenSearch yêu cầu môi trường 64-bit và bộ nhớ RAM đủ lớn để phân bổ cho JVM.
CPU: Tối thiểu 2 core. Với môi trường Production, khuyến nghị 4 core trở lên để xử lý indexing và query song song.
RAM: Tối thiểu 4GB cho môi trường Development/Testing. Tuyệt đối không đặt JVM heap lớn hơn 50% tổng RAM vật lý. Nếu server có 8GB RAM, bạn chỉ nên cấp 4GB cho OpenSearch, phần còn lại dành cho OS và file system cache.
Disk (Ổ cứng): Tối thiểu 40GB dung lượng trống. Bắt buộc sử dụng SSD (NVMe hoặc SATA). HDD cơ học sẽ gây ra hiện tượng latency cao khi đọc/viết index. Khuyến nghị phân vùng riêng (mount point) cho data directory `/var/lib/opensearch` để tối ưu I/O.
Verify yêu cầu phần cứng
Sau khi có máy ảo hoặc server vật lý, chạy lệnh kiểm tra RAM và CPU để đảm bảo đạt chuẩn:
free -h && lscpu
Kết quả mong đợi: `Mem:` trong `free -h` phải >= 4G và `CPU(s)` trong `lscpu` phải >= 2.
2. Cài đặt Ubuntu 24.04 và phân vùng ổ cứng
Trong quá trình cài đặt Ubuntu 24.04 (Desktop hoặc Server), tại bước phân vùng (Partitioning), bạn cần chọn "Manual" (Phân vùng thủ công) để tách biệt phân vùng dữ liệu. Điều này giúp dễ dàng backup, restore và thay đổi loại ổ cứng sau này mà không ảnh hưởng hệ điều hành.
Tạo các phân vùng theo cấu trúc sau:
- / (Root): 30GB, loại ext4. Chứa hệ điều hành và các gói phần mềm.
- swap: Bằng 100% RAM nếu RAM <= 8GB, hoặc 4GB nếu RAM > 8GB. Loại swap.
- /var/lib/opensearch: Dành hết dung lượng còn lại, loại ext4. Mount point này sẽ chứa toàn bộ dữ liệu index.
Trong cài đặt Server, bạn chọn "Use entire disk" hoặc "Guided - use entire disk and set up LVM" nếu không muốn phân vùng thủ công, nhưng với yêu cầu tối ưu, hãy chọn Manual.
Verify cấu hình phân vùng
Sau khi cài đặt xong, khởi động vào hệ thống và kiểm tra bảng phân vùng:
lsblk -f
Kết quả mong đợi: Bạn thấy một partition mount tại `/var/lib/opensearch` với kích thước lớn (ví dụ 50G+) và một partition mount tại `/` khoảng 30G.
3. Cập nhật hệ thống và cài đặt gói phụ thuộc
Ubuntu 24.04 mặc định có nhiều gói cũ. Cần cập nhật repository và cài đặt các công cụ nền tảng trước khi cài OpenSearch. OpenSearch 2.x chạy trên OpenJDK 17 hoặc 21.
Đầu tiên, cập nhật danh sách gói và nâng cấp các gói đã cài lên phiên bản mới nhất:
sudo apt update && sudo apt upgrade -y
Kết quả mong đợi: Quá trình chạy hoàn tất, không có lỗi, và màn hình hiện "Upgrading" hoặc "Setting up".
Cài đặt các gói phụ thuộc cần thiết: `curl` để tải file, `git` để clone script, và `openjdk-17-jre` (hoặc `openjdk-21-jre` nếu muốn dùng bản mới nhất, nhưng 17 là ổn định nhất hiện tại cho OpenSearch).
sudo apt install -y curl git openjdk-17-jre unzip
Kết quả mong đợi: Các gói được cài đặt thành công, không báo lỗi thiếu dependency.
Kiểm tra phiên bản Java đã được hệ thống nhận diện:
java -version
Kết quả mong đợi: Hiển thị dòng "openjdk version "17.x.x"..." và "OpenJDK Runtime Environment".
4. Cấu hình Hostname và file /etc/hosts
OpenSearch yêu cầu mỗi node trong cluster phải có một hostname duy nhất và có khả năng phân giải (resolve) được tên đó về địa chỉ IP. Nếu không cấu hình đúng, cluster sẽ không thể hình thành (split-brain hoặc không thể join node).
Đổi hostname của máy chủ hiện tại thành tên ý nghĩa (ví dụ: `opensearch-node1`):
sudo hostnamectl set-hostname opensearch-node1
Kết quả mong đợi: Lệnh chạy thành công, không có output. Bạn cần logout và login lại (hoặc reboot) để hostname thay đổi hoàn toàn, hoặc chạy `newgrp root` để cập nhật ngay.
Sửa file `/etc/hosts` để ánh xạ địa chỉ IP loopback và IP mạng sang hostname. Mở file bằng nano:
sudo nano /etc/hosts
Thay thế toàn bộ nội dung file bằng cấu hình sau (thay `192.168.1.100` bằng IP thật của server bạn đang dùng):
127.0.0.1 localhost
192.168.1.100 opensearch-node1
Lưu file (Ctrl+O, Enter) và thoát (Ctrl+X).
Để kiểm tra nhanh mà không cần restart, bạn có thể chạy lệnh kiểm tra khả năng phân giải:
ping -c 1 opensearch-node1
Kết quả mong đợi: Lệnh ping trả về địa chỉ IP `192.168.1.100` (hoặc IP bạn đã điền) và hiển thị 1 gói tin được gửi/nhận thành công.
Verify toàn bộ cấu hình mạng
Chạy lệnh để đảm bảo hostname hiện tại khớp với tên trong file hosts:
hostname -f
Kết quả mong đợi: Trả về `opensearch-node1` hoặc `opensearch-node1.localdomain`.
Điều hướng series:
Mục lục: Series: Triển khai Database Search với OpenSearch và Ubuntu 24.04
Phần 2: Cài đặt OpenSearch và OpenSearch Dashboards từ chính chủ »