Giao diện web Proxmox VE được truy cập từ máy tính xách tay trong môi trường home lab
Máy Tính

Xây Dựng Hệ Thống Giám Sát Home Lab Toàn Diện với Grafana, Prometheus và Proxmox

Việc theo dõi home lab và kiểm soát các file log có thể khá tốn công sức, nhưng có nhiều giải pháp tự động nhằm mục đích giúp bạn thực hiện điều này dễ dàng hơn và hình dung được những gì đang diễn ra. Các công cụ này bao gồm Grafana Alloy (người kế nhiệm của Promtail) và Prometheus, một công cụ giám sát hệ thống mạnh mẽ. Với Grafana, Alloy, Loki cùng Prometheus để thu thập dữ liệu hệ thống máy chủ, chúng tôi đã xây dựng một hệ thống giám sát tối ưu có thể theo dõi tất cả các máy của mình.

Thiết lập hệ thống này khá đơn giản và chỉ mất khoảng năm phút theo tài liệu chính thức của Grafana về cách triển khai cấu hình này. Sau đó, chúng tôi đi xa hơn một bước để minh họa cách thu thập dữ liệu từ host Proxmox của bạn, mang lại cái nhìn toàn diện về môi trường home lab.

Tại Sao Cần Giám Sát Hệ Thống Home Lab Của Bạn?

Quản lý tập trung mọi thứ trên một giao diện

Giao diện web Proxmox VE được truy cập từ máy tính xách tay trong môi trường home labGiao diện web Proxmox VE được truy cập từ máy tính xách tay trong môi trường home lab

Đối với những người làm home lab có nhiều máy ảo (VM), máy chủ và container khác nhau, việc theo dõi tất cả chúng và đảm bảo mọi thứ vẫn hoạt động trơn tru có thể trở nên khó khăn. Chẳng hạn, tôi có một container Frigate đôi khi đột ngột bắt đầu 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 không còn hoạt động trong Home Assistant, hoặc khi tôi đi ngang qua hành lang và nghe tiếng quạt của máy tính mini hoạt động hết công suất.

Tuy nhiên, với hệ thống giám sát, việc phát hiện những vấn đề này sẽ cực kỳ dễ dàng chỉ từ một vài dashboard trong Grafana, và tôi sẽ không cần 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. Chúng ta sẽ nói về phần Proxmox sau vì nó hơi khác biệt, nhưng việc giám sát bất kỳ container hoặc máy ảo nào cũng vô cùng đơn giản. Và, một khi bạn đã thiết lập, bạn có thể thêm nhiều thiết bị hơn và coi Grafana 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 một người mới bắt đầu, một hệ thống như thế này có thể chưa cần thiết. Tuy nhiên, khi bạn thấy việc theo dõi các phần mềm đang chạy trở nên khó quản lý, đó là lúc một dịch vụ giám sát bên ngoài phát huy tác dụng. Có một chút thiết lập để thực hiện đúng, nhưng kết quả cuối cùng rất đáng giá.

Cách Giám Sát Mọi Hệ Thống Linux Bằng Grafana

File Docker Compose được cấu hình sẵn giúp triển khai nhanh chóng

Các bước này được lấy từ tài liệu của Grafana, và bạn có thể sửa đổi các file cấu hình để phù hợp với nhu cầu chính xác của mình. Tuy nhiên, kết quả cuối cùng với dashboard 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ài đặt sẽ yêu cầu bạn tự tạo dashboard riêng hoặc sửa đổi 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 bấy nhiêu là đủ! Cá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 (VM_address):3000 và xem dữ liệu đang được thu thập. Có một file JSON được cấu hình sẵn mà bạn có thể import làm dashboard để trực quan hóa tất cả dữ liệu đã thu thập, và điều này là đủ để triển khai trên mọi môi trường Linux 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 tận dụng API của Proxmox để kéo dữ liệu từ các node của bạn.

Giám Sát Proxmox Trong Grafana

Chỉ cần thêm một container Docker nữa

Dashboard Grafana hiển thị dữ liệu giám sát thu thập từ một node ProxmoxDashboard Grafana hiển thị dữ liệu giám sát thu thập từ một node Proxmox

Chúng ta sẽ tiếp tục sử 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 mà chúng ta đã dùng để giám sát máy ảo Linux, vì vậy nếu bạn đã chạy nó, hãy cứ để nó hoạt động. Chúng ta sẽ cung cấp dữ liệu vào phiên bản đó và trực quan hóa nó tại đó.

Để triển khai điều này 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, và trong đó, tạo một file có tên “pve.yml”. Sau đó, bạn sẽ muốn tạo một người dùng mới trên host Proxmox của mình với vai trò PVEAuditor, vì điều này sẽ chỉ cho phép người dùng đọc, chứ không ghi, các chỉ số hệ thống của bạn. Sau đó, bạn sẽ muốn 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 bạn đã cấu hình xong những điều này, hãy 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

Đảm bảo rằng bạn sử dụng đúng cách thụt lề. Chạy lệnh sau để tải xuống Docker image:

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 của bạn, 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 chỉ số được thu thập từ Prometheus. Nếu bạn thấy lỗi máy chủ nội bộ, hãy sử dụng lệnh “docker logs” để xem lỗi là gì.

Tích hợp dữ liệu Proxmox vào Prometheus và Grafana

Nhưng làm thế nào để chúng ta đưa dữ liệu vào Prometheus?

Cấu hình `prom-config.yaml` mẫu để tích hợp Prometheus PVE Exporter vào PrometheusCấu hình `prom-config.yaml` mẫu để tích hợp Prometheus PVE Exporter vào Prometheus

Điều hướng trở 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”. Cấu hình của tôi trông như hình trên, nhưng trang GitHub của PVE Exporter có một cấu hình mẫu mà bạn có thể thêm. Sau khi bạn đã thêm nó, hãy gõ các lệnh sau:

docker compose down
docker compose up -d

Thao tác này sẽ khởi động lại các container Docker của bạn, tải cấu hình Prometheus mới sẽ scrape dữ liệu từ PVE Exporter. Cuối cùng, chúng ta có thể hiển thị dữ liệu của mình bằng cách sử dụng dashboard Grafana “Proxmox via Prometheus”, mà bạn có thể import vào phiên bản Grafana hiện có của mình.

Vậy là xong! Bạn có thể theo dõi nhiều node Proxmox từ PVE Exporter để kiểm soát chúng, và nó cũng hỗ trợ các cluster nếu bạn có 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 thêm về hệ thống này. 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 Home Assistant. Có rất nhiều không gian để cải thiện và thử nghiệm tại đây, và nó rất đáng giá cho một giải pháp tập trung duy nhất để theo dõi mọi thứ bạn tự host. Bạn đã thử thiết lập hệ thống giám sát tương tự chưa? Hãy chia sẻ kinh nghiệm của bạn trong phần bình luận bên dưới!

Related posts

Quản Lý Server Từ Xa Bằng Phần Cứng (Hardware Remote Management): Bí Quyết Vận Hành Home Lab Hiệu Quả

Administrator

Passbolt: Giải pháp quản lý mật khẩu tự host miễn phí và bảo mật tối ưu

Administrator

Chuyển Đổi Playlist YouTube Thành Văn Bản: Khám Phá Công Cụ Đột Phá Giúp Học Tập Hiệu Quả

Administrator