ZabbixでSambaファイルサーバーのRAIDドライブ監視

Linux

Linuxで組むSamba RAID1ファイルサーバーは、HDDが1台故障しても運用が継続できる仕組みがありますが、もう1台が壊れるとデータが全損するため、故障が判明したHDDはできるだけ速やかに交換する必要があります。

Sambaサーバーには、市販NASのようなRAID HDD故障状態の通知や表示を行う仕組みがないため、Zabbix監視サーバーを用いてRAID状態を自動監視する方法を記載します。

環境条件

本記事は以下の環境で解説します。

  • 仮想サーバー:Proxmox VE8(構築方法はこちら
  • ファイルサーバー:ubuntu24.04LTS, Samba3, RAID1(4TBx2台)(構築方法はこちら
  • 監視サーバー:Zabbix Ver.7.0LTS(構築方法はこちら

各種サーバーはproxmox上の仮想環境で動作させることができますので、ハード自体は1基のPCで組めます。

当サイトにも各種サーバーの構築方法を記載していますので、適宜参照してください。

またここで紹介するファイルサーバー用HDDはWD RED Plusを使いました。

記録方式が実績のあるCMRであり、無償交換保証も3年と長いので、ビジネス用ファイルサーバーとしても安心して使うことができオススメです。

障害検出の仕組みについて

Samba側のRAIDアレイ状態は/proc/mdstatの内容を見ることでわかります。

Zabbixでの自動監視はこの仕組みを利用します。

# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc1[1] sdb1[0]
      5860335232 blocks super 1.2 [2/2] [UU]
      bitmap: 1/44 pages [4KB], 65536KB chunk

unused devices: <none>

RAID1の場合、[UU]であれば正常です。異常時は[U_], [_U]のようになり、Uの数が2未満になればHDDに障害があるということになります。(RAID5の場合はHDDが3基のため[UUU]がとなるはずです。)

samba側でgrepと wcを用いて、健全な RAIDアレイのU数をカウントし、その値をZabbix agent経由でZabbixサーバーに通知すれば監視することができます。

作業前にSamba側で以下コマンドでRAIDアレイ数を返せることを確認します。

$ cat /proc/mdstat | grep -o U | wc -l
2

# RAID1の場合、正常時は2で異常時は1(または0)になる

Samba側のZabbix agent2インストール

Zabbixはubuntuのaptで入手できないため、最初にZabbixリポジトリから作業をします。

注記:最新のZabbixリポジトリの入手コマンドはここで確認してください。

# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
# dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
# apt update

aptでZabbix agent2をインストールします。

# apt install zabbix-agent2 zabbix-agent2-plugin-*

以下を参考にzabbix_agent2.confを編集します。

# nano /etc/zabbix/zabbix_agent2.conf

# 以下行をZabiixサーバーに設定
Server=192.168.0.246
ServerActive=192.168.0.246
Hostname=samba

#最終行に以下を追記
UserParameter=raid.healthy,cat /proc/mdstat | grep -o U | wc -l

設定が記述できたらzabbix_agent2を再起動し、設定を有効化します。

# systemctl restart zabbix-agent2

agentの設定はこれで完了です。

Zabbixサーバー側設定

Zabbixサーバーにてホスト登録とRAIDドライブ情報の監視設定を行います。

ホストの作成

(ホスト作成が完了している場合は本作業は省略してください。)

ZabbixのWebコンソールにログイン後、「データ収集」→「ホスト」に進み、右上の「ホスト作成」をクリックし、監視対象ホストを作成します。

  • ホスト名:falcon-samba(自分のサーバー名を入れてください)
  • テンプレート:Linux by Zabbix Agent
  • インタフェース:エージェントに設定し、対象ホストのIPアドレスを設定

アイテム設定

「データ収集」→「ホスト」→「アイテム」に進み、右上の「アイテム作成」で監視項目を追加します。

アイテム設定には以下の値を入力します。

  • 名前:RAID_status
  • タイプ:Zabbixエージェント
  • キー:raid.health
  • 監視間隔:30m(1mでは短すぎる)

トリガー設定

トリガー設定では、[UU]が2未満になると警報が出るよう設定するため、トリガー条件式は以下を入力します。

  • 名前:raid.health
  • 深刻度:「重度の障害」に設定
  • 条件式:last(/falcon-samba/raid.healthy)<>2 (falcon-sambaはホスト名)

グラフ設定

以下に設定すると、監視の「グラフ」で過去の状態がわかるようになります。

  • 名称:RAID_health
  • 高さ:900
  • 幅:200
  • Y軸の最小値:固定0
  • Y軸の最大値:固定2
  • アイテム:Samba_4TB: RAID_health、グラデーションライン

監視データの確認

監視データ→ホスト→対象ホストのグラフをクリックすると、raid.healthの時系列の状態が表示されることを確認します。

agentデータがグラフに反映されるは10-30分ほど必要ですので少々待ってください。

Zabbixは構築にちょっと手間がいるのが難点ですが、サーバーソフトとしてはとても優れているので、この監視方法はオススメです。