I just deployed Nagios on a Gentoo server and everything is fine except ssh, which it marks as "CRITICAL" because it's refusing connections. But that's because it's running on a port different from the default 22. How do I change it so that it monitors the right port?
5 Answers
host:~$ /usr/lib/nagios/plugins/check_ssh --help
check_ssh v1991 (nagios-plugins 1.4.12)
Copyright (c) 1999 Remi Paulmier <[email protected]>
Copyright (c) 2000-2007 Nagios Plugin Development Team
<[email protected]>
Try to connect to an SSH server at specified server and port
Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>
does this answer your question? -p parameter lets you specify the port, make custom check in /etc/nagios/nrpe.cfg and put there:
command[check_remote_ssh]= /usr/lib/nagios/plugins/check_ssh -p 1234 some.host
-
1It worked! In my case it was the local
check_ssh
in/etc/nagios/objects/commands.cfg
. Thanks for your help :) Oct 11, 2009 at 20:45
In ssh pluging config /etc/nagios-plugins/config/ssh.cfg, there an alias named check_ssh_port. if it not existe you may define it like above:
$ 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$'
}
in the service file /etc/nagios3/conf.d/services_nagios2.cfg, define you ssh service to monitor like this:
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.
As none of the solutions above worked for me, I'll post this small variation.
This definition is the default one (e.g.: localhost.cfg
) with the only addition of the -p option and the space in between.
I guess it's a hybrid version of two of the solutions given.
It works on Nagios Core 4 with 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
}
-
It can also be changed/configured in Nagios4 web interface: System --> Configuration, then appending the exclamation mark and commandline options
check_ssh!-p 123456
, for example. Nov 2, 2016 at 9:56
You can also define the second parameter, "server", in the host_name parameter this way:
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
}
So, if the address of the host changes, you only have to modify this parameter once, for all services defined for this host.
define service{
use generic-service
host_name localhost
service_description SSH
check_command check_ssh!-p 9898
}
working properly you can try it.