[syslog-ng] Problem with program_override in upgrade from 3.0.8 to 3.2.4
Balazs Scheidler
bazsi at balabit.hu
Mon Aug 22 09:31:27 CEST 2011
On Wed, 2011-08-17 at 11:09 +0200, Balazs Scheidler wrote:
> On Mon, 2011-08-08 at 17:04 +0200, Javi Polo wrote:
> > El 08/06/2011 06:56 PM, Balazs Scheidler escribió:
> > >> As you can see, the program_name has dissapeared
> > >> I suspect is a bug, but I'm not sure as there might be some change in
> > >> syslog-ng behaviour that I did miss :?
> > > flags(dont-store-legacy-msghdr)
> > >
> > > I wanted to explain why, but I'm in a hurry, probably in an upcoming
> > > post. (the flag might be called no-store-..., can't remember exactly)
> >
> > Thanks!
> > I found an explanation there
> > http://bazsi.blogs.balabit.com/2010/05/small-incompatible-change-for-3-1/
> >
> > However, it still doesnt work
> > As the flag 'dont-store-legacy-msghdr' is set on the 'source' statement
> > in the logserver host, it seems it doesnt affect the syslog-ng
> > generating the log, which stripes the program from the log-line
> >
> > I tried to put 'dont-store-legacy-msghdr' flag in the originating host,
> > under 'destination' statement, but syslog-ng complains that the flag is
> > invalid there ...
> >
> > I have switched back to syslog-ng 3.0 till I can resolve this issue
> >
>
> you need the flag on the host that has program-override(),
> program-override() will not work if store-legacy-msghdr is enabled,
> unless the destination template is customized too.
>
> If the client syslog-ng has program-override(), then you need the flag
> on that host, on its source statement.
>
I've pushed this to 3.3, which should be backported to 3.3 one day:
commit c76483fcd6c033fdf9b46d1c18753d466362ea88
Author: Balazs Scheidler <bazsi at balabit.hu>
Date: Mon Aug 22 09:28:48 2011 +0200
program-override(): disable the effect of store-legacy-msghdr flag
During 3.1, the flag "store-legacy-msghdr" has become default, which means
that the $PROGRAM[$PID] portion of the original syslog message was restored
to the same format it was received as, instead of being reconstructed
from the parsed values.
However, when specifying program-override(), this behaviour was
not restored, e.g. even if the value of the $PROGRAM name-value pair
has changed, the originally stored format was used in files.
This was certainly not very intuitive. This patch changes that, if
$PROGRAM is set in any way (e.g. program-override(), rewrite rule, parser)
the effect of store-legacy-msghdr is disabled. That can be restored
by using an explict $LEGACY_MSGHDR macro in the destination template.
Cc: syslog-ng-stable at balabit.hu
Signed-off-by: Balazs Scheidler <bazsi at balabit.hu>
--
Bazsi
More information about the syslog-ng
mailing list