I ♥ WordPress

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のビルドにかなり時間がかかりました。でインストールの最後にいろいろメッセージが出るのでその通りやってみる。

  1. まず、/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
  2. 次に /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: 0
    Total Errors:   0
    Things look okay - No serious problems were detected during the pre-flight check
  3. /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
  4. 先ほどの管理者ユーザでapacheのBASIC認証ができるようにする。
    $ sudo htpasswd -c /opt/local/etc/nagios/htpasswd.users nagiosadmin
  5. 最後に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_top.jpg

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

コメント&トラックバック

トラックバックURL

>依存関係にあると思われるXFree86のインストールでなんかコケてる。
>どうやら -f つけて強引に突き進めばいいらしい(爆

普通は XFree86 をわざわざビルドするんじゃなくて、Apple’s X11 を入れます。

2007/4/9 月曜日10:31:52 posted by とおりすがり3

うーん、X11は入ってますけど、XFree86のビルドが走っちゃったんですけどね。単にMacPortsはMacPortsの依存関係を満たすために必要なのかなと思って特に着にはしてません。インストールパスも違うみたいだし。

2007/4/10 火曜日0:13:47 posted by kunkichi





このページの先頭へ