In a client-server configuration, an agent sends its report to the primary server for processing. In a standalone configuration, the puppet apply command processes the node’s own reports. In both configurations, report processor plugins handle received reports. If you enable multiple report processors, Puppet runs all of them for each report.

Each processor typically does one of two things with the report:
  • It sends some of the report data to another service, such as PuppetDB, that can collate it.

  • It triggers alerts on another service if the data matches a specified condition, such as a failed run.

That external service can then provide a way to view the processed report.

Report data

Puppet report processors handle these points of data:
  • Metadata about the node, its environment and Puppet version, and the catalog used in the run.

  • The status of every resource.

  • Actions, also called events, taken during the run.

  • Log messages generated during the run.

  • Metrics about the run, such as its duration and how many resources were in a given state.

That external service can then provide a way to view the processed report.

Configuring reporting

An agent sends reports to the primary server by default. You can turn off reporting by changing the report setting in an agent’s puppet.conf file.

On primary servers and on nodes running Puppet apply, you can configure enabled report processors as a comma-separated list in the reports setting. The default reports value is 'store', which stores reports in the configured reportdir.

To turn off reports entirely, set reports to 'none'.

For details about configuration settings in Puppet, see the Configuration reference.

Accessing reports

There are multiple ways to access Puppet report data:
  • In Puppet Enterprise (PE), view run logs and event reports on the Reports page. See Infrastructure reports.

  • In PuppetDB, with its report processor enabled, interface with third-party tools such as Puppetboard or PuppetExplorer.

  • Use one of the built-in report processors. For example, the http processor sends YAML dumps of reports through POST requests to a designated URL; the log processor saves received logs to a local log file.

  • Use a report processor from a module, such as tagmail.

  • Query PuppetDB for stored report data and build your own tools to display it. For details about the types of data that PuppetDB collects and the API endpoints it uses, see the API documentation for the endpoints events, event-counts, and aggregate-event-counts.

  • Write a custom report processor.