web-dev-qa-db-ja.com

RHEL 6(EPELパッケージ)のNagiosは更新後に動作を停止しました

RedHat Enterprise Linux 6上のNagiosのEPELパッケージは、数週間前にバージョン3.4からバージョン4.3に更新されました。更新は単純なyum updateコマンドによって行われ、メジャーバージョンの変更を示すものは何もありません。

更新後、Nagiosは正常に機能しているように見えましたが(すべてのサービスがWebインターフェイスに正しく表示されています)、実際にはあまり機能していません。サービスチェックは実行されず、メールも送信されません。 /var/log/messagesには、数十のエラーメッセージが表示されます。

Jan 26 15:58:55 srv1 nagios: Unable to send check for Host 'srv3' to worker (ret=-2)
Jan 26 15:58:58 srv1 nagios: Unable to run check for service 'Total Processes' on Host 'srv4'
Jan 26 15:59:05 srv1 nagios: Unable to run check for service 'Lab Home Partition' on Host 'srv1'

さらに、nagiosを再起動しようとすると、更新前には存在しなかったエラーNo usable PID found in /var/run/nagios/nagios.pidが発生します。問題のこの部分には、ここで解決策があるようです: Nagiosは開始しません、今は停止しません!

更新によって/etc/nagios/nagios.cfg.rpmnewファイルが作成されたことに気付いた後、3.5.1RPMの元の構成ファイルでdiffを実行して違いを確認し、それに応じて実際の構成ファイルを変更しました。変更は主に、実行時に使用されるいくつかのファイルの位置に関するものです(新しいバージョンの値は次のとおりです)。

object_cache_file=/var/spool/nagios/objects.cache
precached_object_file=/var/spool/nagios/objects.precache
lock_file=/var/run/nagios/nagios.pid
temp_file=/var/spool/nagios/nagios.tmp
check_result_path=/var/spool/nagios/checkresults

これにより、上記の停止/再起動の問題は解決されますが、Webインターフェイスが壊れ、Error: Could not read object configuration data!が表示されるようになります。そして、サービスチェックはまだ実行されません。

エラーメッセージも/var/log/audit/audit.logに表示され、問題がおそらくSELinuxに関連していることを示します(システムは強制モードで実行されています)。

type=AVC msg=audit(1516991640.421:263116): avc:  denied  { getattr } for  pid=29_exec_t:s0 tclass=file
type=SYSCALL msg=audit(1516991640.421:263116): Arch=c000003e syscall=4 success=n fsgid=494 tty=(none) ses=4000 comm="check_procs" exe="/usr/lib64/nagios/plugins

実際、SELinuxを一時的にパーミッシブモードに設定すると、問題は完全に解決されます。ただし、これは解決策ではありません。 SELinuxを強制モードに保ちながらSELinux設定を適切に更新するにはどうすればよいですか?

1
Ale

必要なSELinuxプロファイルは、EPELでも利用可能なnagios-selinuxパッケージで利用できます。残念ながら、アップデートはNagios3.5.1からNagios4.3.4への切り替え中に自動的にインストールされないため、手動で追加する必要があります。

yum install nagios-selinux

もちろん、Nagiosが正しく機能するには、構成ファイルへの変更(.rpmnew構成ファイルからの新しいパスのインポート)も必要です。

2
Ale