I use the check_by_ssh command to check remote servers and nsca to check remote hosts on foreign networks. Also I use the nc_net client for windows servers. All work for the specific purposes they were intended.
My one beef may be that the check_by ssh command takes some time because the server has to login to the remote server and then get the request. NSCA is much faster in returning the checks, but then you have to configure nagios to run on the server, which is why I use checkby_ssh to check 5-8 services on 20-30 servers. I guess you could use cron jobs to run the commands and send them back to the nagios server, but that seems like alot of work, and check_by_ssh is pretty easy to implement.
here is a script I use to configure some services on a remote host
copy check_* to remote server /root
done as nagios, the Key is the public key from nagios@nagios echoed into ~/,ssh/authorized_keys
echo ssh-dss > /home/nagios/.ssh/authorized_keys
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
This is done as root
cp /root/check_procs_redhat /usr/local/nagios/libexec
chown nagios /usr/local/nagios/
chown nagios /usr/local/nagios/libexec/
chown nagios /usr/local/nagios/libexec/*
chmod 755 /usr/local/nagios/libexec/check_*
I guess the real question is what systems/services are you trying to monitor? There are many tools and if used properly they can be very powerful.
Edited Fri Feb 03 2006, 08:23AM ]