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.
