MRTGのインストール
QNAP TS-109にMRTGをインストールすることにした。MRTGはもともとルーターのトラフィックデータをグラフ化して表示するツールらしい。MRTGについては以下のサイトがある。
MRTGをQNAPにインストールするにあたっては,QNAP Forumの中のトピックのページが参考になる。
ここに書かれている手順でインストールすることができた。注意点としては、ipkgでもperlがインストールできてしまうのだが、ここに書かれている通りあらかじめikpgを使わないでperlをインストールしておくことである。
(追記:perlを別にインストールするのは、ipkgのperl がchroot環境でないとエラーを出して動かないためだったが、chroot環境でなくても動くようになったので、ipkgのperlを使えばよくなった)
最後にcrontabを編集して定期的にデータを取得するようにする。しばらくの間は15分おきにデータを取るようにしていたが、そこまで細かくやることもないかと思い、今は1時間ごとにデータを取っている。最近ではHDD をspin down させているので、HDDを無駄に動かすのがいやで、さらに、1日1回にしてしまった。
さてここまでで一応トラフィックデータをグラフ表示することができた。しかし、本当はHDDの温度変化が知りたかったのである。いろいろネットで調べてみるとsmarttoolsというパッケージをインストールして、smartctlというコマンドでHDDのSMART情報を取得すればよいらしい。幸いにもQNAP用にipkgでインストールすることができるようだ。これはどうしてわかったかというと、QNAP公式フォーラムの中に、 Current Ipkg feeds available for QNAP NASというトピックを見つけたからだ。すばらしい! ipkgを使って簡単にインストールすることができた。
ところが、smartctl を以下のように実行してもエラーが出てしまう。SMART機能を持っていないなどとたわけたことをいうのだ。
これを解決するのはかなり時間がかかった。結局、-d marvel というオプションをつければよかったのだ。これもなぜわかったかというと、Monitor disks temperatureというトピックの中にヒントが書いてあった。TS-109はシングルディスクだが RAIDコントローラをバイパスしなければいけない点はTS-209と同じらしい。
ついでに、CPU負荷とDisk使用量とメモリ/Swap空き容量のデータも取ることにした。これもネットで調べてみるとsnmpでデータを取ることができるらしい。snmp+mrtgの設定のメモ ? ありえるえりあというページを参考にして、snmpd.conf と mrtg/localhost.cfg を書き換えて、CPU負荷とDisk使用量とメモリ/SWAP空き容量をグラフにすることができた。
ちなみに、mrtgの設定ファイル(localhost.cfg)を変更して新たなデータを取得する場合、indexmakerの実行が必要になるのと、mrtgを3回実行しないとデータが反映されないようなので注意が必要である。
config ファイルを設定するときの注意
MRTGに限らずデーモン系の各種configファイルの設定を変えたときは、該当するデーモンプロセスを初期化しなければならない。Unixではさんざんやってきたはずなのに、しばらく触ってなかったせいか、よく忘れてしまい、「あれ?おかしいな変わらないなあ」などと相当悩んでしまった。わかってしまえばばかばかしい。
具体的には、ps | grep XXXX などとやってプロセス番号を見つけて、kill -1 NNNN とやっている。
crontab を書き換えたは、以下を実行する。
/etc/init.d/crond.sh restart
再起動時の対処
ある時、TS-109を再起動したらデータがとれなくなってしまった。ipkg install net_snmp としただけでは、再起動時に自動的にsnmpdが起動するようになっていない。autorun.shに
/opt/sbin/snmpd -c /opt/etc/snmpd.conf
と書いておく必要がある。
レンタルサーバにコピーして外からチェック
レンタルサーバにデータをコピーして外部からチェックできるようにした。ちなみに自宅のNASは外からはアクセスできないようにしている。
以下のスクリプトでレンタルサーバにFTPで転送している。
ftp -i -n < ftpcmd2.txt >> ftp2.log
ftpcmd2.txt の中身はこんな具合。
open <example.com>
user <user> <password>
bin
cd <directory>
lcd /share/Qweb/mrtg
mput *.png *.html
disconnect
bye
これでとりあえず外からでもTS-109の様子をチェックすることができるようになった。そうすると携帯電話からも見たくなってきた。そのままでは、i-modeブラウザでは見えない。そこで、以下のようにi-mode用のデータを作ることにした。
#!/bin/sh
cd <working directory>
for png in `ls *.png`
do
base=`basename -s .png $png`
/usr/local/bin/convert $png -resize 220×60 m/$base.gif
donefor html in `ls *.html`
do
sed s/png/gif/g $html > m/$html
done
i-modeはpngを表示できないのでgifに変換する。幸いにもレンタルサーバでImageMagicをサポートしていたので、これを使った。ついでにサイズも変えている。そして、gifの画像ファイルを参照するようにhtmlファイルも書き換えている。
これでi-modeからチェックができるようになった。
直接MRTGでgifを生成する方法も考えたが、調べてみるとMRTGはGDライブラリを使っており、PNGしか生成できないようだった。
MRTGの出力結果
出力結果は、このページ へどうぞ。