Devops people like to say, "If it's not monitored, it's not in production." By "monitored," what we really mean is that some automated system is checking whatever it is, and alerting you if there's a problem. If your customers know the system is down before you do, then you don't have effective monitoring.
Puppet can be a big help with monitoring, as it can be with all other aspects of automation and control. At the least, you can use Puppet to help you set up a monitoring server (using Nagios, Icinga, Zabbix, or one of the many other freely-available monitoring tools).
Puppet has some built-in support for Nagios in particular, and can automatically generate monitoring checks for hosts and services that you manage in your Puppet manifest. This requires PuppetDB , a central database that stores information about your nodes. We haven't space here to go into the details of PuppetDB and stored configuration, but you can find out more at: