Icinga is intended to monitor devices (e.g. server, router, printer, and other hardware like temperature sensors) and services (processes running on these devices, metrics, etc.). There are several ways to do that and different approaches for different devices depending on your needs or the infrastructure.
The checks are initiated from the monitoring server repeated at given intervals. The server is waiting for the check results. The values and thresholds are set on the monitoring server. Check results can be retrieved
using SNMP. The remote system runs an SNMP daemon allowing to read the requested values. Depending on the plugin and the daemon SNMP v1, v2c, or v3 are supported
using NRPE, calling an NRPE daemon on the remote system which executes a check and returns the results to NRPE which in turn delivers it to the Icinga process
calling a plugin using SSH to call a check on the remote system which returns the data to the plugin
using the plugin check_nt to connect to a service (e.g. "NSClient++") on the remote windows box and return data on several metrics
using addons like check_multi or check_mk which call plugins on their own to decrease the performance impact on the monitoring process (due to parallel calls). The configuration of values and thresholds is mostly moved to these addons which might increase the time of administration
The checks are initiated on remote systems (not necessarily the system to be monitored but probably "satellite systems", aka "pollers", which monitor an organisational unit). The check results are transmitted to the monitoring server using NSCA consisting of send_nsca on the client system and the nsca daemon on the monitoring server and processed there to update the current status. Setting freshness thresholds will notify you if results do not appear in time. Depending on the configuration tools used administration might be more complex but using firewalls or other limitations imposed by security, customers, and/or other means you might not have the choice. Using passive checks will decrease the load on your monitoring system, too, because it only has to process the check results instead of executing checks itself. You can use entries in the crontab to execute checks at fixed times, execute long running queries when necessary or execute backup jobs returning only the results.
A mix of both
You might have remote systems running checks at given intervals providing data via a secret and secure page on a web server. The monitoring server is not able to check the systems directly (due to firewalls, customer regulations, etc.) but can access the document provided by the web server. It will retrieve the data using scripts (checks?) and injecting the results via external commands.
Sometimes you don't want to check things periodically because they are running smoothly and it would impose unnecessary network load. Several devices will inform you themselves when something goes wrong by using SNMP traps.
Please be sure to have read the section on addons as well because it gives general hints on configuration tools, web interfaces, and other addons which are available for Icinga.
© 2009-2013 Icinga Development Team, http://www.icinga.org