MacPortsでNagios
2007/01/08 10:22 posted by kunkichi
お休みも終わってしまい、がんばって仕事モードに戻るかー、と気合いを入れようと思いきや、いきなりの連休でまたもやダメ人間へと突き落とされています(笑)が、気を取り直して、前々から勉強しようと思っていたサーバ監視ツール Nagiosのインストールを Mac でやってみました。
ちなみに、仕事でやってるサーバの監視はこんな感じ。
- 死活・稼働監視
SNMPと自前スクリプトでサーバの死活監視、サービスの稼働監視。 - 経過監視
SNMPで取ったデータをMRTGでグラフ化。
よそはどうやってるのかあんまり知らないけどまあ一般的なやり方なのかなぁ。
でも、SNMPでトラップ拾えないものもあるし、新しいサービス追加するたびに自前スクリプト書くのも面倒だし、ってな感じで不便さも感じてきたので、最近流行のNagiosをうちに余っていたiBook(G3/800MHz OSX 10.4)でまずは実験。
まず、Nagiosは、
- Nagios本体
監視のスケジューリングや監視結果の処理 - プラグイン
実際の実際の監視を行うコマンド
という構成になっていて、いろんなサービスを監視するためにはそれ用のプラグイン(コマンド)が必要、言い換えるとそれぞれのサービスのライブラリやコマンドをインストールしなければいけない。OSXのデフォルトではいろいろと足りなさそうなのだけど、いちいちビルドするのは面倒なのでここはMacPortsで端折ることにする。
↑を参考にしてまずMacPortsをインストール。調べてみると、なんだ、MacPorts自体にNagiosが既にあるやん。ということでMacPortsでそのまま入れることにする。
$ sudo port install nagios
※もしこれを参考にする人がいたら、ここですぐ実行せずに下まで読んだほうが時間短縮されるかも。
これで依存関係のあるライブラリも全て自動的にインストールされる。
と、おもったら、
---> Building XFree86 with target World
---> Staging XFree86 into destroot
---> Installing XFree86 4.5.0_2
---> Activating XFree86 4.5.0_2
Error: Target com.apple.activate returned: Image error: /usr/X11R6/include/DPS/ColorSB.h already exists and does not belong to a registered port. Unable to activate port XFree86.
Error: The following dependencies failed to build: gd2 XFree86 freetype zlib jpeg libpng nagios-plugins fping p5-crypt-des perl5.8 p5-digest-hmac p5-digest-sha1 p5-net-snmp openssl
Error: Status 1 encountered during processing.
依存関係にあると思われるXFree86のインストールでなんかコケてる。ググってみたら↓を見つけた。
http://trac.macports.org/projects/macports/ticket/6188
どうやら -f つけて強引に突き進めばいいらしい(爆
まあ、いいや、XFree86 だけ先にいれちゃおう。依存してるパッケージもわかったし。
$ sudo port -f uninstall XFree86
$ sudo port -f install XFree86
$ sudo port install Nagios
ちなみにXFree86のビルドにかなり時間がかかりました。でインストールの最後にいろいろメッセージが出るのでその通りやってみる。
- まず、/etc/httpd/httpd.conf の 「ScriptAlias /cgi-bin/ “/Library/WebServer/CGI-Executables/」の記述の上に以下のエントリを追加。
#
# Nagios stuff
ScriptAlias /nagios/cgi-bin/ "/opt/local/sbin/nagios/"
<directory>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /opt/local/etc/nagios/htpasswd.users
require valid-user
</directory>
Alias /nagios "/opt/local/share/nagios"
<directory>
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
</directory>
# End Nagios stuff
#
設定変更を反映するためにapacheを再起動。
$ sudo apachectl restart - 次に /opt/local/etc/nagios にNagiosの設定ファイルを準備。
$ cd /opt/local/etc/nagios
$ sudo mkdir sample
$ sudo cp *.cfg-sample sample/
$ for i in *cfg-sample; do sudo mv $i `echo $i | sed -e s/cfg-sample/cfg/`; done;
commands.cfgとか編集しろ、って書いてあるけど最低限のコマンドは書いてあるようなのでここではパス。とりあえず設定ファイルのテストだけしてみる。
$ sudo nagios -v /opt/local/etc/nagios/nagios.cfg
以下のようにエラーが出なければOK。
Total Warnings: 0Things look okay - No serious problems were detected during the pre-flight check
Total Errors: 0 - /opt/local/etc/nagios/cgi.cfgの管理者ユーザ設定を”nagiosadmin”に変更する。
authorized_for_system_information= nagiosadmin
authorized_for_configuration_information= nagiosadmin
authorized_for_system_commands= nagiosadmin
authorized_for_all_services= nagiosadmin
authorized_for_all_hosts= nagiosadmin
authorized_for_all_service_commands= nagiosadmin
authorized_for_all_host_commands= nagiosadmin - 先ほどの管理者ユーザでapacheのBASIC認証ができるようにする。
$ sudo htpasswd -c /opt/local/etc/nagios/htpasswd.users nagiosadmin - 最後にNagiosが自動起動するように設定して
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.nagios.plist
Nagiosを起動。
$ sudo /opt/local/var/nagios/nagios.init start
これでインストールは完了。ブラウザから”http://IPアドレス/nagios”を参照してNagiosのTOP画面が見えればとりあえずインストールはできてるはず。

まあ監視対象サーバの設定は一つも設定してないのでデフォルトだとNagiosがインストールされているlocalhost(つまりiBook)しか設定がないのだけど、それはまた後日。






2008/08/31/ 12:22
2008/08/25/ 21:10
2008/08/24/ 15:31
2008/02/19/ 23:52
2008/01/23/ 21:27