Reporting Architecture

The reporting architecture of CFEngine Enterprise consists of software components that are included in the hub-package of the CFEngine Enterprise installation.

cf-hub

Like all CFEngine components, cf-hub is located in /var/cfengine/bin. It is a daemon process that runs in the background, and is started by cf-agent through the failsafe policy.

cf-hub wakes up every 5 minutes, and connects to the cf-serverd of each host to download new data. Delta reports include new data in the last interval and a subset of variable information. A download of the complete set of data is performed every 6 hours.

Report collection from any host can be triggered manually by running

$ /var/cfengine/bin/cf-hub -q full -H <host IP>

Run in verbose mode (-v) to diagnose connectivity issues and trace the data collected.

In addition, cf-hub runs a maintenance check and database cleanup routine every 6 hours, and collects data about its own performance, the status of the database and connectivity status for hosts.

All data is then stored in a NoSQL MongoDB database.

mongodb

MongoDB (from hu**mongo**ous) is an Open Source document database. The mongod daemon process is started through CFEngine policy. The daemon as well as the command line interface program mongo are included in the CFEngine Enterprise installation in /var/cfengine/bin.

cf-hub stores collected data in MongoDB. The majority of data is stored for a week. Oldest data is continuously purged by the cf-hub maintenance process, and replaced by new incoming data. An exception is data about file changes, which is stored for up to one year.

The Enterprise API implementation connects to the database to provide access to the data via SQL queries.

Apache

REST over HTTP is provided by the Apache http server which also hosts the Mission Portal. Thehttpd process is started through CFEngine policy, and listens on port 80.

Apache is part of the CFEngine Enterprise installation in /var/cfengine/httpd. A user apache is created with privileges to run cf-runagent.