Monitorixは軽量で手軽に運用できる監視ツールである。
http://www.monitorix.org/

Monitorixの特徴

Perlで書かれており、データ格納、グラフ描画はrrdtoolを使っている。
ここだけ見ると他の量産型監視ツールとそれほど変わらない。

特筆すべきはそのサイズ。
依存ソフトウェアを除いたmonitorix関連ファイルは合計で2MBytesにも満たない。

それなのに、ツール自体にhttpサーバも含まれているのでapacheなどを追加でインストールする必要はない(他のhttpサーバを使ってもよい)。

複数サーバ監視ももちろん可能。
監視対象サーバ、監視サーバの双方にmonitorixをインストールし、設定で監視サーバ、監視「対象」サーバを分けることになる。
つまり、これ一つで完結する。

加えて、監視項目の設定も楽。
インストールしてすぐグラフが表示されるのは驚きである。

以下、インストールした記録を示す。
OSはFreeBSDだが、インストール後の設定はほぼ共通と思う。
monitorixビルトインのhttpサーバを使う。

インストール

pkgngでインストールしています。

$ pkg search -o monitorix
sysutils/monitorix

$ pkg search monitorix
monitorix-3.4.0

$ sudo pkg install monitorix
Updating repository catalogue
The following 8 packages will be installed:

        Installing p5-ParallelUA: 2.57_2
        Installing p5-HTTP-Server-Simple: 0.44
        Installing p5-CGI.pm: 3.63,1
        Installing p5-XML-SAX-Expat: 0.50
        Installing p5-Config-General: 2.52
        Installing rrdtool: 1.4.8
        Installing p5-XML-Simple: 2.20
        Installing monitorix: 3.4.0

The installation will require 5 MB more space

1 MB to be downloaded

Proceed with installing packages [y/N]: y
(略)

ご覧の通り私の環境では一部の依存含めて5MB消費するだけだが、rrdtoolのインストールがあるとドッと依存が増える。

以下のようにインストールされる。

実行ファイル  /usr/local/bin/monitorix
設定ファイル  /usr/local/etc/monitorix.conf
htmlなどは   /usr/local/www/monitorix/
cgiは      /usr/local/www/cgi-bin/monitorix.cgi
起動スクリプト /usr/local/etc/rc.d/monitorix
Perlモジュール /usr/local/share/monitorix/
ドキュメント  /usr/local/share/doc/monitorix/

フルリストは pkg info -l monitorix-3.4.0 のようにすれば見られる。

設定

/usr/local/etc/monitorix.confで行う。
最低限、変えないといけない場所は以下。
base_urlとbase_cgiと、httpdを動かす権限。
以下はFreeBSDの例だが他OSでも変更する「箇所」は同じ。どう変えるかはOS/monitorixがインストールされた内容に応じて考える。

まずbase_urlとbase_cgi

base_dir = /usr/local/www/monitorix/
base_lib = /var/db/monitorix/
# ↓このままだと/usr/local/www/monitorix/monitorixを
# ↓参照してしまう。
# base_url = /monitorix 
base_url = /
# ↓このままだと/usr/local/www/monitorix/monitorix/cgi-binを
# ↓参照してしまう。
# base_cgi = /cgi-bin/
# ↓/usr/local/www/monitorix/cgi/が/usr/local/www/cgi-binに
# ↓リンクされているのでこうする。
base_cgi = /cgi/

次にhttpdの動作ユーザ、グループ。
デフォルトではnobodyに設定されているが、可能なら個別の専用ユーザを設定したほうがよい。
ユーザnobodyは他のサーバソフトウェアでも使われることがある。
このため、何らかの問題でnobodyの権限が奪われた場合、monitorixだけでなく、同じnobody権限で動いているソフトウェアにも影響が及んでしまうからである。

FreeBSDではwebサーバ用のアカウント「www」が用意されているのでこちらを使う。
(もちろん、同じマシンで他のwebサーバを動かしており、かつ権限がwwwの場合には先述の懸念が発生するので注意)
グラフの画像が保存される/usr/local/www/monitorix/imgsのオーナ/グループがwwwになっているしね。

なお、monitorixのhttpdはポート8080を使う。
同ホスト内の他のサーバがポート8080を使っている場合には変えておくこと。

<httpd_builtin>
        enabled = y
        host =
        port = 8080
#     user = nobody
#     group = nobody
      user = www
      group = www
(略)
</httpd_builtin>

参考までにFreeBSDにおけるユーザwwwは以下の通り。

$ finger www
Login: www                              Name: World Wide Web Owner
Directory: /nonexistent                 Shell: /usr/sbin/nologin
No Mail.
No Plan.

テスト起動

FreeBSDでは以下の通りにして起動。

$ sudo service monitorix onestart
:
Starting monitorix.
$

そしたらブラウザでhttp://<monitorixサーバ>:8080/に繋ぐ。
下記のような画面になれば成功。
なんというか・・・20世紀末から21世紀初頭のアングラサイトといいましょうか、「Welcome to Underground」とか書いてありそうなサイトで素敵です。

img

OKを選んで先に進めばグラフがご覧の通り。
img

続き

Monitorixをカスタマイズしよう