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

Nagios / Icinga: разные пароли для каждого хоста NSClient ++

Можно ли передать другой пароль команде check_nt / check_nrpe для каждого хоста Windows, который я определил в своих конфигурациях icinga? Например, у меня 3 хоста windows

define host {
    use            windows-server
    host_name      prod
    address        10.0.0.1
}
define host {
    use            windows-server
    host_name      db
    address        10.0.0.2
}
define host {
    use            windows-server
    host_name      test
    address        10.0.0.3
}

и настроил сервис:

define service{
    use                     generic-service
    host_name               prod,db,test
    service_description     Uptime
    check_command           check_nt!UPTIME
    normal_check_interval   180
    }

который вызывает

define command {
    command_name    check_nt
    command_line    /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p 12489 -v '$ARG1$'
}

Все это отлично работает, но я хочу иметь возможность устанавливать разные пароли для каждого хоста (которые нельзя просмотреть через веб-интерфейс). Я знаю, что макросы USERn не отображаются в веб-интерфейсе, но я не знаю, как их здесь использовать. Есть ли простой способ сделать это без создания 3 разных служб и передачи пароля в качестве аргумента на этом этапе?

Да, просто перепишите определение команды:

define command {
    command_name    check_nt_pwd
    command_line    /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p 12489 -s '$ARG1$' -v '$ARG2$'
}

Затем вы можете использовать три определения службы, например:

define service{
    use                     generic-service
    host_name               prod
    service_description     Uptime
    check_command           check_nt!PWD1!UPTIME
    normal_check_interval   180
    }
define service{
    use                     generic-service
    host_name               db
    service_description     Uptime
    check_command           check_nt!PWD2!UPTIME
    normal_check_interval   180
    }

Или, если у вас есть современный Nagios, задайте переменные хоста (_password) и используйте макрос ($ _HOSTPASSWORD $), например:

define host {
    use            windows-server
    host_name      prod
    address        10.0.0.1
    _password      PWD1
}
define service{
    use                     generic-service
    host_name               prod,db,test
    service_description     Uptime
    check_command           check_nt!$_HOSTPASSWORD$!UPTIME
    normal_check_interval   180
    }

Или, если вы хотите добавить макрос непосредственно в определение команды аналогичным образом.