Introduction
Nagios Core is best thought of as a monitoring framework that uses plugins to perform appropriate checks on hosts and services, and returns results about their states in a format that it understands and can use for sending notifications and keeping track of states on a longer term basis.
The design is quite flexible; as explained in the "Commands and Plugins" chapter, Nagios Core can use as a plugin any command-line application that gives appropriate return values as defined in the Nagios Core header files, Perl library, or shell script. In turn, Nagios Core can be configured to use the same plugin in many different ways, taking advantage of any switches provided by the plugin to adjust its behavior, including providing metadata to it in the form of the values of Nagios Core macros like $HOSTADDRESS$
.
The collection of plugins available on the Nagios Exchange website at https://exchange.nagios.org/ is fairly large and documenting all of them is well out of the scope...