これまでは、Zabbix Sender を使い、リモートのサーバ上へデータを送る方法や、Rspberry Pi上のデータを送る方法を見てきました。今回はこれまでの方法を応用し、自宅の nasne のハードディスク容量や録画・再生状態を監視する方法をご紹介します。
■ nasne とは、そして、その課題
nasne (ナスネ)はソニーが発売している HDD 搭載のネットワーク・ストレージで、地上デジタル放送・BS放送・CS放送の録画や視聴ができます。私自身、以前は HDD 搭載 DVD レコーダーを使って番組を録画していたのですが、nasne のほうが容量が多いだけでなく、 PS4 や PlayStation VITA を通して簡単に操作・視聴できるため、昨年のうちに乗り替えています。
番組の録画データは本体の HDD または追加 HDD に保管されます。しかし、空き容量がゼロになってしまうと、折角の映像作品が録画されなくなってしまうという悲劇が発生してしまいます。このような事態を避けるためには、通常のサーバーの HDD 容量を監視するように、nasne のディスク容量を定期的に監視することが有用と思われます。
■ nasne の容量を監視するには?
さて、nasne の容量を監視するには、どうしたらよいでしょうか。nasne はサーバではありませんので、Zabbix エージェントをインストールすることはできません。そのかわり、REST のインターフェースが提供されているため、curl コマンドを使ってディスク容量などのデータを、Linux サーバ上などで取得する事が出来ます。
具体的なデータ取得方法については、先日のエントリをご覧ください。
【nasne】APIを調べてみた。ディスク容量が知りたい、他 | Pocketstudio.jp log3
http://pocketstudio.jp/log3/2014/12/07/nasune_api/
Linux サーバ上で nasne のデータが取得できれば、あとは zabbix_sender を使う事で、簡単に nasne の情報を Zabbix サーバに送ることが出来ます。nasne のデータを取得して送る程度であれば、わざわざサーバを用意しなくても、Raspberry Pi のような小型コンピュータを使って簡単にデータを送信する事ができます。
あとは、Zabbix サーバ側で nasne のデータを取得できるように、「 Zabbix トラッパー」のアイテム設定を行います。ここでは、Zabbix のテンプレートを使って、簡単にアイテム設定ができるようにします。以下の GitHub レポジトリに Zabbix のテンプレートや Raspberry Pi で実行するためのスクリプトを置きましたので、よろしければご活用ください。
https://github.com/zembutsu/nasne_monitor
ライセンスは MIT です。Pull Request や issue での報告・提案大歓迎です。
■ 監視設定の概略
Zabbix サーバ上のアイテムを登録するためには、「nasne_monitor」レポジトリにあるテンプレート「zbx_template_nasne.xml」を Zabbix にインポートするのが手軽な方法です。対象のファイルを手許のPCにダウンロードした後、テンプレート画面で「インポート」することで、利用可能となります。あとは Zabbix 上で、監視対象となるホスト情報を作成し、このテンプレートを有効にする作業をお願いします。
テンプレートを有効化すると、テンプレート名「Template nasne monitor」に関連づけられているアイテムが表示されるのが分かると思います。このテンプレートを有効化することで使える機能は、以下の通りです。
- nasne HDD free … nasne の空き容量
- nasne HDD free (%) … nasne の空き容量(パーセンテージ)
- nasne HDD used … nased で使用中の容量
- nasne HDD used (%) … nasne の使用中の容量(パーセンテージ)
- nasne LIVE … nasne 上でクライアントが視聴中の状態を見る(0: 未視聴, 1:視聴中)
- nasne PLAY … nasne 上でクライアントが録画データを視聴中(0: 再生していない、1: 再生中)
- nasne REC … nasne 上で番組を保存中(0:録画していない、1:録画中)
また、このテンプレートを使う事で、以下のトリガも有効になります。閾値は、必要に応じて書き換えをお願いします。
- 空き容量が 200 GB 以下
- 空き容量が 20% 以下
- 空き容量が 5% 以下
Zabbix サーバーにデータを送るため、Rspberri Pi や家庭内サーバの Linux サーバ上には、次のファイルが設置されています。これらは、レポジトリ上にあるものをダウンロードして、設置をお願いします。
- /usr/local/bin/nasne_hdd_zabbix.pl … nasune のディスク容量を Zabbix Server に送るスクリプト
- /usr/local/bin/nasne_status_zabbix.pl … nasune の視聴・録画状態のステータスを送るスクリプト
あとは、Raspberry Pi上の cron には、以下のように登録します。これは、毎分 nasne の状態を Zabbix サーバに送信するものですが、必要に応じて送信タイミングを書き換えてください。
* * * * * /usr/local/bin/nasne_hdd_zabbix.pl * * * * * /usr/local/bin/nasne_status_zabbix.pl
各スクリプトのなかでは、「自分の」ネットワーク内にあるnasneの IP アドレスを、環境に応じて書き換える必要があるので注意して下さい。設定が正しければ、これらのスクリプトを通して zabbix_sender コマンドを実行し、結果として nasne のデータが Zabbix サーバに保管されるようになります。
あとは、Zabbix サーバ上でデータの取得が正常にされているかどうか、次のようなグラフが表示されるか確認をおねがいします。テンプレートのなかに、nasne の HDD 容量(使用中・空き)のほか、nasne の状態(視聴中・録画中・再生中)のステータスを表示する事が出来ます。
このように、zabbix_sender を使えば、家庭内にある非サーバー上のデータを簡単に取得できるということが分かると思います。今回は nasne でしたが、その他の機器のデータも簡単に Zabbix サーバに送信できるだけなく、家庭内のネットワークを安全に保ったまま監視データを Zabbix サーバに送ることができるのも特徴です。
是非、nasneに限らず、いろいろなデータを記録・監視することによって、私たちの普段の生活の質を向上することに役立つことが出来ればと思っています。
さて、次回は zabbix_sender を使ったログ監視をとりあげます。文字列のデータだけでなく、日時データの入っているログを Zabbix で監視する方法を紹介する予定です。