Need help?

Our experts have had an average response time of 12.14 minutes in September 2021 to fix urgent issues.

We will keep your servers stable, secure, and fast at all times for one fixed price.

Nagios – Monitor hosts using SSH: How to use the plugin

by | May 9, 2021

Don’t know how Nagios monitor hosts using SSH? We can help you.

Nagios XI can monitor metrics and services on remote machines with the help of the SSH proxy plugin, check_by_ssh.

As part of our Server Management Services, we assist our customers with several Nagios queries.

Today, let us see how to monitor hosts with Nagios XI by using SSH.


Nagios – Monitor hosts using SSH

In order to begin, our Support Techs suggests configuring SSH keys for the Nagios user on the Nagios XI server:

# su nagios
# ssh-keygen

When we receive a prompt for a filename and passphrase, we press ENTER.

The public and private SSH keys will generate and save in the following directory:


Before we use the check_by_ssh plugin, we must install/configure the following on the remote Linux/Unix server we want to monitor:

  • Create a Nagios user

$ useradd nagios
$ passwd nagios
  • Install Nagios plugins and/or monitoring scripts

We install the following packages to resolve all dependencies required for installing the plugins:

$ yum install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel

Then we download the Nagios plugins to the system:

$ wget

Eventually, we will extract the plugins from the downloaded tar archive.

$ tar -xvf nagios-plugins-2.2.1.tar.gz
$ cd nagios-plugins-2.2.1

Then we will compile and install the plugins.

$ ./configure –with-nagios-user=nagios
$ make
$ make install

After the installation of the plugin completes, we change the ownership of the plugins folders.

$ chown nagios.nagios /usr/local/nagios
$ chown -R nagios.nagios /usr/local/nagios/libexec
  • Install and configure the SSH daemon

Generally, SSH is installed on almost all Linux distributions.

For check_by_ssh to work, we must copy the public key file of the Nagios user on the Nagios XI server to the authorized_keys file for the Nagios user on the remote Linux/Unix server.

# ssh-copy-id -i ~/.ssh/ [email protected]

Here, the remoteip is the IP address of the Linux/Unix server we connect to.

Then we have to add the host to the list of new hosts. We need to type yes to proceed and type the password for the Nagios user.

Ensure that:

  • If we specify an IP address, we need to use that IP address in the wizard (not a DNS record).
  • If we specify a DNS record, we need to use that DNS record in the wizard (not an IP address).

The permissions must be such that the file cannot be read or written to by anyone other than the Nagios user.

[[email protected] .ssh]$ ls -al
total 24
drwx—— 2 nagios users 4096 May 03 09:44 .
drwx—— 3 nagios users 4096 May 03 16 09:43 ..
-rw——- 1 nagios users 410 May 03 09:44 authorized_keys
-rw——- 1 nagios users 1675 May 03 09:43 id_rsa
-rw-r–r– 1 nagios users 410 May 03 09:43

The ssh-copy-id command will correctly set these permissions. However, ff we copied the using another method, then we ensure the file permissions are correct.

If the destination host is a Solaris machine, on the Solaris server, as the Nagios user, we execute:

# mkdir -p /export/home/nagios/.ssh
# chmod 0700 /export/home/nagios/.ssh/

On the Nagios XI server, instead of the ssh-copy-id command, we use:

# cat ~/.ssh/ | ssh [email protected] ‘umask 077; cat >>/export/home/nagios/.ssh/authorized_keys’

Test Passwordless Login

To confirm that we can log in to the remote server without supplying a password, we run:

# ssh [email protected]

If the SSH keys are configured properly, we will be able to log in to the remote machine without credentials. To close the ssh session, we can type exit.

In addition, to test the check_by_ssh plugin, we run:

# /usr/local/nagios/libexec/check_by_ssh -H remoteip -C uptime

With a proper setup, we should get output from the “uptime” command on the remote server that looks similar to this:

12:01:42 up 35 min, 1 user, load average: 0.00, 0.01, 0.05

This output means that passwordless authentication is working.

Configuring check_by_ssh on server

Our final step to set up Nagios monitoring using SSH will be this. We have to define the command’s definition to use check_by_ssh for connecting to clients.

To do this, we edit ‘commands.cfg’ which is in ‘/usr/local/nagios/etc’ folder.

Initially, we open the file:

$ vim /usr/local/nagios/etc/commands.cfg

Then we add the following commands to the file:

define command{
command_name check_remote_disk
command_line $USER1$/check_by_ssh -p $ARG1$ \
-H $HOSTADDRESS$ -C ‘/usr/lib/nagios/plugins/check_disk \
-w $ARG2$ -c $ARG3$ -p $ARG4$’

define command{
command_name check_remote_users
command_line $USER1$/check_by_ssh -p $ARG1$ \
-H $HOSTADDRESS$ -C ‘/usr/lib/nagios/plugins/check_users \
-w $ARG2$ -c $ARG3$’

define command{
command_name check_remote_load
command_line $USER1$/check_by_ssh -p $ARG1$ \
-H $HOSTADDRESS$ -C ‘/usr/lib/nagios/plugins/check_load \
-w $ARG2$ -c $ARG3$’

define command{
command_name check_remote_procs
command_line $USER1$/check_by_ssh -p $ARG1$
-H $HOSTADDRESS$ -C ‘/usr/lib/nagios/plugins/check_procs \
-w $ARG2$ -c $ARG3$ -s $ARG4$’

define command{
command_name check_remote_swap
command_line $USER1$/check_by_ssh -p $ARG1$ \
-H $HOSTADDRESS$ -C ‘/usr/lib/nagios/plugins/check_swap \
-w $ARG2$ -c $ARG3$’

Eventually, we save the changes and close the file.

Finally, to implement the changes, we restart the Nagios server:

$ service nagios restart

Now on the Nagios monitoring page, we will have the client information.

How to use The SSH Wizard

To use the SSH Proxy wizard, we navigate via the top menu bar to Configure > Run a configuring wizard and select the SSH Proxy wizard.

Step 1: We have to provide the address of the server we will monitor via SSH. In addition, we have to select the Operating System. Then click Next.

Step 2: We configure all the options for monitoring. To begin, we ensure to provide a valid Host Name.

The SSH Commands section allows us to specify the commands to execute and monitor. We can also specify the display name to associate with each command.

Once done, click Next and then complete the wizard by choosing the required options.

Step 3: Finally, click on Finish. This will create the new hosts and services and begin monitoring.

Once the wizard applies the configuration, we can click the View status details for the <ssh host> link to see the new host and services.

[Need help with the monitoring? We’d be happy to assist]



In short, we saw an effective method our Support Techs use to monitor Nagios using SSH.


Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.


var google_conversion_label = "owonCMyG5nEQ0aD71QM";


Submit a Comment

Your email address will not be published. Required fields are marked *

Privacy Preference Center


Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]


Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid


Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie


These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.