Nagios 用に Apache を設定する

Nagios にWebでアクセスできるようにApacheを設定する。具体的にはエイリアスの設定とベーシック認証の設定を行う。

Webアプリをやってると縁遠いけど、ベーシック認証はなんだかんだ言って便利だと思う。今回はローカルからアクセスできれば良いので、パスワードが平文で送受信されても、別にって感じ。堅牢性を考えるとアレだけど、使えるケースでは積極的に採用しても良いんじゃないかと。

設定は、Apacheの設定ファイル httpd.conf の580行目付近(ScriptAliasのあたり)に、以下を追記する。

# for Nagios
ScriptAlias /nagios/cgi-bin/ "/usr/local/nagios/sbin/"
<Directory "/usr/local/nagios/sbin/">
     AllowOverride AuthConfig
     Order allow,deny
     Options ExecCGI
     Allow from 192.168.0.0/255.255.255.0
     AuthUserFile /usr/local/nagios/etc/.htpasswd
     AuthName "Please Enter your name and password"
     AuthType Basic
     Require valid-user
</Directory>


Alias /nagios/ "/usr/local/nagios/share/" <Directory "/usr/local/nagios/share/"> AllowOverride AuthConfig Options None Order allow,deny Allow from 192.168.0.0/255.255.255.0 AuthUserFile /usr/local/nagios/etc/.htpasswd AuthName "Please Enter your name and password" AuthType Basic Require valid-user </Directory>

ベーシック認証用にパスワードを発行する。

# htpasswd -c /usr/local/nagios/etc/.htpasswd nagiosadmin

あとはApacheを再起動して、Nagiosを起動する。

# /etc/init.d/httpd graceful
# /etc/init.d/nagios start

これでNagiosにWebアクセスできるようになるはず。が、しかし。ハマってしまった。ベーシック認証が通らない。正しいパスワードのはずなのに、認められない。また俺は「のけもの」か、知らない人扱いか、「この前まで優しくしてくれたじゃない!どうしたっていうの?あの日のように私を受け止めてよ!」って念じたのに、403エラー。無表情で、機械的に、403エラー。切ない。

いろいろ探った結果、.htpasswd ファイルのパーミッションに問題があった。nagiosユーザが読めれば大丈夫だと勘違いしていたのが原因。Apacheの実行ユーザ(nobody)に権限ないとダメだよね。機械ってホント正直。融通きかねえなあ。

というわけで、権限まわり変更。

# chown nobody:nobody /usr/local/nagios/etc/.htpasswd
# chmod 600 /usr/local/nagios/etc/.htpasswd

これで無事Webでアクセスできるようになった。素敵。英語だらけだし、デザインださくて目に痛いし、インターフェイス悪いし、よくわからんことばっかだけど、できる子だと信じて育ててあげましょう。しっかり運用すれば、今後のミニ・プロジェクトに幸あらん!

お疲れさまでした。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/221