ZabbixからKVMホスト経由で、各ゲストVMのディスク使用量(GB)を取得し、可視化・監視する方法を紹介します。
ゲストOSにZabbixエージェントを入れずに、virt-dfコマンドを活用して監視します。
1. スクリプトの配置
以下の内容でスクリプト /etc/zabbix/scripts/monitor_vm_disk_used.sh を作成します。
#!/bin/bash
export LANG=C
export LIBGUESTFS_BACKEND=direct
DISK_PATH="$1"
TARGET_DEV="$2"
# virt-df 出力を1行に整形
output=$(virt-df -a "$DISK_PATH" 2>/dev/null | paste -d ' ' - -)
line=$(echo "$output" | grep "${DISK_PATH##*/}:$TARGET_DEV")
# 行が見つからなければ終了
[[ -z "$line" ]] && { echo "ZBX_NOTSUPPORTED"; exit 1; }
# 使用量(KB)抽出
used_kb=$(echo "$line" | awk '{print $(NF-3)}')
[[ ! "$used_kb" =~ ^[0-9]+$ ]] && { echo "ZBX_NOTSUPPORTED"; exit 1; }
# GBに変換して出力(小数2桁)
awk -v u="$used_kb" 'BEGIN { printf "%.2f", u / 1024 / 1024 }'
実行権限を付与:
chmod +x /etc/zabbix/scripts/monitor_vm_disk_used.sh
2. Zabbixエージェントの設定
/etc/zabbix/zabbix_agentd.conf に以下を追記:
UserParameter=vm.disk.used[*],/etc/zabbix/scripts/monitor_vm_disk_used.sh "$1" "$2"
設定を反映させるためにZabbixエージェントを再起動します:
systemctl restart zabbix-agent
3. 動作テスト
コマンドラインから以下を実行して確認します:
sudo -u zabbix /etc/zabbix/scripts/monitor_vm_disk_used.sh /var/lib/libvirt/images/VM名.qcow2 /dev/マウントポイント
出力例:
4.30
→ ゲストVMのディスク使用量(GB)が数値で表示されていれば成功です。
4. Zabbixアイテムの設定
- 名前: Disk Used (GB) for {#VMNAME} [{#MOUNTPOINT}]
- キー:
vm.disk.used[{#DISKPATH},{#MOUNTPOINT}] - タイプ: Zabbixエージェント
- データ型: 浮動小数
- 単位: GB
- 更新間隔: 300s(推奨)
補足
この方法は、Zabbixホスト(KVMホスト)から仮想ディスク(qcow2など)を直接参照し、ゲストOSに変更を加えることなくディスク使用量を監視できます。
LLD(ディスカバリ)と組み合わせることで、マウントポイントごとの自動監視にも対応可能です。
Apple 2024 11インチiPad Air (Wi-Fi, 128GB) - スペースグレイ (M2)
只今、価格を取得しています。
(2026年6月17日 14:00 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)


コメント