Purging of old data in opEvents
Introduction
Version 2.0.0 (and newer) of opEvents provides a new mechanism for expiring old data from the database. The purging is totally optional and no old data will be removed unless you explicitely configure opEvents to do so.
Important, Versions of opEvents Prior to 2.4.2 will not have a purging policy configured by default, the installer will prompt to enable the default policy.
What can be purged?
opEvents can expire four different types of old data independently:
- Summary reports
- Events and Event Actions
- Raw Logs
- Archve Logs
Configuration
Your desired purging policy is defined by setting one or more of the following four configuration properties in conf/opCommon.nmis
(or opCommon.json in opEvents 4.x and newer). Here is the commented example from install/opCommon.json:
"opevents" : { # lots of other directives... # how long should things be kept in the db? format NN[dhm]MM[hm]..., plain N means N minutes. 0 or undef means no purging. "opevents_reports_purge_older_than" : "730d", # covers summary reports "opevents_events_purge_older_than": "180d", # covers events and actions "opevents_rawlogs_purge_older_than" : "90d", # covers raw logs "opevents_archivelogs_purge_older_than" : "365d", # covers archive logs
The configuration is pretty straightforward:
- no value, the value 0 or the special value
undef
means no purging whatsoever. - a purely numeric value is interpreted to mean "purge entries that are older than so many minutes".
- the system understands combinations of the units "d", "h" and "m", in any order and without any delimiting spaces.
For example,31d12h
means "purge data older than 31 days and 12 hours" (as does12h31d
).
Activation
The expiration of old data is performed by opevents-cli.pl
if and when it is started with the argument act=purge
. You can also instruct it to only tell you how many entries a purge run would remove (without removing anything) by giving the arguments act=purge simulate=true
.
By default the installer for opEvents 2.0 will create a suitable cron schedule in /etc/cron.d/opevents
which triggers this action once weekly, but you can of course modify this to your liking.
And example of cron job for opEvents, for purging and report tasks:
# this cron schedule controls opEvents db purging and reporting # # m h dom month dow user command # # purge the database once weekly 12 3 * * 1 root /usr/local/omk/bin/opevents-cli.exe act=purge # create daily summary reports 21 3 * * * root /usr/local/omk/bin/opevents-cli.exe act=create-report daily=true # create weekly summary reports 32 3 * * 1 root /usr/local/omk/bin/opevents-cli.exe act=create-report weekly=true # create monthly summary reports 43 4 1 * * root /usr/local/omk/bin/opevents-cli.exe act=create-report monthly=true