[syslog-ng] Problem with program_override in upgrade from 3.0.8 to 3.2.4

Balazs Scheidler bazsi at balabit.hu
Sat Aug 6 18:56:29 CEST 2011


On Tue, 2011-08-02 at 20:55 +0200, Javi Polo wrote:
> Hello there
> 
> I've been using syslog-ng for a long time, no problems so far, till 
> today ... :p
> 
> I'm using Open Source Edition, upgrading from 3.0.8 to 3.2.4, installing 
> from the .run file to /opt
> 
> Today I wanted to update our syslog-ng's to the latest version and found 
> that for some reason, when I override a program via program_override, 
> the PROGRAM macro is empty when I send it to another loghost.
> program_override seems to be working, as locally writen files show so
> 
> I did upgrade both syslog-ng, the client and the logserver
> When I switched back to the old version I found everything began working 
> again
> 
> Here's the conflicting config in the client:
> #CLIENT CONFIG
> source s_apache_access { file("/var/log/apache2/access.log" 
> program_override ("apache_access")); };
> 
> destination d_logserver01 { tcp("logserver01"); };
> destination d_tmp { file("/var/log/tmp.log" template("$HOST $PROGRAM 
> $MESSAGE\n")); };
> 
> log {   source(s_apache_error);
>          destination(d_logserver01);
>          destination(d_tmp);
>          flags(final); };
> 
> And here's on the server:
> #LOGSERVER CONFIG
> filter f_tmp { host(web0[1-2]); };
> filter f_apache_error { program(apache_error); };
> 
> destination d_apache_error  { 
> file("/array/logs/${S_YEAR}/${S_MONTH}/${S_DAY}/${HOST}/apache2/error.log"  
> template("$ISODATE $HOST ${PROGRAM}: $MESSAGE\n") ); };
> destination d_tmp { 
> file("/array/logs/${S_YEAR}/${S_MONTH}/${S_DAY}/${HOST}/tmp.log" 
> template("$HOST $PROGRAM $MSG\n")); };
> 
> log {   source(s_tcp);
>          filter(f_apache_error);
>          destination(d_apache_error);
>          flags(final); };
> 
> log {   source(s_tcp);
>          filter(f_tmp);
>          destination(d_tmp);
>          flags(final); };
> 
> After the update those are the results of tmp.log
> On client:
> web01 apache_error Aug 02 20:53:06 2011] [error] [client 192.168.0.5] 
> client denied by server configuration: /var/www/asdadsasdas
> 
> On server:
> web01  Aug 02 20:53:06 2011] [error] [client 192.168.50.65] client 
> denied by server configuration: /var/www/asdadsasdas
> 
> 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)


-- 
Bazsi




More information about the syslog-ng mailing list