Quản lý Log Windows Server tập trung: Chấm dứt cảnh ‘check log’ thủ công với Grafana Alloy & Loki

Monitoring tutorial - IT technology blog
Monitoring tutorial - IT technology blog

Nỗi ám ảnh mang tên “Event Viewer” mỗi khi hệ thống gặp sự cố

Nếu từng làm System Admin, chắc hẳn bạn không lạ gì cảnh 2 giờ sáng nhận báo động: “Server sập rồi!”. Quy trình cũ kỹ hiện ra: Mở RDP, đăng nhập vào từng server, gõ eventvwr.msc và căng mắt lọc hàng nghìn dòng log System, Application. Nếu quản lý cụm 20-30 server, việc này chẳng khác nào mò kim đáy bể.

Thực tế, chúng ta không nên đi tìm log. Hãy để log tự tìm đến mình. Với bộ đôi Grafana AlloyLoki, toàn bộ Event Logs từ dàn Windows Server sẽ được đẩy về một kho lưu trữ duy nhất. Thay vì tốn 30 phút đăng nhập từng máy, bạn chỉ cần 30 giây chạy một câu query trên Grafana để biết chính xác lỗi nằm ở đâu.

Bài viết này mình sẽ hướng dẫn anh em thiết lập hệ thống này bằng Grafana Alloy. Đây là công cụ thế hệ mới, thay thế hoàn toàn cho Grafana Agent với hiệu năng vượt trội và cấu hình linh hoạt hơn nhiều.

Triển khai nhanh trong 5 phút (Quick Start)

Giả sử bạn đã có sẵn cụm Loki. Nếu chưa, bạn có thể dùng tạm Grafana Cloud (miễn phí 50GB log/tháng) để test thử ngay lập tức.

Bước 1: Cài đặt Grafana Alloy

Đầu tiên, hãy tải bộ cài .msi từ GitHub của Grafana Labs. Chạy file trên Windows Server và giữ các tùy chọn mặc định. Sau khi cài xong, Alloy sẽ tự động chạy như một Windows Service với mức chiếm dụng tài nguyên cực thấp, chỉ khoảng 40-60MB RAM.

Bước 2: Cấu hình file config.alloy

Tìm file cấu hình tại C:\Program Files\GrafanaLabs\Alloy\config.alloy. Hãy xóa nội dung mặc định và thay bằng đoạn code tối giản sau:

loki.source.windowsevent "windows_logs" {
  event_log_name = "System,Application,Security"
  forward_to     = [loki.write.central_loki.receiver]
}

loki.write "central_loki" {
  endpoint {
    url = "http://<IP_CUA_LOKI>:3100/loki/api/v1/push"
  }
}

Lưu ý: Đừng quên thay <IP_CUA_LOKI> bằng địa chỉ server của bạn.

Bước 3: Khởi động lại và kiểm tra kết quả

Mở Services.msc, tìm Grafana Alloy và nhấn Restart. Bây giờ, hãy mở Grafana, vào mục Explore và chọn source Loki. Chạy câu query {job="windows_logs"}. Bạn sẽ thấy log từ Windows bắt đầu đổ về theo thời gian thực.

Tại sao bạn nên chọn Grafana Alloy thay vì Promtail?

Nhiều anh em vẫn dùng Promtail, nhưng Alloy mới là tương lai. Alloy không chỉ thu thập log mà còn xử lý được cả Metrics và Traces theo chuẩn OpenTelemetry.

Cấu trúc của Alloy dựa trên các Component. Bạn khai báo các khối chức năng và kết nối chúng như lắp Lego. Cách tiếp cận này giúp việc lọc log (filtering) và gắn nhãn (labeling) trở nên cực kỳ tường minh. Đặc biệt, Alloy xử lý log Windows mượt hơn, ít khi bị tình trạng nghẽn pipeline khi lượng log tăng đột biến.

Cấu hình thực chiến: Lọc log rác để tiết kiệm tài nguyên

Đẩy toàn bộ log “Information” lên server là một sai lầm chết người. Nó vừa tốn băng thông, vừa làm đầy ổ cứng nhanh chóng. Kinh nghiệm của mình là chỉ lấy log Error (Level 1) và Warning (Level 2).

Dưới đây là file cấu hình mình thường dùng cho các dự án thực tế:

loki.source.windowsevent "windows_critical_logs" {
  event_log_name = "System,Application"
  # Lọc trực tiếp bằng XPath để giảm tải cho CPU
  xpath          = "*[System[(Level=1 or Level=2)]]"
  forward_to     = [loki.relabel.add_labels.receiver]
}

loki.relabel "add_labels" {
  forward_to = [loki.write.central_loki.receiver]

  rule {
    target_label = "hostname"
    replacement  = "SRV-DB-PROD-01"
  }
  rule {
    target_label = "tier"
    replacement  = "database"
  }
}

loki.write "central_loki" {
  endpoint {
    url = "http://192.168.1.100:3100/loki/api/v1/push"
    auth {
      username = "loki_user"
      password = "your_secure_password"
    }
  }
}

Sử dụng xpath giúp lọc log ngay từ nguồn. Cách này giảm tới 70-80% lượng dữ liệu không cần thiết truyền qua mạng.

3 mẹo nhỏ giúp bạn quản lý log như chuyên gia

1. Giám sát log Security để phát hiện Brute-force

Hãy chú ý đến Event ID 4625 (đăng nhập thất bại). Nếu trong 1 phút có hàng trăm log này đổ về, chắc chắn server bạn đang bị tấn công. Bạn có thể thiết lập Alert trên Grafana để nhận thông báo qua Telegram ngay lập tức.

2. Tận dụng Dashboard cộng đồng

Đừng tốn công vẽ Dashboard từ đầu. Hãy truy cập Grafana Dashboards, tìm ID 12239 hoặc keyword “Windows Logs”. Chỉ cần Import ID này, bạn sẽ có ngay biểu đồ trực quan về tình trạng sức khỏe server.

3. Xử lý khi log không hiển thị

Nếu cấu hình đúng mà log vẫn bặt vô âm tín, hãy kiểm tra file log của Alloy tại: C:\ProgramData\GrafanaLabs\Alloy\data\alloy.log. Phần lớn lỗi đến từ việc sai URL Loki hoặc firewall chặn port 3100.

Kết luận

Chuyển sang quản lý log tập trung với Grafana Alloy là bước đi đúng đắn để hiện đại hóa hạ tầng. Bạn sẽ nhàn hơn, hệ thống ổn định hơn và quan trọng nhất là không còn sợ những cuộc gọi lúc nửa đêm. Hãy thử cài đặt ngay hôm nay, chỉ mất 5 phút nhưng giá trị mang lại là cực lớn!

Share: