Назад | Перейти на главную страницу

Должен ли я жестко закодировать значение, например, $ 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.

Вопрос

Стоит ли заменить / hardcode $NAMESERVERHOSTADDRESS$ в определении команды со значением, которое я хочу?

Или значение $NAMESERVERHOSTADDRESS$ быть определенным в определении услуги? И если да, то как?

У меня на сервере нет такого определения. Вы можете изменить определение, чтобы использовать $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 с фактическими значениями.