Torrus を使う・その2

昨日 Torrus を設定し、Ubuntu を落として今日また起動したところ、グラフがアップデートされなくなってしまった。

collector がデータを取りに行ってくれないのかと思って調べたら、デーモンは上がっているし SNMP での通信も出来ている。

で、、、仕方ないので collector プロセスに strace をかけて見たところ、取得データを保存する RRD ファイルに書き込みが出来ないというエラーが発生していることが判明。

統計情報は RRD という形式で /var/lib/torrus/collector_rrd ディレクトリ以下に保存されるのだが、このファイルのオーナーが root:root であるのに対し、collector デーモンは Debian-torrus というユーザ権限で動いていたため、書き込みが出来なくてエラーになっていた模様。

# どこかにエラーログとか吐いてくれないのかな、、、。

RRD ファイルのパーミッションを見たところ 664 になっていたので、ひとまず回避策として chgrp Debian-torrus * してみたらやっとデータが更新されるようになった。

もしかして、最初に collector を動かしたときに root のコマンドラインから起動したのがいけなかったのかな。。rc スクリプトでは、su Debian-torrus してからデーモンを起動しているようなので、こちらを利用した方がいいかも。

Torrus を使う・その1

Torrus はオープンソースのシステム管理ツールである。海外では割と使われているようだが、日本ではあまり実績がないようで、日本語の情報というのがほとんどないようだ。ということで、私が悪戦苦闘して Torrus を動かしてみた経験をもとに情報をまとめてみたいと思う。

まずは Torrus が動くところまで。

(1) Torrus とは?

Torrus はオープンソースのシステム監視ツールであり、SNMP をベースとして監視対象デバイスから情報を定期的に取得し、項目毎に定められたしきい値を越えた場合に通知することが出来たり、また統計情報をグラフで視覚的に表示させることができる。

SNMP による情報取得では Perl の Net::SNMP モジュールを使っており、またグラフの表示には Apache を用いるのが標準となっている。(mod_perl が必須。)

(2) Torrus のありか

ソースコードは http://torrus.org/ より取得可能。公式情報もここに数多く存在するが、正直あまり構造化されているとは言えず、あちこち動き回って情報を探し出す必要がある。

(3) インストール

Torrus のインストール自体は簡単。ソースコードを持ってきて
# ./configure; make; sudo make install
するだけ。ただし、RRDtool とか依存するライブラリが大量にあるのでこれらも事前にインストールしておいてあげる必要がある。(前提とされるライブラリの情報についてはおいおいまとめたい。)

ちなみに Ubuntu では既にパッケージが用意されているようなので、今回はこちらを使った。sudo apt-get install torrus-apache2 とすれば、Apache2 を使ったグラフ表示機能を実現するのに必要なパッケージを自動でインストールしてくれる (はず)。

(4) 設定ファイルについて

設定ファイルは Ubuntu のパッケージの場合、/etc/torrus/conf ディレクトリ以下に格納される。自分でビルドした場合は、標準では /usr/local/etc/torrus/conf になるので注意。

とりあえず、/etc/torrus/conf/torrus-siteconfig.pl 中で定義されている変数のコメント部分をすべて外し、有効にしておく。カスタマイズした場合は別途行えばいい。

(5) 何はともあれ、監視するホストを登録してみる

Torrus の設定は、すべて torrus コマンドを用いる。監視対象を登録するためのおおまかなステップは以下のとおり。

i. 監視対象への SNMP によるアクセス方法を定義

# torrus genddx --host=<hostname> --port=<port> --community=<community> --subtree=<subtree> --out=<ddxfile>

ここで subtree なるものが出てくるが、これは Torrus においてデバイスの管理を階層的に行うために必要となるもので、UNIX のディレクトリ構造のような形式で表記する。たとえば /Server/Tokyo/DC1 など。

また --out オプションで定義情報の出力先を指定する。この出力先ファイルは Torrus では一般的に DDX と呼ばれているが、torrus genddx コマンドは引数を元に DDX を XML 形式で保存するコマンドであるということも出来る。

ii. 監視対象へ SNMP でアクセスして、構成情報を取得 (Device Discovery)

それぞれの監視対象に対して DDX を作成したら、各機器ごとの構成情報を取得する。

# torrus devdiscover --in=<ddx1> --in=<ddx2> ... --verbose

のように、DDX ファイルをすべて指定してあげたほうがよさそう。また、verbose オプションをつけることによって Device Discovery の進行状況が逐一分かる。

iii. すべての監視対象に対する情報を一まとめにコンパイルし、DB へ格納

# torrus compile --all --verbose

終わったら検索データベースを構築。

# torrus bs --global --verbose

iv. 情報収集を開始させる

# torrus collect --tree=main
# /etc/init.d/torrus-common start

[注: root 権限で torros collect コマンドを動かしてしまうと、データ出力先ファイルのオーナーが root になってしまい、あとあと rc スクリプトから collector を起動した際に書き込みが出来なくなってしまう。collector を動かすときは rc スクリプトを使った方が無難。]

(6) Web ブラウザでアクセスしてみる

Ubuntu の場合は、torrus-apache2 パッケージが Apache 側の設定まで実施してくれるので大変便利。Ubuntu でない場合は、ここなどを参照して Apache に設定を追加する。

で、Apache を再起動。[注: torrus-siteconfig.pl をいじったら必ず Apache を再起動すること。これは mod_perl が古い情報を握ってしまうことを抑止するため。]

# /etc/init.d/apache2 restart

さらに、ツールにアクセスするための Torrus 上でのユーザを作成する。まずすべての閲覧権限を持つグループ (ここでは admin という名前) を作成し、次にユーザをこのグループに所属させるように作成する。

# torrus acl --addgroup=admin --permit='DisplayTree' --for='*'
# torrus acl --adduser=taishi --password=xxxxxxxx --addtogroup=admin

あとは、Web ブラウザで http://localhost/torrus にアクセスし、上で作成したユーザでログインすれば、収集されたデータを見ることが出来る。

----

ということで、今日はここまで。次回はもうちょっとカスタマイズする部分に踏み込んでみたい。

Windows コマンドプロンプト 備忘録

仕事の関係で Windows の .bat ファイルを書く必要性に駆られ、コマンドプロンプトで使える表現を軽く勉強してみた。以下自分の備忘録。

@echo off
デフォルトでは .bat ファイルだろうがなんだろうがプロンプトと実行コマンドが端末上に表示されてしまう。.bat で実行するときにはうざいのでプロンプト表示を停止するための命令。表示が消えるのはあくまでプロンプトだけであり、標準出力はちゃんと出力される。@echo on で元に戻る。

set AAA=bbb
環境変数 AAA に値 bbb を代入する。参照する場合は %AAA% のようにする。

echo
引数で指定した文字列を標準出力に表示する。引数をつけないと、現在の @echo のモード (on か off か) を表示する。空行を表示したいときは echo; のようにする。

rem
コメント行。

:AAA
ラベル AAA を定義する。これは後述の goto で使うためのジャンプ先指定に使われる。

goto AAA
ラベル AAA にジャンプする。

if文
よくある条件分岐。条件を書いて、その後に命令を書く。
文字列が合致するかを比較するには、if "%AAA%"=="bbb" のようにする。
またファイルが存在するかチェックするには if exist C:¥filename のようにする。

if "%AAA%"=="bbb" goto XXX else goto YYY

とすれば、%AAA% が bbb に合致するときは XXX へ飛び、そうでなければ YYY へ飛ぶということができる。

set /p AAA="質問"
標準入力から1行読み込み、それを変数 AAA に代入。

空ファイルの作成
type nul > C:¥filename

iMac 購入

ここ1年ぐらい、どうにもPCの調子がよろしくなくて、ずっと新しいPCを欲しいなぁと思ってたんだけど、ついに買ってしまいました。

20インチ iMac (MB417J/A)。

買って3日目なので、まだまだ慣れない部分も多いけど、みんなが言うようにやっぱり Mac は触っていて楽しい。それぞれの操作に対する画面のエフェクトはとても秀逸だし、UI も Windows と比べて洗練されている気がする。UNIX ベースであるというのも、自分にとっては馴染みやすい要因になっているし。

前のが Athlon64 2000+ とかいう CPU だったこともあって、Core 2 Duo 2.66MHz も非常に軽快に感じる。この CPU に 2GB Memory + 20インチディスプレイで11万弱というのは、とてもお買い得に感じる。

ただ、これまでとあんまり大きく変わってしまうとストレスになるかと思って、メールも Web もデフォルトのアプリ (Mail.app や Safari) ではなく Firefox や Thunderbird を入れて使っている。また、iPhoto も自分には馴染みがないこともあっていまいち使い勝手がよくないように感じたので、これまで使っていた Picasa を併用するようにしている。iPhoto の方がアルバムを作ったりするのは楽しそうなので、余裕が出てきたらチャレンジしてみたい。

あとは、Snow Leopard (¥990 のをオーダー済み)、ATOK (ことえりの使い勝手を鑑みて買うか判断)、Time Machine あたりが今後の検討課題かな。

ちなみに、1点だけ悩んでいるのは、Windows で使っていた USB のヘッドセットを認識してくれないこと。これはもうちょっと調べてみる必要がありそう。

iPhone

昨日から iPhone を使っている。

とはいえ、まだ MNP の切り替えが終わっていないので無線LANでしかネットにつなげず、単なる iPod Touch 状態なのだけど。

しかし iPhone はすごいねー。

一番すごいと思ったのは UI。弾く操作とかもとても気持ちいいし、反応もきびきびしている。アプリも豊富でインストールも簡単。素人にでも簡単に使えるよう、全てにおいてよく考えられている。

正直、iPhone を使ってしまうともう Touch Diamond は全くさわる気がしない。Touch Diamond は動作ももっさりしているし、マシンのスペック不足でせっかくの HSDPA の恩恵を全く受けられている気がしない。メリットといえば PC につないでモデムとして利用できるといった程度で、Windows Mobile 機であることのメリットはほとんどない。

以前はあんなこと言ってたけど、今となってはもう心は完全に iPhone。

はやく MNP 切り替え終わらないかなぁ。

calendar
 123456
78910111213
14151617181920
21222324252627
28293031   
<< March 2010 >>
表示しているエントリー
コメントリスト