Nagios Core is perhaps best thought of less as a monitoring tool and more as a monitoring framework. Its modular design allows any kind of program that returns appropriate values based on some kind of check as a
check_command for a host or service, for use to ensure that a host or service is still responsive and functioning correctly. This is where the concepts of commands and plugins come into play.
For Nagios Core, a plugin
is any program that can be used to gather information about a host or service. To ensure that a host is responding to PING requests, we'd use a plugin such as
check_ping, which when run against a hostname or address—whether by Nagios Core or not—returns a status code to whatever called it, based on whether a response was received to the PING request within a certain period of time. This status code and any accompanying message is what Nagios Core uses to establish what state a host or service is in.
Plugins are generally just like any other program on a...