1

NagiosにカスタムJavaコマンドを実行させようとしていますが、常にエラー126が発生します。

[1360324906] Warning: Return code of 126 for check of service 'Java Process Test' on host 'localhost' was out of bounds.Make sure the plugin you're trying to run is executable.

今、私はいくつかのことをチェックしましたが、私はここの初心者なので、おそらく何かを逃しました。ここに環境に関するいくつかの情報があります:

-rwxr-xr-x. 1 root root     2938 Aug 17 15:39 check_wave
drwxr-xr-x. 2 root root     4096 Jan 13 15:08 eventhandlers
drwxr-xr-x. 2 root root     4096 Feb  7 17:22 jars
-rwxr-xr-x. 1 root root    38696 Aug 17 15:39 negate
-rwxr-xr-x. 1 root root      886 Feb  8 12:47 test_java_plugin.sh

test_java_plugin.shは私のテストスクリプトであり、「jars」はjarが配置されている現在のディレクトリです。

スクリプトは次のとおりです。

#!/bin/bash

#This will get the output of process
output=$(/usr/java/latest/bin/java -cp .:/usr/lib64/nagios/plugins/jars/SimpleNagiosPlugin.jar it.nagios.SimpleTest)
#This will catch the result returned by last process that is our java command
java_result=$?
echo "$java_result: $output"
exit $java_result

コンソールで手動で起動すると完全に機能します

[root@bw plugins]# ./test_java_plugin.sh 
0: This is an OK message

コマンド定義を追加するのを忘れました:

# 'test_java_plugin' command definition
define command{
        command_name   test_java_plugin
        command_line   $USER1$/test_java_plugin.sh
        }

また、コメントへのリクエストに従って、テストクラスの現在のJavaコードも追加しています

public static void main(String[] args) {
    System.out.println("This is an OK message");
    System.exit(0);
}

シェルからコマンドを起動するだけで、まだ0になります。

[root@bw plugins]# /usr/java/latest/bin/java -cp .:/usr/lib64/nagios/plugins/jars/SimpleNagiosPlugin.jar it.nagios.SimpleTest
This is an OK message
[root@bw plugins]# echo $?
0

ここで何が問題になっているのかを判断するには、他に何を確認する必要がありますか?

4

3 に答える 3

3

同様の問題に直面し、SELinux が私をブロックしていることがわかりました。同じことが /var/log/audit/audit.log で確認できます

nagios_t/nagios_system_plugin_t で拒否されたエラーが発生した場合は、完全にオフにするのではなく、以下のコマンドを使用して selinux の許容リストに追加してください。

semanage permissive -a nagios_t
于 2016-05-11T05:45:45.007 に答える
1

nagios ユーザーとして test_java_plugin.sh を実行してみてください。nagios にシェル (一時) を与えることができます。root 環境は nagios 環境とは異なることを考慮してください。test_java_plugin.sh を nagios として実行する場合、「env > env_log_file」を追加して、実行時の環境を確認できます。

幸運を。

于 2013-02-10T19:38:04.880 に答える
1

エラー 126 プラグインは見つかったが、実行可能ではないことを意味します。

2つのことを試すことができます。nagios ユーザーとしてプラグインを実行してみて、エラーを確認してください。

また

これは、私が抱えていた1つの問題でうまくいきました。やってみて。うまくいけば、うまくいくかもしれません

    /bin.bash -l -c "/#{path to plugin}/test_java_plugin.sh"
于 2013-11-22T16:39:49.083 に答える