TSF – Giải pháp IT toàn diện cho doanh nghiệp SMB | HCM

P9 - Giám sát ổ đĩa Proxmox Theo dõi sức khỏe disk

PRTG – P9 Giám sát ổ đĩa Proxmox | Physical Disk Health & Alerts

Trong môi trường ảo hóa, lỗi ổ đĩa vật lý là một trong những rủi ro nghiêm trọng nhất. Không giống như CPU hoặc RAM quá tải có thể phát hiện ngay, lỗi ổ đĩa thường xảy ra âm thầm. Khi bạn nhận ra vấn đề thì VM có thể đã chậm, lỗi I/O hoặc thậm chí mất dữ liệu.

Trong bài hướng dẫn này, bạn sẽ học cách Giám sát ổ đĩa Proxmox bằng PRTG Network Monitor. Từng bước sẽ giải thích cách thu thập dữ liệu SMART, kiểm tra tình trạng ZFS và cấu hình sensor cảnh báo tình trạng ổ đĩa.

PRTG giúp quản trị viên hệ thống phát hiện sớm lỗi ổ đĩa thông qua giám sát thời gian thực và cảnh báo tự động. Giải pháp này phù hợp cho system administrator và virtualization engineer đang vận hành Proxmox trong môi trường production hoặc homelab.

Hãy làm theo hướng dẫn để bảo vệ hạ tầng Proxmox của bạn khỏi những sự cố ổ đĩa ngoài ý muốn.


🔧 Bước 1: Tạo Script Kiểm Tra Ổ Đĩa

Tạo thư mục chứa script (sử dụng SSH Advanced Scripts):

 
 
mkdir -p /var/prtg/scriptsxml
 

Tạo file script:

 
 
nano /var/prtg/scriptsxml/prtg_check_all_storage.sh
 

Nội dung:

💻
prtg_check_all_storage.sh
#!/bin/bash

BASELINE_FILE="/var/prtg/storage_baseline.txt"
STATUS=0
MSG="All disks OK"

################################
# Detect current disks
################################
CURRENT_DISKS=$(lsblk -ndo NAME,TYPE | awk '$2=="disk"{print $1}')
CURRENT_COUNT=$(echo "$CURRENT_DISKS" | wc -w)

################################
# BASELINE DISK CHECK (ALWAYS)
################################
if [ -f "$BASELINE_FILE" ]; then
    MISSING=""

    while IFS="|" read -r WWN DEV MODEL; do
        if [ "$WWN" = "NO_WWN" ]; then
            lsblk -ndo NAME | grep -qw "$DEV" || \
            MISSING="$MISSING $MODEL($DEV)"
        else
            lsblk -P -o WWN | grep -qw "WWN=\"$WWN\"" || \
            MISSING="$MISSING $MODEL($DEV,WWN:$WWN)"
        fi
    done < "$BASELINE_FILE"

    if [ -n "$MISSING" ]; then
        STATUS=2
        MSG="Disk missing:$MISSING"
    fi
else
    STATUS=1
    MSG="Baseline not initialized"
fi

################################
# ZFS HEALTH CHECK (OPTIONAL)
################################
if command -v zpool >/dev/null 2>&1; then
    if zpool list >/dev/null 2>&1; then
        ZFS_BAD=$(zpool list -H -o name,health | awk '$2!="ONLINE"{print $1"("$2")"}')
        if [ -n "$ZFS_BAD" ]; then
            STATUS=2
            MSG="ZFS issue: $ZFS_BAD"
        fi
    fi
fi

################################
# SMART CHECK
################################
BAD_SMART=""
if command -v smartctl >/dev/null 2>&1; then
    for d in $CURRENT_DISKS; do
        smartctl -H /dev/$d &>/dev/null
        [ $? -eq 2 ] && BAD_SMART="$BAD_SMART /dev/$d"
    done
fi

if [ -n "$BAD_SMART" ]; then
    STATUS=2
    MSG="SMART failure:$BAD_SMART"
fi

################################
# PRTG XML OUTPUT
################################
cat <<EOF
<prtg>
  <result>
    <channel>Storage Health</channel>
    <value>$STATUS</value>
    <LimitMaxError>1</LimitMaxError>
    <LimitMode>1</LimitMode>
  </result>

  <result>
    <channel>Disk Count</channel>
    <value>$CURRENT_COUNT</value>
  </result>

  <text>$MSG</text>
</prtg>
EOF

exit 0

Cấp quyền và chạy thử:

 
 
chmod +x /var/prtg/scriptsxml/prtg_check_all_storage.sh
/var/prtg/scriptsxml/prtg_check_all_storage.sh
 

Script này hoạt động cho cả node Proxmox dùng EXT hoặc ZFS, không phụ thuộc số lượng ổ đĩa.


🔐 Bước 2: Thêm SSH Root Certificate vào Proxmox Device

Thêm SSH root certificate vào thiết bị Proxmox trong PRTG để đảm bảo PRTG có thể xác thực và thực thi script từ xa.


📌 Bước 3: Khởi Tạo Baseline (Chỉ Chạy 1 Lần)

Khi hệ thống đang hoạt động bình thường, hãy tạo baseline.

Chỉ chạy một lần duy nhất.

Chạy trực tiếp trên Proxmox:

💻
filename.sh
lsblk -P -o NAME,TYPE,WWN,MODEL | \
awk '/TYPE="disk"/{
  for(i=1;i<=NF;i++){
    if($i ~ /^NAME=/){gsub(/NAME=|"/,"",$i); name=$i}
    if($i ~ /^WWN=/){gsub(/WWN=|"/,"",$i); wwn=$i}
    if($i ~ /^MODEL=/){
      sub(/^MODEL="/,"",$i)
      model=$i
      for(j=i+1;j<=NF;j++){
        if($j ~ /"$/){sub(/"$/,"",$j); model=model" "$j; break}
        model=model" "$j
      }
    }
  }
  if(wwn=="") wwn="NO_WWN"
  print wwn "|" name "|" model
}' > /var/prtg/storage_baseline.txt

Không cần thêm sensor trước hay sau bước này. Điều quan trọng là thực hiện khi hệ thống ổn định.

Với ZFS

ZFS tự quản lý ổ đĩa, vì vậy:

• Không cần baseline
• Không lo đổi tên ổ đĩa

Script sẽ kiểm tra:

 
 
zpool list -o health
 

Chỉ cần:

✔ ZFS pool ONLINE → 🟢
✔ DEGRADED / FAULTED → 🔴


📊 Bước 4: Thêm Sensor vào PRTG

Thêm sensor:

SSH Script Advanced

📎 Cấu hình trong PRTG

• Sensor type: SSH Script
• Result handling:
o 0 → OK
o 1 → Down

Sau khi thêm sensor, PRTG sẽ tự động đọc XML output từ script và hiển thị trạng thái:

  • 0 = Hệ thống bình thường

  • 1 = Chưa khởi tạo baseline

  • 2 = Lỗi ổ đĩa / SMART / ZFS


🧪 Demo: Thử Tháo Một Ổ Đĩa

Khi tháo một ổ đĩa khỏi hệ thống:

  • Baseline sẽ phát hiện ổ đĩa bị thiếu

  • PRTG chuyển trạng thái sang lỗi

  • Cảnh báo được gửi ngay lập tức

Đây chính là lợi thế của việc Giám sát ổ đĩa Proxmox chủ động thay vì đợi sự cố xảy ra.


🔄 Khi Nào Cần Chạy Lại Baseline?

Baseline cần chạy lại khi:

  • Thay ổ đĩa mới

  • Thêm ổ đĩa mới

  • Thay USB enclosure

Việc cập nhật baseline giúp hệ thống nhận diện chính xác cấu hình ổ đĩa hiện tại.


🎯 Kết Luận

Giải pháp Giám sát ổ đĩa Proxmox bằng PRTG giúp bạn:

  • Phát hiện sớm lỗi SMART

  • Theo dõi tình trạng ZFS

  • Cảnh báo khi ổ đĩa bị thiếu

  • Giảm thiểu downtime

  • Bảo vệ toàn bộ VM trong hệ thống

Ổ đĩa là nền tảng của hạ tầng ảo hóa. Khi storage gặp sự cố, toàn bộ dịch vụ phía trên đều bị ảnh hưởng.

Với script tùy chỉnh và SSH Script Advanced sensor trong PRTG, bạn đã triển khai một hệ thống giám sát chuyên nghiệp, phù hợp cho cả môi trường EXT lẫn ZFS.

Hãy đảm bảo luôn theo dõi trạng thái ổ đĩa thường xuyên để hệ thống Proxmox của bạn luôn ổn định và an toàn.

 
 

Tham khảo thêm bài viết cùng chủ đề

P3 – Giải Pháp Mạnh Mẽ Giám Sát IP WAN Với PRTG

P3 – Giải Pháp Mạnh Mẽ Giám Sát IP WAN Với PRTG PRTG – P3 Giám Sát Internet & WAN IP Với PRTG Network Monitor Việc theo dõi kết nối Internet là yếu tố sống còn trong hạ tầng doanh nghiệp. Khi đường truyền WAN gặp sự cố, các dịch...

Read More

P1 – Hướng Dẫn Cài Đặt PRTG Hoàn Chỉnh Windows 10

P1 – Hướng Dẫn Cài Đặt PRTG Hoàn Chỉnh Windows 10 🚀 Cài đặt PRTG trên Windows 10 – Initial Setup & Configuration (P1) Nếu bạn đang bắt đầu triển khai hệ thống giám sát hạ tầng, thì việc Cài đặt PRTG đúng cách là bước nền tảng cực kỳ...

Read More