Check by SSH¶
SSH provides an easy and secure way to run monitoring plugins on a remote host.
Creating an SSH key on the openITCOCKPIT server¶
If you don't already have an SSH key for the user nagios ,you will need to create one.
su nagios
mkdir /var/lib/nagios/.ssh
ssh-keygen
After this process completes you should import the SSH host key into your target system: ssh <target-host> and confirm this choice with yes.
Import the SSH key into the target system¶
For this example you need the packages nagios-plugins or monitoring-plugins installed on the target host.
apt-get install nagios-plugins
We now need to create a new user monitoring, that will be used to run checks via SSH.
addgroup --system monitoring
adduser --system --shell /bin/bash monitoring
adduser monitoring monitoring
mkdir -p /home/monitoring/.ssh/
chown monitoring:monitoring /home/monitoring -R
touch /home/monitoring/.ssh/authorized_keys
chmod 644 /home/monitoring/.ssh/authorized_keys
Now copy your public key to the file /home/monitoring/.ssh/authorized_keys.
Creating checks¶
Navigate to Monitoring -> Objects -> Commands and make sure the check_by_ssh command exists. This is a standard openITCOCKPIT command. If the command is not available, click the + New button and create it.
| Command definition | |
|---|---|
| Command type | Service check command |
| Command name | check_by_ssh |
| Command line | $USER1$/check_by_ssh -H $HOSTADDRESS$ -l "$ARG1$" -C "$ARG2$" |
| Command argument ($ARG1) | Username |
| Command argument ($ARG2) | Command |
The check_by_ssh plugin can be used to execute all types of commands on the remote host. For check plugins to run you must set the absolute path to the plugin. Also, by creating a macro with the plugin path you will save yourself a lot of work.
Navigate to Monitoring -> Objects -> Custom Macros and click the + New button.
| Macro definition | |
|---|---|
| Makro name | $USER2$ (or any other) |
| Value | /usr/lib/nagios/plugins |
| Description (optional) | Path of monitoring-plugins on remote host used by check_by_ssh |
Navigate to Monitoring -> Services and click the + New button.
Select your host and the predefined service template CHECK_BY_SSH.
| Service templates definition | |
|---|---|
| Service name | CHECK_BY_SSH |
| Service name | CPU load |
| Check period | 24x7 |
| Check command | check_by_ssh |
| Username ($ARG1) | monitoring |
| Command ($ARG1) | $USER2$/check_load -w 15,10,5 -c 30,25,20 |
To continue click Create Service.
$USER2$ is automatically replaced with the value stored in the previous macro.
Repeat this step for all the services you need.
For the new changes to take effect, you must update the monitoring configuration.
The new services will now be monitored by the system.



