I had to do a lot of fiddling before I got nagios over ssh working. I used this article as source, mostly, even though I did it differently.
First add some commands to commands.cfg:
define command{ command_name check_remote_disk command_line /usr/lib/nagios/plugins/check_by_ssh -p $ARG1$ -l nagios -t 30 -o StrictHostKeyChecking=no -i /etc/nagios3/id_rsa -H $HOSTADDRESS$ -C '/usr/lib/nagios/plugins/check_disk -w $ARG2$ -c $ARG3$ -p $ARG4$' } define command{ command_name check_remote_load command_line /usr/lib/nagios/plugins/check_by_ssh -p $ARG1$ -l nagios -t 30 -o StrictHostKeyChecking=no -i /etc/nagios3/id_rsa -H $HOSTADDRESS$ -C '/usr/lib/nagios/plugins/check_load -w $ARG2$ -c $ARG3$' } define command{ command_name check_remote_swap command_line /usr/lib/nagios/plugins/check_by_ssh -p $ARG1$ -l nagios -t 30 -o StrictHostKeyChecking=no -i /etc/nagios3/id_rsa -H $HOSTADDRESS$ -C '/usr/lib/nagios/plugins/check_swap -w $ARG2$ -c $ARG3$' }
The file referenced by -i is an SSH secret key. You can create this key by running ssh-keygen and giving the right path. You can’t store anything in the nagios home dir, because that is in /var/run, which is cleared after a reboot. So, you can’t use the default key file.
The -t 30 is necessary because sometimes there is network lag, causing the service to be reported as failure. The default of 10 is not enough…
Next you need to create a user nagios on the target machine and add the .pub file of the key to the authorized_keys. Creating the user should be done like:
useradd --system --shell /bin/bash nagios
Then install the nagios plugins on the target host:
aptitude -P install nagios-plugins-basic
The nagios host needs to be able to log in with user nagios. On Debian, the user that runs nagios (also called ‘nagios’) doesn’t have a shell by default. So, give it a shell.
Then you can create a hostgroup (for example). You can do:
define hostgroup { hostgroup_name nagios-enabled alias Nagios enabled members host1, host2 }
Then create services:
define service { hostgroup_name nagios-enabled service_description Root partition space check_command check_remote_disk!22!20%!10%!/ use generic-service notification_interval 0 } define service { hostgroup_name nagios-enabled service_description Swap space check_command check_remote_swap!22!50%!30% use generic-service notification_interval 0 } define service { hostgroup_name nagios-enabled service_description Load check_command check_remote_load!22!5.0,4.0,3.0!10.0,6.0,4.0 use generic-service notification_interval 0 }
This will check load, swap and root space on all your standard nagios enabled hosts. Next you can define custom services:
define service { host_name piet service_description Some partition check_command check_remote_disk!22!40%!30%!/mnt/dinklefat use generic-service notification_interval 0 }
Recent Comments