Hello rsyslog list,

[1] is an example of pre-processed log.  We'd like to keep fields defined in the environment variable [3] in the top level, and move the rest to one level down as in [2].  In this example, 2 fields "test0" and "test1" are to be moved, but the count could vary.  We'd like to do something like [5] with the rulebase [4]. (*)  But this preliminary attempt does not work since 1) "contains" only takes quoted value (https://www.rsyslog.com/doc/v8-stable/configuration/filters.html#value-part) and 2) mmnormalize with [4] replaces(?) the value instead of adds it.  Could you please enlighten me how we could achieve the goal?

(*) Note: this script [5] has a culprit, too.  If the undefined field name is a substring of DEFAULT_KEEP_FIELDS, e.g., "host", "name" and "addr", then they won't be moved to "undefined" even if the script worked as I hoped.  So, probably, we have to come up with a completely new idea...

Thank you, in advance.
--noriko

[1] input:
{
  "message": "Test Message 0",
  "level": "info",
  "@timestamp": "2019-05-27T23:49:09.507361+00:00",
  "hostname": "ip-10-0-172-2.compute.internal",
  "test0": "string0",
  "test1": { "test10": 10, "test11": "string11" }
}

[2] output:
{
  "message": "Test Message 0",
  "level": "info",
  "@timestamp": "2019-05-27T23:49:09.507361+00:00",
  "hostname": "ip-10-0-172-2.compute.internal",
  "undefined": { "test0": "string0", "test1": { "test10": 10, "test11": "string11" } }
}

[3] DEFAULT_KEEP_FIELDS:
export DEFAULT_KEEP_FIELDS="CEE,time,@timestamp,hostname,ipaddr4,ipaddr6,level,message"

[4]
==> files/rsyslog/undefined.rulebase <==
version=2
rule=:%undefined:json%

[5]
<<snippet of config script>>
set $.default_keep_fields = `echo $DEFAULT_KEEP_FIELDS`;
foreach ($.i in $!) do {
    if not ($.default_keep_fields contains $.i!key) {
        action(type="mmnormalize" ruleBase="/etc/rsyslog.d/undefined.rulebase" variable=$.i!key)
    }
}


_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to