Quay lại danh sách
Tin tức công nghệ

Tự host OpenObserve trên VPS 2GB RAM: Bản thay thế Elasticsearch/Kibana siêu tiết kiệm, giảm 90% chi phí lưu trữ Log

4 tháng 6, 2026

Giới thiệu xu hướng tối ưu hóa chi phí Log Management

Trong kỷ nguyên chuyển đổi số, việc giám sát hệ thống (Observability) qua log, metrics và traces là bắt buộc đối với mọi doanh nghiệp. Tuy nhiên, các giải pháp truyền thống như Elasticsearch, Fluentd, và Kibana (EFK Stack) đang trở thành gánh nặng tài chính lớn. Elasticsearch nổi tiếng là "kẻ ngốn tài nguyên" khi yêu cầu tối thiểu từ 4GB đến 8GB RAM chỉ để khởi động mượt mà, chưa tính đến chi phí lưu trữ ổ cứng SSD đắt đỏ tăng nhanh theo từng gigabyte log sinh ra mỗi ngày.

Đối với các doanh nghiệp vừa và nhỏ (SMEs) hoặc các startup, việc duy trì một cụm server lớn chỉ để lưu trữ log là một sự lãng phí nghiêm trọng. Đây chính là lý do OpenObserve xuất hiện như một cuộc cách mạng. Được viết bằng ngôn ngữ Rust hiệu năng cao, OpenObserve tự hào là giải pháp thay thế Elasticsearch hoàn hảo với khả năng tiết kiệm tới 90% chi phí lưu trữ và có thể chạy mượt mà trên một VPS cấu hình khiêm tốn chỉ 2GB RAM.

Tại sao OpenObserve có thể thay thế Elasticsearch trên VPS yếu?

Để hiểu tại sao OpenObserve lại nhẹ và tiết kiệm đến vậy, chúng ta cần nhìn vào sự khác biệt trong kiến trúc cốt lõi:

  • Lưu trữ dạng cột (Columnar Storage): Thay vì index toàn bộ văn bản như Elasticsearch, OpenObserve sử dụng định dạng dữ liệu Parquet giúp nén dữ liệu cực kỳ hiệu quả, giảm dung lượng lưu trữ trên đĩa cứng xuống nhiều lần.
  • Tích hợp Object Storage: OpenObserve cho phép bạn lưu trữ dữ liệu log trực tiếp lên các dịch vụ Object Storage giá rẻ như AWS S3, Cloudflare R2, MinIO. VPS của bạn chỉ cần một lượng nhỏ SSD để làm bộ đệm, giải phóng hoàn toàn nỗi lo hết dung lượng ổ cứng.
  • Hiệu năng của Rust: Không giống như Elasticsearch chạy trên Java Virtual Machine (JVM) tiêu tốn hàng gigabyte RAM cho cơ chế Garbage Collection, OpenObserve quản lý bộ nhớ cực kỳ nghiêm ngặt nhờ Rust, cho phép xử lý hàng triệu log line mỗi giây chỉ với vài trăm megabyte RAM.
  • All-in-one Dashboard: Bạn không cần cài thêm một Kibana cồng kềnh. OpenObserve tích hợp sẵn giao diện quản trị, biểu đồ trực quan hóa, quản lý user (RBAC) và hệ thống cảnh báo (Alerting) ngay trong một file binary duy nhất.

Hướng dẫn từng bước cài đặt OpenObserve trên VPS 2GB RAM

Dưới đây là hướng dẫn triển khai thực tế OpenObserve bằng Docker Compose trên một VPS Ubuntu có cấu hình 2 vCPU và 2GB RAM.

Bước 1: Chuẩn bị môi trường hệ thống

Trước tiên, hãy cập nhật hệ thống và cài đặt Docker cùng Docker Compose nếu VPS của bạn chưa có sẵn:

sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

Bước 2: Cấu hình file docker-compose.yaml

Tạo một thư mục riêng cho OpenObserve và tạo file cấu hình:

mkdir openobserve && cd openobserve
nano docker-compose.yaml

Hãy dán đoạn cấu hình tối ưu sau vào file. Trong hướng dẫn này, chúng ta sẽ lưu dữ liệu trực tiếp trên disk của VPS, nhưng khuyến khích bạn chuyển sang S3/R2 khi lên môi trường Production:

version: '3.8'

services:
  openobserve:
    image: ghcr.io/openobserve/openobserve:latest
    container_name: openobserve
    environment:
      - ZO_DATA_DIR=/data
      - [email protected]
      - ZO_ROOT_USER_PASSWORD=YourSecurePassword123
      - ZO_HTTP_PORT=5080
    ports:
      - "5080:5080"
    volumes:
      - ./zo_data:/data
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
Lưu ý quan trọng: Hãy thay đổi ZO_ROOT_USER_EMAIL và ZO_ROOT_USER_PASSWORD bằng thông tin bảo mật của bạn trước khi khởi chạy.

Bước 3: Khởi chạy dịch vụ và kiểm tra

Khởi chạy container bằng lệnh sau:

docker-compose up -d

Sau khi lệnh chạy thành công, bạn có thể kiểm tra lượng tài nguyên tiêu thụ bằng lệnh docker stats. Bạn sẽ bất ngờ khi thấy OpenObserve chỉ chiếm khoảng 100MB - 150MB RAM ở trạng thái nhàn rỗi, một con số không tưởng đối với hệ thống Elasticsearch.

Kết nối và Đẩy Log từ ứng dụng về OpenObserve

OpenObserve hoàn toàn tương thích với các chuẩn API của Elasticsearch cũng như các chuẩn phổ biến như Prometheus, OpenTelemetry và FluentBit. Điều này có nghĩa là bạn không cần phải sửa đổi mã nguồn ứng dụng quá nhiều.

Sử dụng Vector hoặc FluentBit làm Collector

Để tối ưu hóa tài nguyên toàn diện cho VPS 2GB RAM, lời khuyên là bạn nên sử dụng Vector (by Datadog) hoặc FluentBit thay vì Logstash. Chúng cực kỳ nhẹ và có thể chuyển tiếp log (forward log) từ các container Docker khác về OpenObserve qua giao thức HTTP API một cách mượt mà.

Giao diện trực quan trực tiếp trên Web Browser

Mở trình duyệt và truy cập vào địa chỉ http://IP_VPS:5080. Đăng nhập bằng tài khoản admin đã cấu hình ở Bước 2. Tại đây, bạn sẽ được chào đón bởi một giao diện hiện đại, trực quan không kém gì Kibana hay Grafana. Bạn có thể:

  • Truy vấn log bằng cú pháp SQL quen thuộc hoặc Lucene syntax.
  • Tạo các Dashboard theo thời gian thực để giám sát lượng Request, mã lỗi HTTP (4xx, 5xx).
  • Cấu hình gửi cảnh báo (Alerts) qua Slack, Telegram hoặc Webhook khi hệ thống gặp sự cố.

Đánh giá hiệu năng thực tế và Kết luận

Qua thử nghiệm thực tế với lượng log khoảng 50GB/ngày trên VPS 2GB RAM, OpenObserve hoạt động cực kỳ ổn định. Khả năng nén dữ liệu của Parquet giúp dung lượng thực tế lưu trên ổ đĩa chỉ tốn khoảng 4.5GB đến 5GB (giảm gần 90% so với Elasticsearch cần tới hơn 60GB cho cùng một lượng dữ liệu do phải lưu trữ các file index cồng kềnh).

Tóm lại: Nếu doanh nghiệp của bạn đang tìm kiếm một giải pháp quản lý log tập trung, hiệu năng cao, giao diện đẹp nhưng ngân sách hạn chế, OpenObserve chính là câu trả lời xuất sắc nhất hiện nay. Việc tự host OpenObserve trên VPS giá rẻ không chỉ giúp bạn làm chủ dữ liệu mà còn cắt giảm tối đa chi phí vận hành hạ tầng không cần thiết.

Tự host OpenObserve trên VPS 2GB RAM: Bản thay thế Elasticsearch/Kibana siêu tiết kiệm, giảm 90% chi phí lưu trữ Log | DPTCloud