前回まで、nagiosをyumリポジトリでインストールしたが、日本語化が上手くできない。
画面左のメニューを日本語化するのであれば、適当にファイルを日本語に修正すれば出来るのだが・・・・やはり違和感が残る。
取り敢えずやってみよう!?ということで日本語化を行ってみる。
ついでに、せっかくソースからインストールするのであれば、最新版(2015-12-02現在 4.1.1)をインストールすることにした。
# groupadd nagios
# useradd -d /usr/local/nagios -g nagios -m nagios
# chmod 755 /usr/local/nagios
# groupadd nagcmd
# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd apache
# cd /home
# mkdir nagios
# cd nagios
普通は入れていると思うのですが、PHPが入っていないとまずいです。
ということで、以下のコマンドでPHPがインストールされているか確認します。
# yum list installed | grep php
何も表示されない場合は、インストールされていません。
以下のコマンドでインストールしてください。
# yum install php
それ以外にも必要なパッケージが入っているか確認してインストールを開始します。
参考までにインストールしたパッケージのやり方を記載しておきます。
# yum install perl-CGI gd-devel
環境によって異なることにご留意下さい。
では、nagios本体をダウンロードします。
最新版は適宜ネットで確認して下さい。
OSSとして提供してくださっている方に感謝をしながらダウンロードしましょう!
# cd /home/nagios
# curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz
(全部1行で記述)
展開する。
# tar zxvf naios-4.1.1.tar.gz
展開されたら、パッチをダウンロードしてパッチを充てる!
# cd nagios-4.1.1
日本語化パッチを提供してくれている方に感謝しながら・・・日本語化パッチを入手しましょう!
# wget --no-check-certificate https://dev.momo-i.org/attachments/download/5/nagios-jp-4.1.1.patch.gz
(対象ファイルは、https://dev.momo-i.org/projects/nagios/filesで確認 バージョン番号は合わせること)
こんな感じで必要なものを準備する。
とにかくソースを解凍して、パッチ充ててと作業を進める。
# gzip -dc nagios-jp-4.1.1.patch.gz |patch -p1
# ./configure --with-command-group=nagcmd
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf
# make install-exfoliation
# make install-classicui
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
ここで最後に実施したhtpasswdコマンドは、nagiosのウェブ画面へログインする際のIDとパスワードになります。
CGIの動作にも影響するみたいな気がする。
yumでインストールする場合とパスワードの設定が変わっているので注意です。
次にnagiosとapacheのグループを関連付けます。
usermod -G nagios apache
時折、nagiosCGIへのアクセスが拒否されることがあるようです。
サービスを起動する前に、以下のコマンドを発行すると復旧するのですが、下記のコマンドは一時的な対策を行っているだけのものなので、あまり宜しい対策とは言えないと思います。
出来れば、リブートして確認するなどしてみると良いと思います。
それでもダメな時は以下のコマンドを実行してみてください。
chcon -R -t httpd_sys_content_t /usr/local/nagios
# service nagios startサービスを起動する。nagiosとhttpdの両方ともやってみた。
# service httpd restart
で、ブラウザで開いてみる。
https://xxxxxx/nagios
開くと、IDとパスワードを聞かれるので、設定したIDとパスワードでログインする。
取り敢えず、なんとなく開くはず。
次に、nagiosプラグインをインストールする。
またしてもダウンロード
https://www.nagios-plugins.org/download/から最新のnagios-plugins-2.1.1.tar.gzをダウンロードする。
# cd /home/nagios
# wget https://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
# tar zxvf nagios-plugins-2.1.1.tar.gz
# cd nagios-plugins-2.1.1
# ./configure
# make
# make install
※INSTALLファイルを読むと書いてあります。
こんな感じで完成….だと思っていました。
ここでトラブル発生です。
selinux がenforce状態(有効)になっている状態では、nagiosのプラグインが正常に動作してくれない場合があります。
例えば、CRITICALな障害を発生させて、通知を行ったときに以下のエラーが発生します。(日本語化しているので日本語メッセージです。)

まずは、簡単な対策としては、SELinuxをPermissiveモードに切り替えて運用する方法です。
SELinuxの稼働状況を確認します。
# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive
getenforceコマンドで現在の状態を確認します。
Enforcing:有効な状態(許可されていないコマンドは実行が出来ません。
Permissive:無許可なコマンドの実行時には、ログを記録して実行を行います。なので、実質的には無効な状態と同じでしょう。
Disable:無効な状態(ログも残しません)
setenforce 0とすることで、Permissiveモードに設定しています。setenforce 1とすると、Enforcingモードになります。
この状態でnagiosは正常に動作するはずです。
さて、ここまででnagios自体の設定に問題が無いことが確認出来るかと思いますが、SELinuxが無効になっている状態なので、セキュリティ的には宜しくないのでは?ということになります。
そこで、セキュアな状態を維持するために、SELinuxをEnforcingモードにしても動作する様にすることが必要となります。
このままでもいいや!と言う方は、ここまででインストール作業は完了です。
いやいや、セキュアな環境を維持したいんだ!!と言う方は、今後の投稿に期待してください。
SELinuxを有効にしても動作させる方法を新しい投稿に記載しました。