web-dev-qa-db-ja.com

rootとしてNRPEを使用してプラグインを実行している:NRPEが出力を読み取れない

NagiosとNRPEに問題があり、解決できません。

私はすでに試しました。

# grep "nrpe_user=" /etc/nagios/nrpe.cfg
nrpe_user=nrpe

NRPEはユーザーnrpeとして実行されています。だから私はこの行をvisudoに追加しました:

Defaults:nrpe !requiretty
nrpe ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/check_jboss_files

Nagios nrpe.cfgを編集しました:

command[check_jboss_files]=Sudo /usr/lib64/nagios/plugins/check_jboss_files

しかし、Nagiosサーバーからコマンドを実行しようとすると、次のようになります。

# /usr/lib64/nagios/plugins/check_nrpe -H 1.2.3.4 -c check_jboss_files
NRPE: Unable to read output

ユーザーnrpeとして実行している場合でも、ローカルで起動すると、スクリプトは期待どおりに実行されていました。

# Sudo sudo -s -u nrpe
bash-4.2$ Sudo /usr/lib64/nagios/plugins/check_jboss_files
JBOSS Files: 2049
WARNING - JBOSS Files: 2049

Sudoがない場合、スクリプトはnagiosサーバーで機能しますが、良好な結果を得るにはSudoと連携する必要があります。私が逃したものは?私はおそらくすべてを試しました、そして私はどんな助けにも感謝するでしょう。

1
Typerek

最近、非常によく似た状況に直面しました。解決策は、Sudoアクセスを許可するようにselinuxを構成することでした。

this の記事をフォローすると、何をすべきかがわかります。

私にとって、これはCentOS7.4で機能しました。

  1. yum install -y setroubleshoot-server
  2. 監査ログで違反を検索します
  3. Audit2whyを使用する
  4. その提案に従ってください

私の違反:

$ grep -m 1 type=AVC.*Sudo /var/log/audit/audit.log | audit2why
type=AVC msg=audit(1525359549.889:211763): avc:  denied  { getattr } for  pid=127488 comm="check_d" path="/usr/bin/Sudo" dev="dm-0" ino=67120340 scontext=system_u:system_r:nrpe_t:s0 tcontext=system_u:object_r:Sudo_exec_t:s0 tclass=file
Was caused by:
The boolean nagios_run_Sudo was set incorrectly.
Description:
Allow nagios to run Sudo

Allow access by executing:
# setsebool -P nagios_run_Sudo 1

提案されたコマンドを実行すると、問題が解決しました。

1
János Roden