社内で開発・運用しているSNSの監視ツールとしてNagiosを導入することにした。
まずは手始めに、単純にURL監視がしたかっただけなのだが、要件を満たすツールは色々あって、どうしようかと思っていたら、はてなとmixiが使っていることを知り、Nagiosを触ってみる気になった。すげー単純(笑)
さて、Nagiosではご丁寧にお絵描きしてくれるそうなので、gdとかlibjpegやらlibpngやら必要になるみたい。
# 別になくても、お絵描きの部分以外、つまり監視と文字レポートは有効に働くので、そんなに問題ではない。
aptで調べてみると、どうやらlibgd-devあたりを入れると依存関係チェックで他のもサクッと入りそうなので、apt-get installでえいやっと。
# apt-get update # apt-get install libgd-devel
続いて、Nagiosのインストール。
現時点(2007/03/19)の最新版(2.8)+日本語化パッチを導入。
$ cd ~/install $ wget http://prdownloads.sourceforge.net/nagios/nagios-2.8.tar.gz?download $ wget http://keihanna.dl.sourceforge.jp/nagios-jp/24484/nagios-2.8-ja.patch $ tar zxvf nagios-2.8.tar.gz $ mv nagios-2.8-ja.patch nagios-2.8/ $ cd nagios-2.8/ $ patch -ls -p0 -i nagios-2.8-ja.patch $ ./configure --prefix=/usr/local/nagios $ make all $ sudo make install $ sudo make install-init $ sudo make install-commandmode $ sudo make install-config $ cd ..
プラグインもインストール。これも現時点の最新版。
$ tar zxvf nagios-plugins-1.4.6.tar.gz $ cd nagios-plugins-1.4.6/ $ ./configure --prefix=/usr/local/nagios $ make all $ sudo make install
次に、ブラウザ越しにNagiosの管理画面にアクセスできるようにする設定を行う。
Google先生でやり方を調べると、ほとんどは世間で圧倒的なシェアを占めるApacheでの設定方法ばかり。
せっかくなので、lighttpd使いらしく、lighttpdの上で動かしてみるようにする。
# と、かっこよく書いたけど、設定方法はApache用のをlighttpd用に少し書き換えるだけなので、簡単(笑)
url.redirect += ( "^/nagios(\?.*)?$" => "/nagios/$1" ) $HTTP["url"] =~ "^/nagios/" { server.document-root = "/usr/local/nagios/share" server.indexfiles = ( "index.html" ) cgi.assign = ( ".cgi" => "" ) alias.url = ( "/nagios/cgi-bin/" => "/usr/local/nagios/sbin/", "/nagios/" => "/usr/local/nagios/share/" ) }
最初、cgi.assignの部分を、
cgi.assign = ( ".cgi" => "/usr/bin/perl" )
と設定していたら、以下のエラーが出た。
Unrecognized character \x7F at /usr/local/nagios/sbin/status.cgi line 1.
.cgiファイルを覗いてみるとバイナリじゃないっすか。
というわけで、上記のように/usr/bin/perlを通さないように修正。
ちょっとお行儀がよくない気もするが、/nagios以下のみだし、まぁ良しとしよう。
ここまでで、lighttpdの設定は完了。
これでは、まだ監視はスタートしてくれないので、Nagios自身の設定を行う。
デフォルトの状態だと、以下ディレクトリに設定ファイルのサンプルがあるので、流用。
/usr/local/nagios/etc
適当にこんな感じで、設定ファイルを生成する。
// コマンド例: $ cd /usr/local/nagios/etc $ cp nagios.cfg-sample nagios.cfg
設定ファイル一覧はこの通り。
- cgi.cfg
- commands.cfg
- nagios.cfg
- resource.cfg
- localhost.cfg (ホスト単位で必要なので、こいつをコピーする)
さて、HTTPレベルでのURL監視をするためには、、、
まず、生き死にの確認をするためのデフォルトのHTTPコマンドにオプションを追加。
以下のような感じで、commands.cfgを編集。-pオプションでポート番号(デフォルトは"80")の指定、-uでドメイン以下のパス(デフォルトは"/")が指定できる。
$ diff commands.cfg commands.cfg-sample 113c113 < command_line $USER1$/check_http -H $HOSTADDRESS$ -p $ARG1$ -u $ARG2$
-
- -
次に、ホストおよびサービス監視の設定をする。
ここでは、ローカルホストの場合を例にとって最低限URL監視するにあたって必要なことを説明する。
$ vi localhost.cfg
まずは、クリティカルエラーが発生した場合のメール送信先を変更。
define contact{ contact_name sonic-admin alias Nagios Admin service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,r service_notification_commands notify-by-email host_notification_commands host-notify-by-email email {メールアドレス} }
次にホストの設定。監視対象としたいホストの情報を入れる。
define host{ use linux-server host_name {ホスト名} alias {エイリアス} address {IPアドレス} }
次に、URL監視したいサービスの設定。
さっき、commands.cfgでオプション(-p -u)を追加したため、ポート番号とパスが引数として渡せるようになっている。
define service{ use local-service ; Name of service template to use host_name {ホスト名} service_description {サービスの説明} check_command check_http!{ポート番号}!{ドメイン以下のパス} }
最後にCGI認証まわりの設定。
$ vi cgi.cfg
ですが、書き疲れてきたのでパス(笑)
最低限の稼動確認ということで、CGIの認証をOFFにする設定は以下(^^;;)
# この辺は、たくさん情報があるので、そっちを参照されたし。
use_authentication=0
あとは、
$ /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
でNagiosを稼動させると、
http://{Nagiosをインストールしたホスト名 or IPアドレス}/nagios/
で、Nagiosの管理画面にアクセスすることが出来ます。
Nagios 2.0オープンソースではじめるシステム&ネットワーク監視
- 作者: 佐藤省吾
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2006/08/28
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 157回
- この商品を含むブログ (21件) を見る