サイトアイコン IT NEWS

ZabbixでWindows上にマウントしたネットワークドライブを監視

zabbix-agentless-nas

WindowsNAS等のネットワークドライブをマウントし、Zabbix監視する方法をご紹介します!
Zabbixを知ってる方であれば、すぐに方法を思い付くかもしれませんが、ネットワークドライブの監視には落とし穴がありますので、ぜひ最後までお読みください。

ネットワークドライブは監視できない?

ディスクや共有フォルダ、ファイル監視で誰もが真っ先に思い付くのは、デフォルトのテンプレートのアイテムや、ディスカバリールールのアイテムのプロトタイプなどで一般的に使用される、以下のようなアイテムキーだと思います。

よく使われるアイテムキー
  • vfs.fs.~
  • vfs.dir.~
  • vfs.file.~

しかし、結論から言うと、使えまてん!
厳密に言うと、監視データは何かしら取得できますが、Zabbixとしてはそのデータの整合性や、機能として正常な動作を保証していないとのこと。

ネットワークドライブを監視できない理由

理由としては、マウントしているネットワークドライブは、Zabbix Agentをインストールしているシステム上(Windows)とは別に管理されているからです。
勘違いしなように付け加えますが、例え任意のドライブにマウントしていない共有フォルダやその中にあるファイルも監視することはできません
Zabbixアイテムキーについては公式サイトをご覧ください。

管理者

簡単に言うと、Zabbix Agentで監視しているホストのローカルドライブではないので、他のホスト(ネットワーク上)のドライブは管理できませんって話です。

では、どうするのか?
NASエージェントを導入して監視したら良いだけの話ですが、市販されているNASは基本的に機能を追加することはできません。
まぁ~、最近ではZabbix Agentをインストールできる変態的なNASも販売されてますが。。

Zabbix Agentを入れられるNAS

有名なNASと言ったらBuffalo、Synology、QNAPくらいかな?
その中でも特にQNAPは自由度が高く、QNAPZabbix Agentをインストールできるようです。

結局のところ中身はLinuxだと思うので、頑張れば何でも入れられると思いますが。。
実際に、SynologyNASZabbix Serverを導入した猛者もいましたねw

少し話がそれましたw
それでは本題です!
Zabbix Agentを入れられない場合は、コマンド監視SNMP監視の2通りの方法しかありません。
(てか、思いつきません!あったら教えてね~。)

Windowsコマンドによる監視

Windowsコマンドによる監視

まず、コマンド監視についてですが、その名の通りWindowsのコマンドを使用した監視になります。SNMP監視は今回の趣旨ではありませんし、大体どのような機種でもできると思いますので、ここでは割愛させていただきます。

system.runでコマンド実行

具体的に言うと、Windowsコマンドネットワークドライブ監視すると言うより、Zabbixアイテムキーである「system.run」でWindowsコマンドを実行するように命令して、そのコマンドの結果を監視データとして利用する方法になります。

この方法で監視することにより、Zabbixエージェントが直接的にネットワークドライブ監視するわけではなく、あくまでZabbix AgentがインストールされているWindows自身がコマンドでネットワークドライブの情報を取得することで監視できるという仕組みです。

ネットワークドライブの監視

以下の方法は、ネットワークドライブのフォルダやファイルの存在をコマンドで確認し、存在したら「1」、接続できなかったり、存在しなければ「0」を監視データとしてZabbixに返します。

system.run[if exist "\2.168.100.xxx\path\to\file" (echo 1) else (echo 0)]

ネットワークドライブをマウントしてたら以下のようになります。

system.run[if exist "Z:\path\to\file" (echo 1) else (echo 0)]

注)Zabbix Agentの設定が必要!

system.run」キーを使用する際には、Zabbix Agentの設定ファイル「zabbix_agentd.conf」(Zabbix Agent2の場合は、zabbix_agent2.conf)を変更して、Zabbixエージェントが「system.run」キーを使用してWindowsコマンドを実行することを許可してあげる必要があります。
具体的には以下の通りです。

AllowKey=system.run[*]

中の「*(アスタリスク)」は、パラメータ何でも許可しますという意味です。
もっと細かく設定したい場合は、AllowKeyを追加してください。

以上です!
ネットワークドライブ監視に困った方は、ぜひ試してみてください。

モバイルバージョンを終了