
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.
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.

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 alloysudo 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_exportersudo 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.
Do you like this post?
Upvote to push this post higher on the community feed
