Back to Explore
Hướng dẫn chi tiết: Chuyển đổi từ node_exporter sang Grafana Alloy cho hệ thống giám sát server

Hướng dẫn chi tiết: Chuyển đổi từ node_exporter sang Grafana Alloy cho hệ thống giám sát server

Khám phá quy trình từng bước để thay thế node_exporter bằng Grafana Alloy, giúp tối ưu hóa hệ thống giám sát, tăng cường bảo mật với mô hình đẩy dữ liệu (push-based) và hợp nhất các tác vụ telemetry.

Website
Upvote this postSign in to upvote this article.

Bài viết được dịch và tổng hợp từ tin tức gốc. Bạn có thể đọc bài viết gốc bằng tiếng Anh tại đây.

Điểm tin nhanh:

  • Grafana Alloy thay thế node_exporter bằng cách chuyển đổi từ mô hình "kéo" (scrape) sang mô hình "đẩy" (remote write), giúp loại bỏ nhu cầu mở cổng mạng inbound trên server.
  • Quy trình migration được khuyến nghị thực hiện theo phương pháp "canary" (từng server một) để đảm bảo tính liên tục của dữ liệu giám sát.
  • Alloy không chỉ thay thế node_exporter mà còn là giải pháp hợp nhất cho logs, traces và các tín hiệu telemetry khác trong tương lai.

Ảnh minh họa

Nếu bạn đã làm việc với việc giám sát Linux trong thời gian dài, node_exporter có lẽ là công cụ đầu tiên bạn cài đặt. Nó nhẹ, đáng tin cậy và cung cấp lượng lớn chỉ số máy chủ cho Prometheus. Tuy nhiên, khi hạ tầng phát triển, việc quản lý nhiều tác nhân (agent) khác nhau cho log, trace và metrics trở nên cồng kềnh. Grafana Alloy xuất hiện để giải quyết vấn đề này bằng cách hợp nhất tất cả vào một tác nhân duy nhất.

So sánh mô hình hoạt động: node_exporter vs Grafana Alloy

Sự khác biệt cốt lõi không nằm ở binary, mà ở hướng di chuyển của dữ liệu telemetry.

Đặc điểm node_exporter Grafana Alloy
Mô hình Pull (Kéo) Push (Đẩy)
Cổng mạng Mở cổng 9100 (Inbound) Không cần mở cổng (Outbound)
Bảo mật Yêu cầu firewall cho phép scrape An toàn hơn qua tunnel/remote write
Khả năng mở rộng Chỉ metrics Metrics, Logs, Traces, Profiling

Cấu hình Alloy với River

Alloy sử dụng ngôn ngữ cấu hình River. Dưới đây là ví dụ cấu hình tối thiểu để thay thế node_exporter:

// Thu thập chỉ số máy chủ
prometheus.exporter.unix "host" {
}

// Scrape chỉ số nội bộ
prometheus.scrape "host" {
  targets    = prometheus.exporter.unix.host.targets
  forward_to = [prometheus.remote_write.default.receiver]
}

// Đẩy dữ liệu về Prometheus
prometheus.remote_write "default" {
  endpoint {
    url = "https://metrics.example.internal/api/v1/write"
  }
}

Quy trình Migration từng bước (Canary Deployment)

1. Chọn Canary Host

Chọn một server không quá quan trọng, cài đặt Alloy qua package manager:
sudo systemctl enable alloy
sudo systemctl start alloy

2. Cấu hình và Kiểm tra

Chỉnh sửa file /etc/alloy/config.alloy. Kiểm tra trạng thái service:
sudo systemctl status alloy --no-pager

Bạn có thể truy cập UI tích hợp tại cổng 12345 để quan sát luồng dữ liệu.

3. Xác thực dữ liệu

Kiểm tra metrics cục bộ:
curl http://localhost:12345/metrics | grep node_memory_MemAvailable_bytes

Trong Prometheus/Grafana, hãy kiểm tra độ tươi của dữ liệu bằng truy vấn:
time() - timestamp(node_uname_info{instance="canary-host"})

4. Loại bỏ node_exporter

Sau khi xác nhận dữ liệu ổn định:
sudo systemctl stop node_exporter
sudo systemctl disable node_exporter

Cuối cùng, xóa job scrape cũ trong Prometheus và reload cấu hình:
curl -X POST http://localhost:9090/-/reload

Những lưu ý quan trọng

  • Đừng vội vàng: Hãy chạy song song cả hai agent trong một khoảng thời gian để đối chiếu dữ liệu.
  • Kiểm tra label: Các nhãn (labels) có thể thay đổi, hãy cập nhật dashboard và alert rules tương ứng.
  • Bảo mật: Tận dụng việc chuyển sang mô hình đẩy để đóng hoàn toàn các cổng inbound không cần thiết trên server của bạn.

Discussion (0)

You need to log in to post comments. Log In

No comments yet. Start the discussion!

Do you like this post?

Upvote to push this post higher on the community feed

Details

Posted by: @admin
Categories: Developer Tools
Date posted: 8 tháng 7, 2026