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