Presumably there is a use case for sending to both local syslogd and to
a remote UDP server.  It is probably even a VMware use case, because
this feature was added by Henry Mai (then a VMware employee), who didn't
often contribute to OVS.  I guess that he would not have designed it to
send to both targets, and documented it to do so, if that was
undesirable.  I would not want to break this use case.

Henry: if it's OK to ask you a question even though you've departed
VMware, can you tell us why --syslog-target sends to both the local and
the remote targets, instead of replacing the local target?  Thanks!

On Wed, Apr 15, 2015 at 05:17:35AM +0000, Michael Hu (NSBU) wrote:
> Hi Ben,
> 
> Some logger analysis tool has some local agent listening on a single node to 
> collect logs. One of the popular tool called log insight which uses rsyslogd 
> as local client to listen and transferring log to log insight server.
> 
> Currently syslog() function does not support structured data with key/value 
> pairs in the log header specified by RFC 5424. 
> https://tools.ietf.org/html/rfc5424
> Log analysis tool uses these header to categorize and filter log messages. If 
> sending structured data as main log message, it won't be recognized by the 
> log collector. That's why we have to send raw UDP packet directly to rsyslogd 
> which contains both structured header and main log messages.
> 
> If using vlog to send udp to rsyslogd by specifying  
> --syslog-target=127.0.0:514, we would see duplicated messages in 
> /var/log/syslog as vlog also calls syslog() for the same message. That is the 
> reason for this patch.
> 
> BTW, since this parameter is called syslog-target, do we expect user to 
> either specify this to send udp log message or let vlog call syslog() but not 
> both at the same time? Is there other use case to send UDP packet and call 
> syslog() at the same time?
> 
> Thanks,
> Michael
> 
> ________________________________________
> From: Ben Pfaff <b...@nicira.com>
> Sent: Tuesday, April 14, 2015 9:11 PM
> To: Gurucharan Shetty
> Cc: Michael Hu; ovs-dev
> Subject: Re: [ovs-dev] [PATCH] vlog.c: Avoid duplicating log message in 
> rsyslog if enabling syslog-target
> 
> On Fri, Apr 10, 2015 at 07:30:13AM -0700, Gurucharan Shetty wrote:
> > On Thu, Apr 9, 2015 at 8:42 PM, Michael Hu <humich...@nicira.com> wrote:
> > > Currently if --syslog-target=127.0.0.1:514 is enabled, syslog would have
> > > duplicated log messages. The fix will not call syslog() if already having
> > > syslog_fd indicating message is sent through udp.
> >
> > You forgot to add a Signed-off-by.
> > When I 'git am' this patch, I get:
> > Applying: vlog.c: Avoid duplicating log message in rsyslog if enabling
> > syslog-target
> > fatal: corrupt patch at line 15
> >
> > I personally think that your patch makes sense. But the documentation
> > (e.g. 'man ovs-vswitchd') says:
> >
> > --syslog-target=host:port
> >               Send syslog messages to UDP port on host,  in  addition  to  
> > the
> >               system  syslog.   The host must be a numerical IP address, 
> > not a
> >               hostname.
> >
> > So when this feature was added, I think it was mostly meant for a
> > remote IP address and not local. So your patch breaks the "in
> > addition" part of the current expectation.
> 
> I'd like to hear why one would pass --syslog-target=127.0.0:514 at all.
> Why is this useful, if the system already has a working syslog()
> facility?
> 
> Thanks,
> 
> Ben.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to