<HTML>
<HEAD>
<TITLE>Syslog-ng is always one message behing with a tcp destination</TITLE>
</HEAD>
<BODY>
<BLOCKQUOTE><FONT SIZE="4"><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Hi,<BR>
<BR>
I have a &quot;client&quot; syslog-ng that reads from a unix domain socket and writes to a file destination as well as a tcp destination. I have a &quot;server&quot; syslog-ng listening on 0.0.0.0 on the port specified in the &quot;client&quot; tcp destination.<BR>
<BR>
When I write a sample payload to the domain socket, syslog-ng writes the message in full to the file destination immediately. However I see no file created on the host referred to by tcp destination.<BR>
<BR>
If I write a second payload, the first payload is now written to the remote location specified in the tcp destination.<BR>
<BR>
It seems like syslog-ng is always one message behind in writing to the tcp destination.<BR>
<BR>
I am able to flush the &quot;client&quot; syslog-ng buffer by sending a kill -1. This causes the payload to be written to the tcp destination.<BR>
<BR>
Is this the only way to force syslog-ng to write all its buffer contents to the tcp destination? Or is there someway to control the flushing using flow-control?<BR>
<BR>
<BR>
&quot;client&quot; syslog-ng configuration:<BR>
<BR>
@version: 3.0<BR>
<BR>
options {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flush_timeout(1000);<BR>
};<BR>
<BR>
source s_socks {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unix-stream (&quot;/home/srini/dev/log&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-connections(5)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log_msg_size(3145728)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags(no-parse));<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
};<BR>
<BR>
destination d_logs {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file(&quot;/logs/app.log&quot;);<BR>
};<BR>
<BR>
destination d_tcp {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tcp(&quot;192.168.1.102&quot; port(60999)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frac_digits(6)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keep-alive(yes)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<BR>
};<BR>
<BR>
rewrite r_rewrite_newlines{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subst(&quot;#012&quot;, &quot;\n&quot;, value(&quot;MESSAGE&quot;), flags(&quot;global&quot;));<BR>
};<BR>
<BR>
log {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source(s_socks);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rewrite(r_rewrite_newlines);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destination(d_logs);<BR>
};<BR>
<BR>
log {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source(s_socks);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destination(d_tcp);<BR>
};<BR>
<BR>
<BR>
&quot;Server&quot; syslog-ng: This is the &quot;centralized&quot; log server:<BR>
<BR>
@version: 3.0<BR>
<BR>
source s_tcp {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;tcp(port(60999))<BR>
&nbsp;&nbsp;&nbsp;&nbsp;log_msg_size(3145728)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;keep-alive(yes)<BR>
};<BR>
<BR>
<BR>
destination d_logs {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;file(&quot;/logs/app.llog&quot;<BR>
};<BR>
<BR>
rewrite r_rewrite_newlines{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subst(&quot;#012&quot;, &quot;\n&quot;, value(&quot;MESSAGE&quot;), flags(&quot;global&quot;));<BR>
};<BR>
<BR>
log {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;source(s_tcp);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;rewrite(r_rewrite_newlines);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;destination(d_logs);<BR>
};<BR>
<BR>
<BR>
Thanks.<BR>
Srini <BR>
<BR>
</SPAN></FONT></FONT></BLOCKQUOTE>
</BODY>
</HTML>