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

Xây Dựng Hệ Thống Giám Sát Log Tập Trung Cho 20+ VPS Vệ Tinh Bằng Grafana Loki Và Promtail

1 tháng 6, 2026

Giới thiệu về bài toán quản lý Log trong hệ thống phân tán

Trong kỷ nguyên chuyển đổi số, việc vận hành một hệ thống thông tin ổn định là yếu tố sống còn của doanh nghiệp. Khi quy mô hệ thống mở rộng lên đến 20+ VPS vệ tinh hoặc nhiều hơn, việc quản trị viên phải SSH vào từng server để kiểm tra log (truy vết lỗi) bằng các lệnh truyền thống như tail -f hay grep không còn khả thi. Phương pháp thủ công này gây lãng phí thời gian, dễ bỏ sót sự cố nghiêm trọng và tiềm ẩn nguy cơ bảo mật lớn.

Chính vì vậy, triển khai một hệ thống Giám sát Log tập trung (Centralized Logging) trở thành yêu cầu bắt buộc. Bài viết này sẽ hướng dẫn bạn cách xây dựng giải pháp logging tối ưu sử dụng bộ đôi công nghệ mạnh mẽ từ Grafana Labs: Grafana Loki và Promtail.

Tại sao chọn Grafana Loki và Promtail thay vì ELK Stack?

Trước đây, ELK Stack (Elasticsearch, Logstash, Kibana) là tiêu chuẩn vàng cho logging. Tuy nhiên, đối với môi trường gồm nhiều VPS vệ tinh, ELK bộc lộ điểm yếu về chi phí phần cứng do Elasticsearch lập chỉ mục (index) toàn bộ nội dung log, đòi hỏi lượng RAM và CPU rất lớn.

Grafana Loki tiếp cận theo một hướng hoàn toàn khác, được ví như "Prometheus dành cho log" với các ưu điểm vượt trội:

  • Tiết kiệm tài nguyên: Loki chỉ lập chỉ mục cho các nhãn (metadata/labels) của log chứ không index toàn bộ văn bản. Điều này giảm đáng kể dung lượng lưu trữ và tài nguyên CPU/RAM trên các VPS vệ tinh.
  • Hệ sinh thái đồng nhất: Nếu doanh nghiệp của bạn đã sử dụng Grafana để làm Dashboard theo dõi các chỉ số (metrics), việc tích hợp thêm Loki sẽ tạo ra một trải nghiệm quản trị tập trung duy nhất mà không cần cài đặt thêm Kibana.
  • Cấu trúc Agent siêu nhẹ: Promtail - agent thu thập log đi kèm - chạy cực kỳ nhẹ nhàng trên các VPS vệ tinh, đảm bảo không làm ảnh hưởng đến hiệu năng của các ứng dụng chính.

Kiến trúc tổng quan của hệ thống Centralized Logging

Mô hình triển khai cho 20+ VPS vệ tinh sẽ bao gồm ba thành phần cốt lõi được tổ chức như sau:

  1. Trung tâm dữ liệu (Log Server Central): Nơi cài đặt Grafana Loki (chịu trách nhiệm lưu trữ, xử lý truy vấn log) và Grafana Dashboard (giao diện trực quan hóa dữ liệu).
  2. Các VPS vệ tinh (Target Nodes): Trên mỗi VPS trong số hơn 20 server vệ tinh, chúng ta sẽ cài đặt Promtail. Agent này sẽ liên tục theo dõi (tail) các file log hệ thống, log ứng dụng (Nginx, Docker, MySQL...) và đẩy (push) về Loki Server Central qua giao thức HTTP/gRPC.
Lưu ý an ninh: Toàn bộ kết nối đẩy log từ Promtail về Loki cần được mã hóa qua HTTPS hoặc triển khai trong mạng nội bộ (VPN/VPC) để đảm bảo an toàn thông tin.

Hướng dẫn triển khai chi tiết

Bước 1: Cấu hình Grafana Loki tại Server Trung Tâm

Đầu tiên, chúng ta cần chuẩn bị một VPS có cấu hình vừa đủ (khuyến nghị từ 4GB RAM trở lên tùy thuộc vào lưu lượng log) để làm nơi tiếp nhận dữ liệu. Cách nhanh nhất là triển khai qua Docker Compose.

Dưới đây là file cấu hình mẫu loki-config.yaml cơ bản:

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  instance_addr: 127.0.0.1
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

schema_config:
  configs:
    - from: 2026-01-01
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

Khởi chạy Loki bằng Docker, đảm bảo rằng port 3100 đã được mở trên tường lửa cho các VPS vệ tinh kết nối tới.

Bước 2: Cài đặt và cấu hình Promtail trên 20+ VPS vệ tinh

Trên từng VPS vệ tinh, chúng ta tải về và cài đặt Promtail. Điểm mấu chốt nằm ở file cấu hình promtail-config.yaml. Mỗi VPS cần có một nhãn định danh riêng biệt để dễ dàng phân loại khi tìm kiếm.

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://:3100/loki/api/v1/push

scrape_configs:
  - job_name: system_logs
    static_configs:
      - targets:
          - localhost
        labels:
          job: varlogs
          host: vps-satellite-01
          __path__: /var/log/*.log

Hãy thay đổi giá trị host: vps-satellite-01 tương ứng với tên gọi của từng VPS (ví dụ: vps-api-02, vps-db-03...) để phục vụ cho việc lọc log sau này.

Bước 3: Kết nối Loki vào Grafana và trực quan hóa dữ liệu

Sau khi Promtail trên các VPS vệ tinh bắt đầu đẩy dữ liệu về, truy cập vào giao diện Grafana (mặc định port 3000):

  • Đi đến Connections > Data sources.
  • Chọn Add data source và tìm kiếm Loki.
  • Nhập URL của Loki Server (ví dụ: http://localhost:3100) rồi nhấn Save & test.
  • Để xem log, chuyển sang mục Explore, chọn Data Source là Loki. Tại đây, bạn có thể sử dụng ngôn ngữ truy vấn LogQL để lọc log theo từng server. Ví dụ, để xem log lỗi của VPS số 1, sử dụng câu lệnh: {host="vps-satellite-01"} |= "error".

    Kinh nghiệm tối ưu hệ thống khi quản lý quy mô lớn

    Khi quản trị hệ thống có số lượng node vệ tinh từ 20 trở lên, các kỹ sư hệ thống cần lưu ý một số điểm sau để đảm bảo tính ổn định:

    • Quy hoạch Labels khoa học: Không lạm dụng việc tạo ra quá nhiều nhãn động (dynamic labels) như IP của client hay ID người dùng, vì điều này sẽ làm tăng kích thước chỉ mục và làm chậm Loki. Chỉ nên đặt nhãn cho environment, host, app, và component.
    • Cấu hình Retention Policy: Log không nên lưu trữ vô thời hạn trên ổ cứng cục bộ. Hãy cấu hình Loki tự động xóa log cũ sau 14 hoặc 30 ngày để tối ưu không gian đĩa, hoặc cấu hình đẩy log cũ lên các dịch vụ Cloud Storage giá rẻ như S3.
    • Thiết lập Alerting chủ động: Tận dụng tính năng Alerting của Grafana để gửi thông báo ngay về Telegram, Slack hoặc Email khi phát hiện tần suất xuất hiện từ khóa "Critical Error" hay "Unauthorized" tăng đột biến trên bất kỳ VPS vệ tinh nào.

    Lời kết

    Xây dựng hệ thống Centralized Logging với Grafana Loki và Promtail là một bước đi chiến lược, giúp doanh nghiệp làm chủ hoàn toàn dữ liệu log từ hơn 20 VPS vệ tinh với chi phí vận hành tối thiểu. Khả năng giám sát tập trung không chỉ rút ngắn thời gian xử lý sự cố (MTTR) mà còn cung cấp bức tranh toàn cảnh về sức khỏe của toàn bộ hạ tầng công nghệ thông tin. Chúc các bạn cấu hình và triển khai thành công!

    Xây Dựng Hệ Thống Giám Sát Log Tập Trung Cho 20+ VPS Vệ Tinh Bằng Grafana Loki Và Promtail | DPTCloud