如果 Nagios 脚本采用关键字而不是位置参数,您将如何为其设置 Nagios?

如果 Nagios 脚本采用关键字而不是位置参数,您将如何为其设置 Nagios?

# 从命令行运行此操作(注意“-a”的参数):

 ./check_nrpe -p 12490 -H 10.246.107.167 -t 120 -c simple_add2 -a 4  56

## 因为 NSC.INI 有这个:

simple_add2=perl scripts\simple_add2.plx -m $ARG1$ -n $ARG2$

# 但是“-n”参数是可选的,所以我希望能够以任何方式调用 simple_add2:

像这样:

./check_nrpe -p 12490 -H 10.246.107.167 -t 120 -c simple_add2 -a -m 4  -n 56

或者像这样:

 ./check_nrpe -p 12490 -H 10.246.107.167 -t 120 -c simple_add2 -a -m 4 

# 这是我当前的命令和服务:

我不想仅仅因为我想使用或不使用 -n 参数来调用同一个命令而为它创建两个不同的命令和两个不同的外部脚本列表... 想象一下,如果我编写了一个带有多个可选关键字参数的脚本。命令和外部脚本的数量将呈组合式激增。

define command {
       command_name  add_numbers_service
       command_line  $USER1$/check_nrpe -p 12490 -H $HOSTADDRESS$ -u -t 90 -c \
simple_add_pln -a $ARG1$ $ARG2$
}

define service {
  host_name             awswinserver
  service_description   simple-addition-test
  check_command         add_numbers_service!4!5

 use                   generic-service
}

答案1

我之所以提到这一点,是因为我一直没有意识到这一点;$ARG1$ 中可以包含很多东西。你考虑过吗:

simple_add2=perl scripts\simple_add2.plx -m $ARG1$

define command {
       command_name  add_numbers_service
       command_line  $USER1$/check_nrpe -p 12490 -H $HOSTADDRESS$ -u -t 90 -c \
simple_add_pln -a $ARG1$
}

define service {
  host_name             awswinserver
  service_description   simple-addition-test-1
  check_command         add_numbers_service!4
  use                   generic-service
}


define service {
  host_name             awswinserver
  service_description   simple-addition-test-2
  check_command         add_numbers_service!4 -n 56
  use                   generic-service
}

相关内容