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 разных сервисов и передачи пароля в качестве аргумента на этом этапе?

1 ответ

Решение

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

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
    }

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

Другие вопросы по тегам