<p dir="ltr">A workaround is to use a DNS alias, or different port. The Id generated by syslog-ng contains both.</p>
<div class="gmail_quote">On Jun 11, 2014 5:18 PM, &quot;David Hauck&quot; &lt;<a href="mailto:davidh@netacquire.com">davidh@netacquire.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Evan,<br>
<br>
On Wednesday, June 11, 2014 8:16 AM, <a href="mailto:syslog-ng-bounces@lists.balabit.hu">syslog-ng-bounces@lists.balabit.hu</a> wrote:<br>
&gt; Reorganizing the log configuration with junctions helps in some<br>
&gt; circumstances. In my case I need to use a different template depending<br>
&gt; on the source of the message (from a specific file source) so I need<br>
&gt; to use the same destination IP/port, but defined with a different<br>
&gt; syslog-ng &quot;destination&quot; specification so that I can use a different template.<br>
&gt;<br>
&gt; This results in the same problem that I can&#39;t work around by using a<br>
&gt; different junction/log structure.<br>
<br>
Yes, interesting. This restriction is turning out to be somewhat unfortunate. I&#39;m still trying to figure out how to wedge this constraint into my configuration...<br>
<br>
Thanks,<br>
-David<br>
<br>
&gt; Evan.<br>
&gt;<br>
&gt; On 06/10/2014 11:51 PM, Balazs Scheidler wrote:<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; the issue is that syslog-ng uses the destination IP address/port<br>
&gt;&gt; combination<br>
&gt; as an identifier to recover the queue when reloading syslog-ng, so it<br>
&gt; does have some issues (e.g. one borrowing the queue of the other, or<br>
&gt; using the same queue after reload). This is not good.<br>
&gt;&gt;<br>
&gt;&gt; This could be solved with a long-discussed, explicit id() parameter,<br>
&gt;&gt; that<br>
&gt; would let the administrator assign a custom ID, which can be made<br>
&gt; different for the conflicting drivers, but that hasn&#39;t happened yet.<br>
&gt;&gt;<br>
&gt;&gt; Using junctions and log expressions could help you to reorganize your<br>
&gt;&gt; configuration in a way that prevent this kind of conflict:<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://bazsi.blogs.balabit.com/2012/01/syslog-ng-flexibility-improv" target="_blank">https://bazsi.blogs.balabit.com/2012/01/syslog-ng-flexibility-improv</a><br>
&gt;&gt; em<br>
&gt;&gt; ents/<br>
&gt;&gt;<br>
&gt;&gt; Hope this helps.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Jun 6, 2014 at 4:15 PM, David Hauck &lt;<a href="mailto:davidh@netacquire.com">davidh@netacquire.com</a><br>
&gt;&gt; &lt;mailto:<a href="mailto:davidh@netacquire.com">davidh@netacquire.com</a>&gt;&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;     This morning Gergely Nagy wrote:<br>
&gt;&gt;&gt; David Hauck &lt;<a href="mailto:davidh@netacquire.com">davidh@netacquire.com</a> &lt;mailto:<a href="mailto:davidh@netacquire.com">davidh@netacquire.com</a>&gt;&gt;<br>
&gt;&gt;&gt; writes:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Couple things here:<br>
&gt;&gt;&gt;&gt; 1. If this is an error why doesn&#39;t &#39;syslog-ng -s&#39; indicate it as such?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Because -s checks for syntax only, and this is not a syntax<br>
&gt;&gt; error, it&#39;s one level higher.<br>
&gt;&gt;<br>
&gt;&gt;     OK.<br>
&gt;&gt;&gt;&gt; 2. Other than the error, things appear to function<br>
&gt;&gt; correctly. Why is<br>
&gt; this?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; That&#39;d be a bit hard to explain without going into low-level details,<br>
&gt;&gt;&gt; but I&#39;ll try: it works because of luck, mostly. UDP destinations will<br>
&gt;&gt;&gt; not trip over each other when used like this. If you&#39;d try<br>
&gt;&gt; that with files, all hell would break loose.<br>
&gt;&gt;<br>
&gt;&gt;     OK, thanks, having some understanding of how the low level<br>
&gt; implementation works does help since I don&#39;t remember this constraint<br>
&gt; being discussed in the manual/docs (but I may have missed something<br>
&gt; there?). Initially it also wasn&#39;t clear that these destinations<br>
&gt; weren&#39;t combined at a high level in the implementation so that they,<br>
&gt; for example, operated within a &quot;pipeline&quot; and thereby enforced a<br>
&gt; &quot;single-writer&quot; paradigm. Either way, and as you say, this is required<br>
&gt; for file destinations, but<br>
&gt;&gt;     certainly not for network destinations (even in the disconnect case).<br>
&gt;&gt;<br>
&gt;&gt;     In fact, my log() statements with the referenced destinations<br>
&gt;&gt; are<br>
&gt; complex enough that I may need to rely on the multiple network<br>
&gt; destination specification capability anyway since combining these as<br>
&gt; you suggest would make maintenance of the configuration even more<br>
&gt; difficult (there&#39;s a tangle of rules/conditions associated with one of the destination log() statements).<br>
&gt;&gt;<br>
&gt;&gt;&gt;&gt; 3. Other blocks do not require that their contents contain unique<br>
&gt;&gt;&gt;&gt; statements. For example, I can create filter blocks that have<br>
&gt;&gt;&gt;&gt; statements that intersect. Why not destination blocks?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Because filters generally don&#39;t have state, so they can&#39;t conflict<br>
&gt;&gt;&gt; with each other, they can work independently. For<br>
&gt;&gt; destinations, that&#39;s<br>
&gt; not the case. For example, if you&#39;d have something like this:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; destination d_1 { file(&quot;/var/log/some.log&quot;); udp(...); }; destination<br>
&gt;&gt;&gt; d_2 { file(&quot;/var/log/some.log&quot;); tcp(...); };<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; That would break horribly, as two threads would try to write to the<br>
&gt;&gt;&gt; same file, and would write over each other, resulting in garbage. That<br>
&gt;&gt;&gt; doesn&#39;t happen with network destinations, but those have different<br>
&gt;&gt;&gt; issues. For example, if a network target goes down, and you had<br>
&gt;&gt;&gt; duplicates in your config, then they&#39;d notice the target<br>
&gt;&gt; being down<br>
&gt; separately, increasing the chance you&#39;ll loose logs. If you had one<br>
&gt; target, and bound it to various sources in a log{} statement instead,<br>
&gt; then you&#39;d only have one instance of the driver.<br>
&gt;&gt;<br>
&gt;&gt;     I&#39;m wondering if there might be other issues associated with<br>
&gt;&gt; multiple<br>
&gt; (common) network destinations (you only mention one as an example)?<br>
&gt; The example you mention isn&#39;t relevant in my case. Whether the network<br>
&gt; destination is a combined statement/driver or not the payload includes<br>
&gt; single packets, which are written separately, no? If this is the case<br>
&gt; it wouldn&#39;t matter which packet send detected the network error - one<br>
&gt; or the other would get lost in both cases.<br>
&gt;&gt;<br>
&gt;&gt;     Thanks,<br>
&gt;&gt;     -David<br>
&gt; __________________________________________________________<br>
&gt; ____________________<br>
&gt;&gt;     Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
&gt;&gt;     Documentation:<br>
&gt;&gt;     <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
&gt;&gt;     FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Bazsi<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; __________________________________________________________<br>
&gt; ____________<br>
&gt;&gt; ________ Member info:<br>
&gt;&gt; <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
&gt;&gt; Documentation:<br>
&gt;&gt; <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
&gt;&gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
______________________________________________________________________________<br>
Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a><br>
<br>
</blockquote></div>