Thiết lập Repository chính thức của OpenSearch
Bước đầu tiên là thêm repository chính thức của OpenSearch vào nguồn gói của Ubuntu 24.04. Điều này đảm bảo bạn luôn nhận được bản cập nhật an toàn và ổn định nhất từ nhà phát triển.
Tại sao: Ubuntu mặc định không chứa gói OpenSearch. Việc thêm GPG key và source list giúp `apt` xác minh và tải gói từ server của OpenSearch.
Kết quả mong đợi: Hệ thống nhận diện được các gói `opensearch` và `opensearch-dashboards` khi chạy lệnh `apt search`.
Cài đặt công cụ `wget` nếu chưa có, sau đó tải GPG key và thêm vào keyring của hệ thống.
curl -fsSL https://artifacts.opensearch.org/opensearch/OPENSEARCH.GPG | gpg --dearmor | sudo tee /usr/share/keyrings/opensearch.gpg > /dev/null
Đảm bảo file key được tạo thành công tại đường dẫn `/usr/share/keyrings/opensearch.gpg`.
Thêm file source list vào thư mục `sources.list.d` để chỉ định nguồn tải gói.
echo "deb [signed-by=/usr/share/keyrings/opensearch.gpg] https://artifacts.opensearch.org/releases/bundle/opensearch/2.11.0/apt main" | sudo tee /etc/apt/sources.list.d/opensearch.list
File `/etc/apt/sources.list.d/opensearch.list` được tạo với nội dung trỏ về version 2.11.0 (version ổn định nhất tại thời điểm viết bài).
Cập nhật danh sách gói mới nhất từ tất cả các nguồn đã cấu hình.
sudo apt update
Không có lỗi `404` hay `gpg error`. Dòng đầu ra hiển thị việc fetch từ `https://artifacts.opensearch.org`.
Verify kết quả
Chạy lệnh tìm kiếm để xác nhận gói đã xuất hiện trong cache của apt.
apt search opensearch | grep "opensearch=" | head -5
Đầu ra phải liệt kê các gói như `opensearch`, `opensearch-dashboards`, `opensearch-cli`.
Cài đặt OpenSearch và OpenSearch Dashboards
Tiến hành cài đặt cả hai gói: OpenSearch (backend search engine) và OpenSearch Dashboards (frontend visualization) cùng lúc.
Tại sao: Trong môi trường dev hoặc small-scale production, việc cài đặt cùng một server giúp giảm chi phí hạ tầng và đơn giản hóa quá trình debug ban đầu.
Kết quả mong đợi: Cả hai gói được cài đặt, các thư mục config và data được tạo ra, và các service được đăng ký với systemd.
Cài đặt gói `opensearch` và `opensearch-dashboards` với tùy chọn `--yes` để tự động xác nhận.
sudo apt install -y opensearch opensearch-dashboards
Hệ thống hiển thị tiến trình tải và cài đặt. Quá trình này có thể mất vài phút tùy thuộc vào tốc độ mạng.
Xác minh các file cấu hình mặc định đã được tạo ra tại các vị trí chuẩn.
ls -l /etc/opensearch/opensearch.yml /etc/opensearch/opensearch-dashboards.yml
Đầu ra hiển thị chi tiết file với quyền sở hữu là `root` và file `opensearch.yml` cùng `opensearch-dashboards.yml` tồn tại.
Verify kết quả
Kiểm tra trạng thái của các gói đã cài đặt.
dpkg -l | grep opensearch
Danh sách hiển thị trạng thái `ii` (installed) cho cả `opensearch` và `opensearch-dashboards` cùng version tương ứng.
Kiểm tra phiên bản và xác minh cấu hình mặc định
Trước khi khởi động service, cần kiểm tra phiên bản cài đặt và xem qua cấu hình mặc định để đảm bảo không có xung đột port.
Tại sao: Xác nhận version giúp đảm bảo tương thích với các plugin hoặc tài liệu hướng dẫn. Kiểm tra config giúp tránh lỗi do port bị chiếm (thường là 9200 và 5601).
Kết quả mong đợi: Phiên bản OpenSearch được in ra, và file cấu hình hiển thị các setting mặc định về host và port.
Kiểm tra phiên bản của OpenSearch.
opensearch --version
Đầu ra hiển thị dòng `OpenSearch version: 2.11.0` (hoặc version bạn cài).
Xem thông tin phiên bản của OpenSearch Dashboards.
opensearch-dashboards --version
Đầu ra hiển thị dòng `OpenSearch Dashboards version: 2.11.0`.
Kiểm tra file cấu hình của OpenSearch để xem port mặc định và host binding.
cat /etc/opensearch/opensearch.yml | grep -E "^(http|network|node)"
Đầu ra hiển thị các dòng cấu hình như `network.host: 0.0.0.0`, `http.port: 9200`, và `node.name`.
Kiểm tra file cấu hình của OpenSearch Dashboards để xem nó trỏ đến đâu.
cat /etc/opensearch/opensearch-dashboards.yml | grep -E "^(opensearch|server)"
Đầu ra hiển thị `opensearch.hosts: ["http://localhost:9200"]` và `server.port: 5601`.
Verify kết quả
Đảm bảo các port 9200 và 5601 chưa bị tiến trình nào chiếm dụng.
sudo ss -tlnp | grep -E "9200|5601"
Kết quả mong đợi: Không có dòng nào hiển thị (hoặc chỉ thấy `LISTEN` từ các service khác không liên quan, nhưng tốt nhất là trống).
Bật dịch vụ tự động khởi động cùng hệ thống
Kích hoạt các service để chúng chạy ngay lập tức và tự động khởi động khi máy chủ reboot.
Tại sao: OpenSearch cần thời gian để khởi động và tạo index. Cấu hình `enable` đảm bảo nếu server bị crash hoặc restart, hệ thống tìm kiếm sẽ tự động phục hồi mà không cần can thiệp thủ công.
Kết quả mong đợi: Service chuyển sang trạng thái `active (running)` và được enable cho boot.
Khởi động service OpenSearch.
sudo systemctl start opensearch
Lệnh thực thi thành công không báo lỗi.
Bật tính năng tự động khởi động cho OpenSearch khi hệ thống boot.
sudo systemctl enable opensearch
Đầu ra hiển thị thông báo `Created symlink ... pointing to /lib/systemd/system/opensearch.service`.
Khởi động service OpenSearch Dashboards.
sudo systemctl start opensearch-dashboards
Lệnh thực thi thành công không báo lỗi.
Bật tính năng tự động khởi động cho OpenSearch Dashboards khi hệ thống boot.
sudo systemctl enable opensearch-dashboards
Đầu ra hiển thị thông báo tạo symlink tương tự.
Đợi khoảng 30-60 giây để OpenSearch khởi động hoàn tất (nó cần thời gian để load heap và check cluster health).
sleep 30
Hệ thống đếm ngược và dừng lại.
Verify kết quả
Kiểm tra trạng thái của cả hai service để đảm bảo chúng đang chạy ổn định.
sudo systemctl status opensearch opensearch-dashboards --no-pager
Đầu ra hiển thị `Active: active (running)` cho cả hai service. Không có dòng `Failed` hay `Dead`.
Truy cập API của OpenSearch qua curl để xác nhận backend đang hoạt động.
curl -s http://localhost:9200 | jq .
Đầu ra là JSON chứa thông tin cluster, `version.number`, và `tagline: "You Know, for Search"`.
Truy cập trang web của OpenSearch Dashboards (nếu có trình duyệt hoặc curl để kiểm tra HTTP status).
curl -I http://localhost:5601
Đầu ra hiển thị `HTTP/1.1 302 Found` hoặc `HTTP/1.1 200 OK` tùy thuộc vào cấu hình xác thực mặc định.
Điều hướng series:
Mục lục: Series: Triển khai Database Search với OpenSearch và Ubuntu 24.04
« Phần 1: Chuẩn bị môi trường Ubuntu 24.04 và yêu cầu hệ thống
Phần 3: Cấu hình bảo mật và xác thực SSL/TLS cho OpenSearch »