0

次のような Icinga2 で定義された CheckCommand があります。

object CheckCommand "foo" {
    import "plugin-check-command"
    command = [ "/opt/my_plugins/check_foo" ]

    arguments = {
        "-a" = {
            value = "$foo_a$"
            description = "Parameter A"
        }
        "-b" = {
            value = "$foo_b$"
            description = "Parameter B"
        }

    vars.foo_a = "$a$"
    vars.foo_b = "$b$"
}

コマンドには a、b、またはその両方が必要ですが、これらのパラメーターの少なくとも 1 つを取得しないと実行できません。この要件を Icinga2 コマンド定義で表現したいのですが、可能ですか?

4

1 に答える 1

0

注: これは、NRPE リモート プラグインの実行に適用されます。

カスタムプラグインでも同じ問題が発生しました。

通常、Icinga は次のようなコマンドを実行します。

'/usr/local/nagios/libexec/check_nrpe' '-p' '56666' '-H' '10.104.16.214' \
'-a' '80' '90' '-c' 'nrpe_check_network_interface' 

これにより問題が発生し、プラグインが無効な引数のように受け取るこのパラメーターの解析中に発生します。おそらく、bashまたは問題を引き起こす可能性のある次の引数に移動するためにshell使用します。shift

Icinga2 は、注文などの Checkcommand でいくつかのオプションを提供します。

object CheckCommand "foo" {
    import "plugin-check-command"
    command = [ "/opt/my_plugins/check_foo" ]

    arguments = {
// If you need you can give this also
        "-H" = {
           value="$host$"
           order=0
        }
        "-a" = {
            value = "$foo_a$"
            description = "Parameter A"
            order = 1
        }
        "-b" = {
            value = "$foo_b$"
            description = "Parameter B"
            order = 2
        }

//No need to give vars here since it will come from service trigger part as macro.
}

わからない、これを試してみてください!これは役立つかもしれません。

于 2016-08-31T14:40:47.997 に答える