У меня есть сервер, который используется в качестве посредника для множества обратных туннелей ssh. Я хочу использовать nagios на этом сервере, чтобы следить за тем, чтобы все эти туннели ssh работали.
По сути, я хочу сделать эквивалент nagios:
ssh -p 12344 localhost
ssh -p 12415 localhost
ssh -p 12544 localhost
У меня есть следующие определения:
define host{
use generic-host
host_name paniqui
address localhost
_PORT 12345
}
define hostgroup {
hostgroup_name chits-servers
alias CHITS servers
members paniqui
}
define service {
hostgroup_name chits-servers
service_description SSHTUNNEL
check_command check_ssh!-p $_HOSTPORT$ $HOSTADDRESS$
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
Но когда я проверяю службу в веб-интерфейсе Nagios, я вижу:
Status Information: UNKNOWN (for 0d 2h 7m 50s)
Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>
Какие-либо предложения?
Параметры команды должны быть настроены в определении команды. Что-то вроде:
define command {
command_name check_tunneled_ssh
command_line /usr/lib/nagios/plugins/check_ssh -p $ARG1$ $HOSTADDRESS$
}
Тогда вы бы использовали
check_command check_tunneled_ssh!12344
к вашим услугам.
Вот мой файл nagios / etc / objects / commands.cfg, который я считаю стандартным.
# 'check_ssh' command definition
define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
Это означает, что я думаю, вы ошиблись, указав $ HOSTADDRESS $ в своей команде проверки. Вместо этого попробуйте это в определении вашей службы:
check_command check_ssh!-p 12345
Еще один комментарий, не связанный с вашим «настоящим» вопросом ... Я бы не стал делать отдельное определение хоста для всех удаленных серверов, я бы просто создал новую службу на «хосте» localhost (видимо, это то, что обеспечивает service) для каждого туннеля.