NRPE vs. check_by_ssh

RijilV rijilv at riji.lv
Wed Mar 25 20:30:51 CET 2009


2009/3/24 Christopher McAtackney <cristoir at gmail.com>:
> Hi all,
>
> I was wondering if someone could give a brief overview of the pros /
> cons of using NRPE to monitor my remote hosts versus using the
> check_by_ssh command?
>
> I'm aware that check_by_ssh increases the CPU overhead, but I'm not
> clear on the level of impact here - does this increase the load on the
> monitoring machine in direction relation to the number of hosts being
> monitored? For example, if I was using check_by_ssh to monitor, say,
> 2000 services spread across 200 hosts, would I experience significant
> slowdown on my monitoring machine?
>
> Cheers for any info,
>
> Chris
>


SSH is going to slow it down on both sides of the communication.  SSH
does quite a bit more in terms of setting up the connection which
involves using asymmetric encryption to setup a shared secret for
symmetric encryption and verifying keys for the asymmetric part,
verifying access, allocating a session.  Whereas NRPE even with
encryption just does a simple pre-shared secret for the symmetric
encryption, much faster even if using the same encryption algorithm


One thing you could do with SSH to speed it up (and I would argue make
it faster than NRPE depending on the stability of your network)) would
be to use ControlMaster.  ControlMaster is a SSH v2 feature, where you
create a connection and can open up multiple sessions with that
ControlMaster for other SSH processes.  This saves you not only the
key-exchange heavy lifting but also you're not opening up a new socket
on the remote host.  In order to really make it worth it you'd have to
spawn a process that was continuously connected.  I wrote an ugly
check_by_ssh that would spawn a ControlMaster if one didn't exist and
use it if it did.  Reduced the load/latency quite a bit for SSH
checks.  Though if I had to do it again I'd used 'ControlMaster auto'
(man 5 ssh_config) and create a separate check that was responsible
for maintaining the ControlMaster, then you could use the stock
check_by_ssh without any modifications.


That all being said, you might want to think about a distributed setup
anyhow, if nothing more for redundancy.  200 servers and 2,000 checks
is alot of responsibility for a singleton, you could break it 50/50
between two servers that could take over for the other one if it
fails.


.r'

------------------------------------------------------------------------------
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
::: Messages without supporting info will risk being sent to /dev/null





More information about the Users mailing list