Việc quản lý một hệ thống home lab phức tạp, theo dõi các file log và đảm bảo mọi thứ vận hành trơn tru có thể tiêu tốn rất nhiều thời gian và công sức. Tuy nhiên, với sự trợ giúp của các giải pháp tự động hóa tiên tiến, quy trình này trở nên dễ dàng hơn và cho phép bạn hình dung rõ ràng những gì đang diễn ra trong hệ thống của mình. Các công cụ như Grafana Alloy (phiên bản kế nhiệm của Promtail) và Prometheus – một công cụ giám sát hệ thống mạnh mẽ – đã mở ra những khả năng mới. Với Grafana, Alloy và Loki để thu thập và quản lý log, cùng với Prometheus để tổng hợp dữ liệu hệ thống từ các server, bạn có thể xây dựng một hệ thống giám sát toàn diện, theo dõi mọi thiết bị trong home lab một cách hiệu quả và chuyên nghiệp.
Việc thiết lập hệ thống này khá đơn giản, chỉ mất khoảng năm phút theo tài liệu hướng dẫn chính thức từ Grafana. Chúng ta sẽ cùng đi sâu hơn để khám phá cách thu thập dữ liệu từ một máy chủ Proxmox – nền tảng ảo hóa phổ biến cho home lab, nhằm tạo nên một cái nhìn tổng quan hoàn chỉnh về toàn bộ cơ sở hạ tầng của bạn.
Tại sao cần phải giám sát hệ thống Home Lab của bạn?
Giám sát tập trung giúp quản lý hiệu quả hơn
Đối với những người đam mê home lab, sở hữu nhiều máy ảo (VM), máy chủ và container khác nhau, việc theo dõi tất cả chúng để đảm bảo mọi thứ vẫn hoạt động trơn tru có thể trở nên khó khăn. Hãy lấy một ví dụ thực tế: tôi có một container Frigate đôi khi đột ngột sử dụng 100% bộ nhớ, 100% CPU và 100% swap được gán cho nó. Tôi chỉ nhận ra điều này khi thẻ Frigate của tôi ngừng hoạt động trong Home Assistant, hoặc khi tôi đi ngang qua hành lang và nghe thấy quạt của chiếc mini PC hoạt động hết công suất.
Giao diện web Proxmox trên laptop, minh họa việc quản lý các máy ảo và container trong home lab
Tuy nhiên, với một hệ thống giám sát chuyên nghiệp, việc này sẽ trở nên cực kỳ dễ dàng. Chỉ với một vài dashboard trong Grafana, tôi có thể nhanh chóng phát hiện vấn đề mà không cần phải kiểm tra từng container, VM riêng lẻ, hay thậm chí là giao diện người dùng của Proxmox host. Mặc dù việc giám sát Proxmox có chút khác biệt, nhưng việc theo dõi bất kỳ container hoặc máy ảo nào cũng vô cùng đơn giản. Một khi đã thiết lập xong, bạn có thể dễ dàng thêm nhiều thiết bị hơn và biến Grafana thành một tài nguyên tập trung để theo dõi tất cả phần mềm của mình.
Đối với người mới bắt đầu, một hệ thống giám sát chuyên sâu như thế này có thể chưa thực sự cần thiết. Tuy nhiên, khi bạn nhận thấy việc theo dõi các phần mềm đang chạy trở nên quá tải và khó kiểm soát, đó là lúc một dịch vụ giám sát bên ngoài trở nên hữu ích. Mặc dù cần một chút công sức để thiết lập đúng cách, nhưng kết quả cuối cùng sẽ mang lại sự tiện lợi và hiệu quả tuyệt vời cho việc quản lý home lab của bạn.
Hướng dẫn giám sát mọi hệ thống Linux trong Grafana
Triển khai dễ dàng với Docker Compose
Các bước dưới đây được lấy từ tài liệu chính thức của Grafana và bạn hoàn toàn có thể tùy chỉnh các file cấu hình để phù hợp với nhu cầu cụ thể của mình. Dashboard cuối cùng sẽ sử dụng tất cả dữ liệu được xuất, vì vậy hãy lưu ý rằng việc thay đổi cấu hình sẽ yêu cầu bạn tạo dashboard riêng hoặc chỉnh sửa dashboard hiện có. Để bắt đầu, trước tiên hãy đảm bảo bạn đã cài đặt Docker và Git, sau đó chạy các lệnh sau trong terminal:
git clone https://github.com/grafana/alloy-scenarios.git
cd alloy-scenarios/linux
docker compose up -d
Chỉ cần thực hiện những bước đó! Container Docker sẽ khởi động, chạy Grafana, Prometheus, Loki và Alloy. Sau đó, bạn có thể truy cập vào phiên bản Grafana của mình tại địa chỉ (VM_address):3000
để xem dữ liệu đang được thu thập. Có sẵn một file JSON cấu hình sẵn mà bạn có thể import làm dashboard, file này sẽ trực quan hóa tất cả dữ liệu đã thu thập. Đây là giải pháp đủ để triển khai trên bất kỳ môi trường Linux nào có khả năng chạy container.
Nhưng còn Proxmox thì sao? Có một công cụ tuyệt vời, dễ sử dụng khai thác API của Proxmox để kéo dữ liệu từ các node của bạn.
Giám sát Proxmox trong Grafana
Thêm một container Docker duy nhất
Chúng ta sẽ tiếp tục tận dụng Docker, cùng với dự án Prometheus PVE Exporter. Chúng ta cũng có thể sử dụng cùng một stack Grafana đã dùng để giám sát VM Linux. Vì vậy, nếu bạn đang chạy hệ thống đó, hãy để nó tiếp tục hoạt động. Chúng ta sẽ cấp dữ liệu vào phiên bản Grafana đó và trực quan hóa nó tại đó.
Để triển khai Prometheus PVE Exporter bằng Docker, trước tiên hãy tạo một thư mục mà bạn muốn lưu trữ thông tin đăng nhập Proxmox của mình. Trong thư mục đó, tạo một file có tên “pve.yml”. Tiếp theo, bạn cần tạo một người dùng mới trên Proxmox host của mình với vai trò PVEAuditor. Vai trò này sẽ chỉ cho phép đọc, không ghi, các số liệu hệ thống của bạn. Sau đó, bạn có thể tạo một token cho người dùng đó để đăng nhập, hoặc sử dụng tên người dùng và mật khẩu trong PVE Exporter. Cả hai đều hoạt động, nhưng sử dụng token an toàn hơn vì bạn có thể thu hồi nó bất cứ lúc nào.
Sau khi cấu hình, thêm nội dung sau vào file pve.yml
của bạn:
default:
user: prometheus@pve
password: sEcr3T!
# Optional: set to false to skip SSL/TLS verification
verify_ssl: true
Hãy đảm bảo rằng bạn sử dụng đúng cấu trúc thụt lề. Chạy lệnh sau để tải hình ảnh Docker:
docker pull prompve/prometheus-pve-exporter
Sau đó chạy container của bạn, nơi chúng ta sẽ trỏ nó đến file pve.yml
để kết nối với Proxmox:
docker run --init --name prometheus-pve-exporter -d -p 0.0.0.0:9221 -v /path/to/pve.yml:/etc/prometheus/pve.yml prompve/prometheus-pve-exporter
Trong trình duyệt, nếu bạn điều hướng đến (VM IP):9221/pve?target=(proxmox IP)
, bạn sẽ thấy một loạt các số liệu được thu thập từ Prometheus. Nếu bạn thấy lỗi máy chủ nội bộ (internal server error), hãy sử dụng lệnh docker logs
để xem lỗi ở đâu. Nhưng làm thế nào để chúng ta đưa dữ liệu vào Prometheus?
Cấu hình prom-config.yaml của Prometheus, hiển thị cách tích hợp dữ liệu từ Prometheus PVE Exporter để giám sát Proxmox
Hãy quay lại thư mục bạn đã tạo phiên bản Grafana thử nghiệm và sửa đổi file “prom-config.yaml”. Hình trên minh họa một cấu hình mẫu, nhưng GitHub của PVE Exporter cũng cung cấp một cấu hình mẫu bạn có thể thêm vào. Sau khi đã thêm, nhập các lệnh sau:
docker compose down
docker compose up -d
Thao tác này sẽ khởi động lại container Docker của bạn, kéo cấu hình Prometheus mới để scrape dữ liệu từ PVE Exporter. Cuối cùng, chúng ta có thể biểu diễn dữ liệu của mình bằng dashboard Grafana “Proxmox via Prometheus”, bạn có thể import dashboard này vào phiên bản Grafana hiện có của mình.
Dashboard Grafana hiển thị dữ liệu giám sát từ một node Proxmox, được thu thập qua Prometheus PVE Exporter
Vậy là xong! Bạn có thể theo dõi nhiều node Proxmox từ PVE Exporter để kiểm tra chúng, và nó cũng hỗ trợ các cluster nếu bạn đã triển khai. Đây là một cách nhanh chóng và dễ dàng để theo dõi các máy chủ tự host của bạn, và nó cũng rất dễ nhìn.
Có nhiều cách để mở rộng hệ thống này hơn nữa. Ví dụ, nếu bạn sử dụng Home Assistant, bạn có thể thiết lập các ảnh chụp màn hình tự động trong Grafana để kéo chúng vào một dashboard của Home Assistant. Có rất nhiều không gian để cải thiện và thử nghiệm tại đây, và việc đầu tư vào một “cửa hàng một điểm dừng” để theo dõi mọi thứ bạn tự host là hoàn toàn xứng đáng. Hãy bắt tay vào triển khai và chia sẻ những khám phá của bạn cùng cộng đồng congnghemoi.net nhé!