All Projects → neilhwatson → delta_reporting

neilhwatson / delta_reporting

Licence: GPL-3.0 license
Promise reporting portal using CFEngine Community

Programming Languages

perl
6916 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to delta reporting

Ex audit
Ecto auditing library that transparently tracks changes and can revert them.
Stars: ✭ 214 (+1546.15%)
Mutual labels:  audit
bmcbutler
BMC configuration management tool
Stars: ✭ 70 (+438.46%)
Mutual labels:  configuration-management
ecaudit
Ericsson Audit plug-in for Apache Cassandra
Stars: ✭ 36 (+176.92%)
Mutual labels:  audit
Aws Security Toolbox
AWS Security Tools (AST) in a simple Docker container. 📦
Stars: ✭ 241 (+1753.85%)
Mutual labels:  audit
mysql-sp-audit
Using trigger based stored procedure to create audit table. It follows the wordpress meta data approach to store the changes, so all the data is store in just two centalized tables.
Stars: ✭ 27 (+107.69%)
Mutual labels:  audit
SeLite
Automated database-enabled navigation ✔️ of web applications
Stars: ✭ 34 (+161.54%)
Mutual labels:  configuration-management
Inspec
InSpec: Auditing and Testing Framework
Stars: ✭ 2,450 (+18746.15%)
Mutual labels:  audit
vyper
Python configuration with (more) fangs
Stars: ✭ 121 (+830.77%)
Mutual labels:  configuration-management
ini
📝 Go INI config management. support multi file load, data override merge. parse ENV variable, parse variable reference. Dotenv file parse and loader. INI配置读取管理,支持多文件加载,数据覆盖合并, 解析ENV变量, 解析变量引用。DotEnv 解析加载
Stars: ✭ 72 (+453.85%)
Mutual labels:  configuration-management
cis benchmarks audit
Simple command line tool to check for compliance against CIS Benchmarks
Stars: ✭ 182 (+1300%)
Mutual labels:  audit
go-uci
Native Go bindings for OpenWrt's UCI.
Stars: ✭ 69 (+430.77%)
Mutual labels:  configuration-management
WDR
Jython framework aiming for simplified WebSphere Application Server scripting
Stars: ✭ 43 (+230.77%)
Mutual labels:  configuration-management
juno-agent
juno-agent
Stars: ✭ 46 (+253.85%)
Mutual labels:  configuration-management
Wordpress Simple History
🔍🕵️‍♀️ WordPress audit log that track user changes in WordPress admin using a nice activity feed.
Stars: ✭ 232 (+1684.62%)
Mutual labels:  audit
DeployMachineLearningModels
This Repo Contains Deployment of Machine Learning Models on various cloud services like Azure, Heroku, AWS,GCP etc
Stars: ✭ 14 (+7.69%)
Mutual labels:  configuration-management
Vulny Code Static Analysis
Python script to detect vulnerabilities inside PHP source code using static analysis, based on regex
Stars: ✭ 207 (+1492.31%)
Mutual labels:  audit
runcom
An XDG enhanced run command manager for command line interfaces.
Stars: ✭ 16 (+23.08%)
Mutual labels:  configuration-management
jcliff
Manage JBossAS 7/EAP6/Wildfly with modular configuration files from command line, puppet, ansible, chef, etc.
Stars: ✭ 42 (+223.08%)
Mutual labels:  configuration-management
netcfgbu
Network Configuration Backup
Stars: ✭ 93 (+615.38%)
Mutual labels:  configuration-management
DazzleConf
Incredible configuration library
Stars: ✭ 34 (+161.54%)
Mutual labels:  configuration-management

delta_reporting

Build Status

Delta Reporting provides centralized CFEngine class and promise reporting via a modern and responsive web application.

Dashboard screenshot

More screenshots

Testing

This software is well teseted. See its automated testing over at Travis-CI.

Features

  • Report on class membership history.
  • Report on low level promise compliance history.
  • Report missing hosts.
  • Trend graphs for promise outcomes and host counts.
  • Inventory reporting.
  • Centralize all your CFEngine servers to a single reporting database.
  • IPV6 ready.
  • Use you existing database infrastructure.
  • Sort and filter your report results.
  • Save your reports in multiple formats.
  • Command line report tool that outputs multiple formats.

Requirements

Client and Server

  1. CFEngine 3.6.3+.
  2. EFL, the Evolve Thinking free promise library. It very important that you know how to use this.
  3. Perl 5.10+

Note about EFL

EFL contains logging action and classes attributes that log promise outcomes for Delta Reporting to gather and process. EFL's promise bundles use these automatically. To use your own promises you will need to use these EFL action and classes attributes. See EFL bundles efl_rkn, efl_delta_reporting, and the Delta Reporting architecture docs.

Server

  1. Tested on Debian and RHEL 6. May work on others if requirements are met.
  2. Postgresql 8.3+
  3. Apache recommended for proxy front end.
  4. Perl Modules
  5. Mojolicious framework, included.
  6. Statistics::LineFit, included.
  7. Mojo::Pg, included.
  8. Local::lib, included.
  9. Try::Tiny, included.
  10. Log::Log4perl, included
  11. Log::Dispatch::Syslog, included
  12. Data::Dumper, for development only, not required for production.
  13. POSIX
  14. Getopt::Long
  15. Time::Local
  16. Test::More
  17. Test::Exception
  18. feature 'say', comes with perl 5.10+
  19. Net::DNS
  20. Regexp::Common
  21. Sys::Hostname::Long
  22. DBI
  23. DBD::Pg

Support

Neil Watson is the creator and caretaker of Delta Reporting. They offer professional support services for Delta Reporting, CFEngine, and other IT services. ( http://watson-wilson.ca ).

How it works

Using the provided the CFEngine policy in delta_reporting.cf all CFEngine class and all promises using EFL are logged by cf-agent on the host and stored for pickup by the policy server. The policy server downloads the log from every client and inserts them into the database.

Installation

  1. Install prerequisites.

  2. Create database delta_reporting.

  3. Install contents of repo to /opt/delta_reporting/.

  4. Configure using DeltaR.conf. Be sure to configure your database properly for authentication and authorization. Two database users are required. The read/write user should own the database.

  5. If you configure the database delta_reporting_test, with the same users as above, you can use the built in test suite to test the installation: ./DeltaR.pl test.

  6. Copy bin/delta_reporting script to /etc/init.d. This is your start script.

  7. Create a user 'deltar', home /opt/delta_reporting, shell /bin/false.

  8. Go to http://localhost:8080/initialize\_database.

  9. You can DR run as is, or proxy behind Apache:

    <VirtualHost *:80>
       ServerName ettin.example.com
       ProxyPass / http://localhost:8080/
       ProxyPassReverse / http://localhost:8080/
    
       <LocationMatch /.*>
          AuthUserFile /etc/apache2/passwords.secret
          AuthType Basic
          AuthName 'Evolve Thinking Delta Reporting'
          Require valid-user
       </LocationMatch>
    </VirtualHost>
  10. Install delta_reporting.cf into your CFEngine policy. Run bundles in the following order. Use of EFL's main methods bundle is encouraged. Don't forget the null parameters.

  11. deltarep_prelogging as early as possible on all hosts.

  12. deltarep_postlogging as late as possible on all hosts.

  13. deltarep_client_get after deltarep_postlogging on policy servers only.

  14. Define the namespace class delta_reporting for all hosts, as early as possible.

  15. Install bin/dhlogmaker and configure CFEngine to install it on all hosts. /opt/delta_reporting/bin/dhlogmaker suggested.

  16. Create server access promises that allow the policy server's agent to download from cf-serverd on all agents, including itself, the directory ${sys.workdir}/delta_reporting. Use of the EFL bundle efl_server is encouraged.

Multiple CFEngine servers?

If you have mutiple CFEngine servers, install Delta Reporting on each, but point each to a central database. Now every server loads its client data to the central database and each can report on the data collected from all servers.

License

Delta Reporting is a central server compliance log that uses CFEngine.

Copyright (C) 2016 Neil H. Watson http://watson-wilson.ca

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].