我是否应该对例如$NAMESERVERHOSTADDRESS$ 的值进行硬编码?

我是否应该对例如$NAMESERVERHOSTADDRESS$ 的值进行硬编码?

我想使用 Nagios 插件check_dns,所以当我查看它的命令定义时

define command {
  command_name    check_dns
  command_line    $USER1$/check_dns -H $HOSTADDRESS$ -s $NAMESERVERHOSTADDRESS$ -a $EXPECTEDIPADDRESS$
}

我认为这$NAMESERVERHOSTADDRESS$不是一个标准宏,所以我不确定应该放什么command_line以及在服务定义中应该放什么。

define service {
  use                     generic-service
  name                    check_dns
  host_name               ns.example.com
  service_description     Checks DNS
  check_command           check_dns
  contact_groups          linux-admins
}

目的是让 Nagios 监控主机请求ns.example.com查找test.example.com是否解析为预期的 IP。

问题

我是否应该用我想要的值替换/硬编码$NAMESERVERHOSTADDRESS$命令定义?

$NAMESERVERHOSTADDRESS$或者应该在服务定义中定义的值?如果是,该如何定义?

答案1

我的服务器中没有这样的定义。你可以更改定义以使用$ARGn$如下方式:

define command {
  command_name    check_dns
  command_line    $USER1$/check_dns -H $HOSTADDRESS$ -s $ARG1$ -a $ARG2$
}

然后,您可以像这样使用服务定义:

define service {
  use                     generic-service
  name                    check_dns
  host_name               ns.example.com
  service_description     Checks DNS
  check_command           check_dns!name_server!expected_address
  contact_groups          linux-admins
}

您需要用实际值替换name_server和。expected_address

相关内容