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

Quản lý Centralized Logging (ELK Stack)

6 tháng 5, 2026
Quản lý Centralized Logging với ELK Stack trên VPS

Quản lý Centralized Logging với ELK Stack: Tập trung log từ nhiều VPS

Khi vận hành nhiều VPS cùng lúc, việc xem log phân tán trên từng máy riêng lẻ rất khó khăn, mất thời gian và dễ bỏ sót sự cố. Centralized Logging giúp thu thập toàn bộ log (access log, error log, system log, audit log…) từ nhiều server về một máy chủ trung tâm. ELK Stack (Elasticsearch + Logstash + Kibana) là giải pháp mạnh mẽ và phổ biến nhất hiện nay. Bài viết này hướng dẫn chi tiết cách triển khai hệ thống logging tập trung chuyên nghiệp năm 2026.

1. Tại sao cần Centralized Logging?

Log phân tán gây khó khăn trong việc debug, monitor và phát hiện tấn công. Hệ thống tập trung giúp:

  • Tìm kiếm nhanh: Query toàn bộ log từ hàng chục VPS chỉ trong vài giây.
  • Cảnh báo realtime: Phát hiện lỗi, brute-force, hay truy cập bất thường.
  • Phân tích sâu: Tạo dashboard, báo cáo và xu hướng.
  • Audit & Compliance: Dễ dàng tuân thủ quy định bảo mật.

// Interface mô phỏng Log Event
interface LogEvent {
  timestamp: Date;
  host: string;
  service: string;
  level: "info" | "warning" | "error" | "critical";
  message: string;
  ip?: string;
  userAgent?: string;
}

class CentralLogger {
  private logs: LogEvent[] = [];

  ingestLog(event: LogEvent) {
    this.logs.push(event);
    if (event.level === "critical" || event.message.includes("Failed password")) {
      console.error(`[ALERT] Sự cố nghiêm trọng từ ${event.host}: ${event.message}`);
    }
  }

  search(query: string): LogEvent[] {
    console.log(`[ELK] Tìm kiếm log với từ khóa: ${query}`);
    return this.logs.filter(log => log.message.includes(query));
  }
}
 

2. Tổng quan ELK Stack

ELK Stack bao gồm:

  • Elasticsearch: Công cụ tìm kiếm và lưu trữ dữ liệu phân tán.
  • Logstash / Filebeat: Thu thập và xử lý log từ các VPS.
  • Kibana: Giao diện web để visualize, query và tạo alert.

3. Kiến trúc và yêu cầu VPS

Thành phần CPU / RAM khuyến nghị Storage
Elasticsearch 4-8 cores / 16-32GB NVMe 200GB+
Logstash + Kibana 2-4 cores / 8GB NVMe 100GB
Filebeat (shipper) Nhẹ (chạy trên từng VPS) Không đáng kể

4. Cài đặt Elasticsearch


// Elasticsearch configuration example (elasticsearch.yml)
const esConfig = `
cluster.name: production-elk
node.name: elk-master
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
xpack.security.enabled: true
`;

console.log("[Elasticsearch] Đã cấu hình cluster thành công");
 

5. Triển khai Filebeat trên các VPS client


// Filebeat configuration (filebeat.yml)
const filebeatConfig = `
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
    - /var/log/nginx/access.log
    - /var/log/auth.log

output.elasticsearch:
  hosts: ["http://elk-central.example.com:9200"]
  username: "elastic"
  password: "your_strong_password"
`;

console.log("[Filebeat] Đã cấu hình ship log từ VPS đến ELK Server");
 

6. Sử dụng Kibana để visualize và alert

Kibana cho phép tạo dashboard đẹp, query linh hoạt và thiết lập alert qua email/Slack.


// Logic quản lý Alert trong Kibana (mô phỏng)
interface AlertRule {
  name: string;
  query: string;
  threshold: number;
  severity: string;
}

const alertRules: AlertRule[] = [
  { name: "Brute Force Detection", query: "Failed password", threshold: 10, severity: "High" },
  { name: "High Error Rate", query: "level:error", threshold: 50, severity: "Medium" },
  { name: "Unauthorized Access", query: "401 OR 403", threshold: 20, severity: "High" }
];

function checkAlerts() {
  console.log(`[Kibana] Đang kiểm tra ${alertRules.length} alert rules...`);
  alertRules.forEach(rule => {
    console.log(`[ALERT] Rule "${rule.name}" - Severity: ${rule.severity}`);
  });
}

checkAlerts();
 

7. Best Practices khi vận hành ELK Stack

  • Sử dụng Filebeat thay vì Logstash trên client để tiết kiệm tài nguyên.
  • Bật X-Pack Security và HTTPS cho Elasticsearch.
  • Thiết lập Index Lifecycle Management (ILM) để tự động xóa log cũ.
  • Monitor sức khỏe cluster bằng Metricbeat.
  • Backup snapshot Elasticsearch định kỳ.
  • Giới hạn quyền truy cập Kibana theo role.

8. Kết luận: Checklist triển khai Centralized Logging

Trước khi đưa hệ thống vào production, hãy kiểm tra:

  1. Đã cài đặt và bảo mật Elasticsearch + Kibana?
  2. Filebeat đã được triển khai trên tất cả VPS?
  3. Các log quan trọng (nginx, auth, application) đã được ship?
  4. Đã tạo dashboard và alert rule cần thiết?
  5. Có chính sách lưu trữ và backup log?
  6. Hệ thống có khả năng scale khi lưu lượng log tăng?

Việc triển khai ELK Stack giúp bạn kiểm soát toàn diện log từ nhiều VPS, phát hiện sự cố sớm và hỗ trợ debug hiệu quả. Đây là nền tảng không thể thiếu cho hệ thống production hiện đại năm 2026.

Hy vọng hướng dẫn chi tiết này giúp bạn xây dựng thành công hệ thống Centralized Logging mạnh mẽ!