У меня есть сервер-бастион, который имеет доступ к 50 машинам, работающим под управлением различных систем Linux. У меня также есть отдельный сервер Nagios, который имеет доступ к ящику-бастиону. Возможно ли контролировать 50 машин через туннель ssh следующим образом:
Nagios box - [ssh tunnel] -> bastion box - [ssh tunnels 1....50] - Linux-машины
Другого прямого подключения к 50 хостам от Nagios-бокса нет.
решение1
Несколько check_commands вызываются с аргументом $HOSTADRESS в checkcommands.cfg
«стандартной» конфигурации, например:
/usr/lib/nagios/plugins/check_ping -H 10.1.1.2 -w 100.0,20% -c 500.0,60% -p 5
/usr/lib/nagios/plugins/check_nrpe -H 10.1.1.3 -c checkMEM -a ShowAll type=physical type=page type=virtual MaxWarn=90% MaxCrit=95%
Итак, сам файл:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Либо вы определяете здесь что-то вроде (не проверял):
define command{
command_name check_nrpe
command_line ssh $HOSTADDRESS$ "$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$"
}
Или вы пишете (очень) уродливый хак, создавая оболочку для пары команд, находящихся в /usr/lib/nagios/plugins/´, namely
/usr/lib/nagios/check_nrpe`, а затем делаете диверсии в Debian.
Вероятно, вам понадобятся и другие изменения; если вы используете nrpe поверх ssh или чего-то подобного, вам не понадобится SSL.