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?

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

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
  • 1
    It worked! In my case it was the local check_ssh in /etc/nagios/objects/commands.cfg. Thanks for your help :) – Helder S Ribeiro Oct 11 '09 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.

  • +1 well written for the latest version of nagios (at this time) – cwd Dec 11 '11 at 19:24

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. – ILMostro_7 Nov 2 '16 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

# 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.