<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="markdown-body"></div>
<div class="markdown-body">
<h1>3.33.1</h1>
<h2>Highlights</h2>
<ul>
<li>
<p>MQTT destination</p>
<p>The new <code>mqtt()</code> destination can be used to publish messages using the MQTT protocol.<br>
Currently MQTT 3.1.1 and 3.1 are supported.</p>
<p>Supported transports: <code>tcp</code>, <code>ws</code>.</p>
<p>Example config:</p>
<div class="snippet-clipboard-content position-relative">
<pre><code>destination {
  mqtt{
    address("tcp://localhost:1883"),
    topic("syslog/$HOST"),
    fallback-topic("syslog/fallback"))
  };
};
</code></pre>
</div>
<p>Note: MQTT 5.0 and TLS (<code>ssl://</code>, <code>wss://</code>) are currently not supported.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3703" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3703/hovercard">#3703</a>)</p>
</li></ul>
<div><br>
</div>
<ul>
<li>
<p><code>discord()</code> destination</p>
<p>syslog-ng now has a webhook-based Discord destination.<br>
Example usage:</p>
<div class="snippet-clipboard-content position-relative">
<pre><code>destination {
  discord(url("https://discord.com/api/webhooks/x/y"));
};
</code></pre>
</div>
<p>The following options can be used to customize the destination further:</p>
<p><code>avatar-url()</code>, <code>username("$HOST-bot")</code>, <code>tts(true)</code>,
<code>template("${MSG:-[empty message]}")</code>.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3717" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3717/hovercard">#3717</a>)</p>
</li></ul>
<h2>Features</h2>
<ul>
<li>
<p>kafka-c: batching support in case of sync-send(yes)</p>
<div class="snippet-clipboard-content position-relative">
<pre><code>kafka-c(
 bootstrap-server("localhost:9092")
 topic("syslog-ng")
 sync-send(yes)
 batch-lines(10)
 batch-timeout(10000)
);
</code></pre>
</div>
<p>Note1: batch-lines are accepted in case of sync-send(no), but no batching is done.<br>
Note2: messages are still sent one at a time to kafka, the batch yields multiple message per transaction.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3699" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3699/hovercard">#3699</a>)</p>
</li><li>
<p>kafka-c: sync-send(yes) enables synchronous message delivery, reducing the possibility of message loss.</p>
<div class="snippet-clipboard-content position-relative">
<pre><code>kafka-c(
  bootstrap-server("localhost:9092")
  topic("syslog-ng")
  sync-send(yes)
);
</code></pre>
</div>
<p>Warning: this option also reduces significantly the performance of kafka-c driver.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3681" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3681/hovercard">#3681</a>)</p>
</li><li>
<p><code>disk-buffer</code>: Now we optimize the file truncating frequency of disk-buffer.</p>
<p>The new behavior saves IO time, but loses some disk space, which is configurable with a new option.<br>
The new option in the config is settable at 2 places:</p>
<ul>
<li><code>truncate-size-ratio()</code> in the <code>disk-buffer()</code> block, which affects the given disk-buffer.</li><li><code>disk-buffer(truncate-size-ratio())</code> in the global <code>options</code> block, which affects every disk-buffer<br>
which did not set <code>truncate-size-ratio()</code> itself.<br>
The default value is 0.01, which operates well with most disk-buffers.</li></ul>
<p>If the possible size reduction of the truncation does not reach <code>truncate-size-ratio()</code> x
<code>disk-buf-size()</code>,<br>
we do not truncate the disk-buffer.</p>
<p>To completely turn off truncating (maximal disk space loss, maximal IO time saved) set
<code>truncate-size-ratio(1)</code>,<br>
or to mimic the old behavior (minimal disk space loss, minimal IO time saved) set
<code>truncate-size-ratio(0)</code>.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3689" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3689/hovercard">#3689</a>)</p>
</li></ul>
<h2>Bugfixes</h2>
<ul>
<li>
<p><code>syslog-format</code>: fixing the check-hostname(yes|no) option</p>
<p>The check-hostname(yes|no) option detected every value as invalid, causing a parse error when enabled.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3690" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3690/hovercard">#3690</a>)</p>
</li><li>
<p><code>disk-buffer()</code>: fix crash when switching between disk-based and memory queues</p>
<p>When a disk-buffer was removed from the configuration and the new config was<br>
applied by reloading syslog-ng, a crash occurred.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3700" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3700/hovercard">#3700</a>)</p>
</li><li>
<p><code>logpath</code>: Fixed a message write protection bug, where message modifications (rewrite rules, parsers, etc.)<br>
leaked through preceding path elements. This may have resulted not only in unwanted/undefined message modification,<br>
but in certain cases crash as well.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3708" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3708/hovercard">#3708</a>)</p>
</li><li>
<p><code>mongodb()</code>: fix crash with older mongo-c-driver versions</p>
<p>syslog-ng crashed (was aborted) when the <code>mongodb()</code> destination was used with<br>
older mongo-c-driver versions (< v1.11.0).<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3677" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3677/hovercard">#3677</a>)</p>
</li><li>
<p><code>java()</code>: fix debug logging of Java-based destinations</p>
<p>Java debug logging was not enabled previously when syslog-ng was started in debug/trace mode. This has been fixed.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3679" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3679/hovercard">#3679</a>)</p>
</li><li>
<p>kafka-c: fixed a hang during shutdown/reload, when multiple workers is used (workers() option is set to 2 or higher) and the librdkafka internal queue is filled.<br>
(error message was <code>kafka: failed to publish message; topic='test-topic', error='Local: Queue full'</code>)<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3711" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3711/hovercard">#3711</a>)</p>
</li></ul>
<h2>Packaging</h2>
<ul>
<li>kafka: minimum version of librdkafka is changed from 1.0.0 to 1.1.0<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3706" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3706/hovercard">#3706</a>)</li><li>configure: now supporting python with two digit minor version<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3713" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3713/hovercard">#3713</a>)</li></ul>
<h2>Other changes</h2>
<ul>
<li>kafka: removed some deprecated options: client-lib-dir(), option(), template(), kafka-bootstrap-servers()<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3698" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3698/hovercard">#3698</a>)</li><li>kafka: properties-file() option is deprecated. Please list the librdkafka properties in the config() option in syslog-ng's configuration.<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3698" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3698/hovercard">#3698</a>)</li><li><code>smtp()</code>: libesmtp is now detected via pkg-config<br>
(<a href="https://github.com/syslog-ng/syslog-ng/pull/3669" data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/3669/hovercard">#3669</a>)</li></ul>
<h2>Credits</h2>
<p>syslog-ng is developed as a community project, and as such it relies<br>
on volunteers, to do the work necessarily to produce syslog-ng.</p>
<p>Reporting bugs, testing changes, writing code or simply providing<br>
feedback are all important contributions, so please if you are a user<br>
of syslog-ng, contribute.</p>
<p>We would like to thank the following people for their contribution:</p>
<p>Andras Mitzki, Antal Nemes, Attila Szakacs, Balazs Scheidler,<br>
Balázs Barkó, Benedek Cserhati, Gabor Nagy, L4rS6, Laszlo Budai, Laszlo Szemere,<br>
LittleFish33, László Várady, Norbert Takacs, Peter Czanik, Peter Kokai,<br>
Todd C. Miller, TomᚠMózes, Zoltan Pallagi</p>
</div>
<br>
</div>
</body>
</html>