Ok cool. But I should admit that an example of a ruleset would help me a lot, because it's not easy to find some (good) documentation on how to build it.
On Fri, Apr 27, 2018 at 3:49 PM, David Lang <[email protected]> wrote: > On Fri, 27 Apr 2018, Flo Rance wrote: > > I have taken a look at mmnormaliize and liblognorm and I've therefore >> another question. >> >> Docker sends logs from different softwares to syslog, all of them with >> their own logging format. >> >> Will it be possible to create a ruleset to be applied for each programm >> and >> each format, in order to extract the severity ? And is it possible to >> normalize after having written the original log in a file ? >> > > Yes, you would create a ruleset that has ruls for each program and it's > format. This can be done to any log message, it doesn't matter how rsyslog > gathers the log > > David Lang > > > On Fri, Apr 27, 2018 at 9:26 AM, Flo Rance <[email protected]> wrote: >> >> Ok, thank you guys, it's much more obvious. >>> >>> As a side note, CEST is not the programname, but the timezone (Central >>> European Summer Time). So it seems that the programname is missing and >>> only the pid is displayed. >>> >>> Anyway, I would really like to know how to use this mmnormalize module to >>> parse the message and thus being able to forwared only relevant messages. >>> >>> On Thu, Apr 26, 2018 at 8:22 PM, David Lang <[email protected]> wrote: >>> >>> On Thu, 26 Apr 2018, Rainer Gerhards wrote: >>>> >>>> 2018-04-26 10:28 GMT+02:00 Flo Rance <[email protected]>: >>>> >>>>> >>>>> Good idea. >>>>>> >>>>>> Here's a typical message that is sent by docker to syslog: >>>>>> >>>>>> Debug line with all properties: >>>>>> FROMHOST: 'sc006692.domain', fromhost-ip: '127.0.0.1', HOSTNAME: >>>>>> 'sc006692.domain', PRI: 155, >>>>>> >>>>>> >>>>> OK, rsyslog is doing the right thing. The PRI inside the message (see >>>>> rawmsg below) is 155. Accoding to RFC5424, Sect. 6.2.1 that is a >>>>> facility of 19 and a severity of 3, or according to tables one and two >>>>> in that section local3 with error severity. >>>>> >>>>> >>>> so the docker log-driver is setting the severity to error >>>> >>>> syslogtag 'docker_fluance-ehealthdb[1116]:', programname: >>>> >>>>> 'docker_fluance-ehealthdb', APP-NAME: 'docker_fluance-ehealthdb', >>>>>> PROCID: >>>>>> '1116', MSGID: '-', >>>>>> TIMESTAMP: 'Apr 26 10:22:45', STRUCTURED-DATA: '-', >>>>>> msg: ' 2018-04-26 10:22:45.283 CEST [13518] postgres@postgres [local] >>>>>> FATAL: >>>>>> no pg_hba.conf entry for host "[local]", user "postgres", database >>>>>> "postgres", SSL off' >>>>>> >>>>>> >>>>> But in the message itself, it is providing different information, >>>> including a timestamp (2018-04-26 10:22:45.283) programname (CEST) pid >>>> (13518) and finally severity (FATAL:) >>>> >>>> escaped msg: ' 2018-04-26 10:22:45.283 CEST [13518] postgres@postgres >>>> >>>>> [local] FATAL: no pg_hba.conf entry for host "[local]", user >>>>>> "postgres", >>>>>> database "postgres", SSL off' >>>>>> inputname: imuxsock >>>>>> >>>>>> >>>>> rawmsg: '<155>Apr 26 10:22:45 >>>> >>>>> docker_fluance-ehealthdb[1116]: 2018-04-26 10:22:45.283 CEST [13518] >>>>>> postgres@postgres [local] FATAL: no pg_hba.conf entry for host >>>>>> "[local]", >>>>>> user "postgres", database "postgres", SSL off' >>>>>> >>>>>> >>>>> If you look at the rawmsg, which is what the docker log-driver passes >>>> to >>>> rsyslog, you will see that it sets the pri to 155, the timestamp to Apr >>>> 26 >>>> 10:22:45 and the programname/pid to docker_fluance-ehealthdb[1116] >>>> >>>> the docker log driver makes the _assumption_ that what is spit out to >>>> stdout is not structured, so it adds a default header and passes it to >>>> rsyslog. >>>> >>>> I have to run to a meeting, I'll post some info later for configuring >>>> mmnormalize to parse the message. >>>> >>>> David Lang >>>> >>>> >>>> $!: >>>> >>>>> $.: >>>>>> $/: >>>>>> >>>>>> On Thu, Apr 26, 2018 at 9:57 AM, Rainer Gerhards < >>>>>> [email protected]> >>>>>> wrote: >>>>>> >>>>>> >>>>>>> 2018-04-26 9:48 GMT+02:00 Flo Rance via rsyslog >>>>>>> <[email protected]>: >>>>>>> >>>>>>> What do you mean by "not in any standard format" ? >>>>>>>> I've explicitely declared the logging driver in docker to be syslog, >>>>>>>> so >>>>>>>> I >>>>>>>> was expecting to be able to parse the result to extract accurate >>>>>>>> data >>>>>>>> in >>>>>>>> the fields. >>>>>>>> >>>>>>>> Can you give me any hints on how I could use mmnormalize to extract >>>>>>>> the >>>>>>>> various fields ? >>>>>>>> >>>>>>>> >>>>>>> let's get started with something easier. Please add >>>>>>> >>>>>>> *.* /var/log/messagedebug;RSYSLOG_DebugFormat >>>>>>> >>>>>>> to the top of your rsyslog.conf. Let some messages flow. In the new >>>>>>> file, you should then see that message together with the decoded >>>>>>> properties AND the raw message. Post that entry (~6 lines or so). >>>>>>> With >>>>>>> that, we know for sure what is going on. >>>>>>> >>>>>>> Rainer >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Wed, Apr 25, 2018 at 7:28 PM, David Lang <[email protected]> wrote: >>>>>>>> >>>>>>>> On Wed, 25 Apr 2018, Rainer Gerhards wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> 2018-04-25 9:29 GMT+02:00 Flo Rance <[email protected]>: >>>>>>>>> >>>>>>>>> >>>>>>>>>> Ok, but if ".err" means "err and above", why does it forward >>>>>>>>>> >>>>>>>>>>> messages >>>>>>>>>>> with >>>>>>>>>>> the severity INFO as in the example ? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> pls post the raw message - how do you know it is INFO? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> in the docker world, the 'standard' is that messages get dumped to >>>>>>>>> stdout, >>>>>>>>> not in any standard format, so INFO: in the message body is the >>>>>>>>> indication. >>>>>>>>> >>>>>>>>> It looks like these logs should be parsed with mmnormalize to >>>>>>>>> extract >>>>>>>>> the >>>>>>>>> various fields (potentially as a parser on the input) >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> >>>>>>>> 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. >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>> >> _______________________________________________ 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.

