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.

Reply via email to