Я только что развернул Nagios на сервере Gentoo, и все в порядке, кроме ssh, который он помечает как «КРИТИЧЕСКИЙ», потому что он отказывает в соединениях. Но это потому, что он работает на порту, отличном от порта по умолчанию 22. Как мне изменить его, чтобы он контролировал правильный порт?
В конфигурации подключения ssh /etc/nagios-plugins/config/ssh.cfg есть псевдоним с именем check_ssh_port. если он не существует, вы можете определить его, как указано выше:
$ cat >> /etc/nagios-plugins/config/ssh.cfg
define command{
command_name check_ssh_port
command_line /usr/lib/nagios/plugins/check_ssh -p '$ARG1$' '$HOSTADDRESS$'
}
в служебном файле /etc/nagios3/conf.d/services_nagios2.cfg определите службу ssh для мониторинга следующим образом:
define service {
hostgroup_name ssh2-servers
service_description SSH2
check_command check_ssh_port!12000!server
use generic-service
notification_interval 240 ; set > 0 if you want to be renotified
}
replace 12000 by you default ssh port and server by your target.Поскольку ни одно из вышеперечисленных решений у меня не помогло, я опубликую этот небольшой вариант.
Это определение используется по умолчанию (например: localhost.cfg
) с единственным добавлением опции -p и пробела между ними.
Я предполагаю, что это гибридная версия двух представленных решений.
Работает на Nagios Core 4 с nagios-plugins 2.1.1.
define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh!-p 12345
notifications_enabled 1
}
host:~$ /usr/lib/nagios/plugins/check_ssh --help
check_ssh v1991 (nagios-plugins 1.4.12)
Copyright (c) 1999 Remi Paulmier <remi@sinfomic.fr>
Copyright (c) 2000-2007 Nagios Plugin Development Team
<nagiosplug-devel@lists.sourceforge.net>
Try to connect to an SSH server at specified server and port
Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>
Отвечает ли это на ваш вопрос? Параметр -p позволяет указать порт, выполнить индивидуальную проверку в /etc/nagios/nrpe.cfg и поместить туда:
command[check_remote_ssh]= /usr/lib/nagios/plugins/check_ssh -p 1234 some.host
Вы также можете определить второй параметр, «server», в параметре host_name следующим образом:
define host{
use generic-host ; Name of host template to use
host_name host
alias host
address 92.193.170.124
}
# Define a service to check if ssh services are running
define service {
use generic-service ; Name of service template to use
host_name host
service_description SSH Port 4959
check_command check_ssh_port!4959
notification_interval 0 ; set > 0 if you want to be renotified
}
Таким образом, если адрес хоста изменяется, вам нужно изменить этот параметр только один раз для всех служб, определенных для этого хоста.
define service{
use generic-service
host_name localhost
service_description SSH
check_command check_ssh!-p 9898
}
работает правильно, вы можете попробовать.