I want to monitor RAM & CPU usage on several machines. Nagios is deployed on one.
What's the easiest way to perform these checks for machines that don't have the nagios server running on them?
The easiest in my opinion is to install SNMP on the remote machines and run Cacti on them. Other ways would be to install Munin, however that requires a client/server configuration (easy to set up). I believe there is a way to do this with Nagios (don't quote me), however, it requires a set up like Munin where this is a client on the remote machines. Again, in my opinion, I like the snmp approach.
nagios has it build in - install nrpe on the remote server and call what you need
cpu
load
disk space
for example (load using a generic service as template)
define service{
name system-load-2cpu
service_description System Load
check_command nrpe_load!1!1!1!2!2!2
contact_groups alerts_to_admin
use generic-service
notification_options u,c,r
register 0
}
Install a nagios client/plugin on them and configure the server to collect data from the clients, of course. See the nagios manual for reference.
If you have a Nagios server just setup the clients..
NRPE - Unix client / NSClient++ - Windows client
If you need help on configuration just ask.