ZabbixでZFSドライブの稼働監視を行う手順の紹介です。
以前の記事ではmdadm(Linux RAID1)ドライブの死活監視をしていましたが、新たに構築したZFSドライブにおいても同等の監視をすることにしました。
今回紹介する監視方法はフル監視ではなく、zpool statusでの[ONLINE]を数えるだけの簡易監視になります。
有志が作成した設定ファイルを使うとドライブ残容量等の詳細監視も出来るのですが、普段はZabbix agentで一通りのステータス確認が出来ますし、ほぼ壊れることが無い構成であることから、ドライブ死活チェックのみ確認できるようにしました。
今回の環境
今回構築した環境は以下の通りです。
Proxmox仮想サーバー上に「Zabbix」と「Samba」の2基のゲストOSを構築しています。
- 仮想サーバーOS:ProxmoxVE9
- Zabbixサーバー:Ubuntu24.04LTS + Zabbix 7.0LTS
- Sambaファイルサーバー:Ubuntu26.04LTS + Samba + ZFSドライブ(mirror) + ZFSドライブ(単体HDD)
[手順1」Samba側にZabbix agent2をインストール
Samba側にZabbix agent2をインストールします。
既にZabbix agent2を入れている場合は、systemctlで停止させておいてください。
# systemctl stop zabbix-agent2
リポジトリ、agent2、agent2プラグインをまとめてインストールします。
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu26.04_all.deb # dpkg -i zabbix-release_latest_7.0+ubuntu26.04_all.deb # apt update Zabbix agent2をインストールする # apt install zabbix-agent2 Zabbix agent2プラグインをインストールする # apt install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql
/etc/zabbix/zabbix_agent2.confを編集し、ZabbixサーバーのIPアドレスを記述します。
# nano /etc/zabbix/zabbix_agent2.conf 82行目 Server=192.168.10.122 132行目 ServerActive=192.168.10.122
Zabbix agent2を起動します。
# systemctl start zabbix-agent2 # systemctl enable zabbix-agent2
[手順2]Zabbix側でSambaをZabbix agent2登録
「データ収集」→「ホスト」で対象となるSambaサーバーを選択

- テンプレートを選択:「テンプレートグループ」から「Linux by Zabbix agent」を選択
- インタフェース記述:タイプ「エージェント」、IPアドレス「SambaサーバーのIPアドレス」、ポートは「10050」

[ZBX]がグリーン表示であればagent2監視登録は完了です。

[手順3]Samba側でZabbix agent2の追加設定
最初にSambaサーバー側のコマンドから[zpool status]でドライブ状況の確認を行ってみます。
$ zpool status
pool: tank
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-QEMU_HARDDISK_QM00007 ONLINE 0 0 0
ata-QEMU_HARDDISK_QM00009 ONLINE 0 0 0
ミラードライブの場合「ONLINE」が5個表示されます。
ドライブに故障が発生すると「ONLINE」が「DEGRADED」や「FAULTED」になります。
今回の監視は「ONLINE」を数えた「5」をZabbixで監視表示し、ドライブ状態が一目で分かるようにします。
「ONLINE」の計数は次のLinuxコマンドで数値が返せます。
$ /sbin/zpool status $1 | grep -c "ONLINE" 5
この数値をZabbixに通知するようZabbix agent2に追加登録します。
/etc/zabbix/zabbix_agent2.confに以下を追記します。
nano /etc/zabbix/zabbix_agent2.conf 最終行に以下を追記 UserParameter=zfs.pool.status[*],/sbin/zpool status $1 | grep -c "ONLINE"
Zabbix agent2を再起動します。
# systemctl restart zabbix-agent2
以上でSambaサーバー側の設定は完了です。
原理さえわかってしまえば簡単ですね。
[手順4]Zabbix側での可視化設定
Sambaサーバー側から送られたzfsドライブ情報をZabbixに表示する処理を行います。
ここからはGUI設定となりますので図解にて解説します。
Zabbixのコンソールにログインし、「データ収集」→「ホスト」にて「Sambaサーバーのアイテム」をクリックします。

右上にある「アイテムの作成」をクリックします。

下図を見ながら値を入力します。
※監視時間は30m(30分)に伸ばしておくとZabbix側の負荷が下がるのでおすすめです

「テスト」→「値の取得とテスト」で値が「5」が返ってくることを確認します。

「ダッシュボード」に移動し、右上の「ダッシュボードの変更」をクリック。
さらに右下の地図の歯車マークをクリックし、ウィジェットの変更をします。

下図を参照し、ウィジェットの設定を行います。

ウィジェットの登録が完了すると、ダッシュボードにZFS_statusが表示されるようになります。

以上でZFSドライブのZabbix監視設定は完了です。
HDDに障害が出た場合の交換手順については後日記載予定です。

