[syslog-ng] Requesting help with Grouping-by function

Maciek Solnicki msolnicki at gmail.com
Tue Nov 3 14:13:31 UTC 2020


Nevermind! I think I got it :-)

*log {*
*  source {*
*    file('/var/log/audit/audit.log' flags(no-parse));*
*  };*
*  parser {*
*    linux-audit-parser(prefix(".auditd."));*
*  };*
*  parser {*
*    grouping-by(*
*        key("${.auditd.msg}")*
*        aggregate(*
*                value(".auditd.test" "#########TEST")*
*        )*
*        timeout(10)*
*    );*
*  };*
*  destination {*
*    file('/tmp/test.json' template("$(format-json .auditd.exe .auditd.cwd
.auditd.a* .auditd.test .auditd.success .auditd.pid .auditd.msg)\n"));*
*  };*
*};*

This seems to work as now result looks like this:

*{*
*  "_auditd": {*
*    "test": "#########TEST",*
*    "success": "yes",*
*    "pid": "57483",*
*    "msg": "audit(1604412718.657:211575):",*
*    "exe": "/usr/bin/jq",*
*    "cwd": "/etc/syslog-ng/conf.d",*
*    "auid": "1000",*
*    "argc": "1",*
*    "arch": "c000003e",*
*    "a3": "fffffffffffff878",*
*    "a2": "564235a17dd0",*
*    "a1": "564235a20680",*
*    "a0": "jq"*
*  }*
*}*

If you have any improvements ideas please let me know.

Thanks!
Maciej

wt., 3 lis 2020 o 14:30 Maciek Solnicki <msolnicki at gmail.com> napisał(a):

> Hi Fabien,
>
> Thanks for your response.
>
> I was using this snippet of code (taken from documentation) before, but
> doesn't seem to work either:
>
> *value("MESSAGE" "$(format-json .auditd.*)")*
>
> So how do I output an aggregated message to the test.json file ? Or any
> file.
>
> I apologize if my questions are basic, but I had a hard time finding
> answers in documentation. Grouping-by() function could definitely use more
> explanation.
>
> Kind regards
> Maciej
>
> wt., 3 lis 2020 o 13:05 Fabien Wernli <wernli at in2p3.fr> napisał(a):
>
>> Hi Maciek,
>>
>> On Tue, Nov 03, 2020 at 12:24:40PM +0100, Maciek Solnicki wrote:
>> > *  destination {*
>> > *    file('/tmp/test.json' template("$(format-json .auditd.*)\n"));*
>> > *  };*
>> > *};*
>>
>> This means you're outputting the contents of all `.auditd.` macros to file
>> test.json.
>>
>> But your grouping-by parser generates a message with the macro MESSAGE set
>> to the value "TEST" :
>>
>> > *    grouping-by(*
>> > *      key("${.auditd.msg}")*
>> > *      timeout(10)*
>> > *      aggregate(value("MESSAGE" "TEST"))*
>> > *    );*
>>
>> So you won't see it in test.json.
>> Well, more exactly you should see it as the default value of
>> aggregate(inherit-mode()) is "context", but you won't see the MESSAGE:TEST
>> macro as you're omitting it from your output.
>> I'm guessing you should see a message twice in that case.
>>
>>
>> ______________________________________________________________________________
>> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
>> Documentation:
>> http://www.balabit.com/support/documentation/?product=syslog-ng
>> FAQ: http://www.balabit.com/wiki/syslog-ng-faq
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.balabit.hu/pipermail/syslog-ng/attachments/20201103/d16188ba/attachment.html>


More information about the syslog-ng mailing list