syslog-ng version 4.9.0 is now available

"Peter Czanik (pczanik)" <[email protected]> Thu, 17 Jul 2025 13:19:33 +0000
Newsgroups gmane.comp.syslog-ng
Message-ID <CO1PR19MB5126B78F242320C329054B7B8B51A@CO1PR19MB5126.namprd19.prod.outlook.com>
--===============1188969999955802624==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_CO1PR19MB5126B78F242320C329054B7B8B51ACO1PR19MB5126namp_"

--_000_CO1PR19MB5126B78F242320C329054B7B8B51ACO1PR19MB5126namp_
Content-Type: text/plain; charset="windows-1250"
Content-Transfer-Encoding: quoted-printable

Hi,

I am happy to announce that version 4.9.0 of syslog-ng is now available. Th=
anks everyone who contributed code, documentation, testing, or in any other=
 way.

Peter

4.9.0
Highlights

  *
stats-exporter: Added two new sources, stats-exporter() and stats-exporter-=
dont-log(), which directly serve the output of syslog-ng-ctl stats and sysl=
og-ng-ctl query to a http scraper. The only difference is that stats-export=
er-dont-log() suppresses log messages from incoming scraper requests, ensur=
ing no messages appear in the log path. Meanwhile, stats-exporter() logs un=
parsed messages, storing incoming scraper HTTP requests in the MSG field.
Example usage for a Prometheus Scraper which logs the HTTP request of the s=
craper to /var/log/scraper.log:

@version: 4.9
@include "scl.conf"

source s_prometheus_stat {
    stats-exporter(
        ip("0.0.0.0")
        port(8080)
        stat-type("query")
        stat-query("*")
        scrape-freq-limit(30)
        single-instance(yes)
    );
};

log {
    source(s_prometheus_stat);
    destination { file(/var/log/scraper.log); };
};


Example usage for a generic HTTP Scraper which sends e.g. the GET /stats HT=
TP/1.1 HTTP request to get statistics of syslog-ng, do not want to log or f=
urther process the HTTP requests in the log pipe, and needs the response in=
 CSV format:

@version: 4.9
@include "scl.conf"

source s_scraper_stat {
    stats-exporter-dont-log(
        ip("0.0.0.0")
        port(8080)
        stat-type("stats")
        stat-format("csv")
        scrape-pattern("GET /stats*")
        scrape-freq-limit(30)
        single-instance(yes)
    );
};

log {
    source(s_scraper_stat);
};


Note: A destination is not required for this to work; the stats-exporter() =
source will respond to the scraper regardless of whether a destination is p=
resent in the log path.
Available options:
stat-type(string) - query or stats, just like for the syslog-ng-ctl command=
 line tool, see there for the details
stat-query(string) - the query regex string that can be used to filter the =
output of a query type request
stat-format(string) - the output format of the given stats request, like th=
e -m option of the syslog-ng-ctl command line tool
scrape-pattern(string) =96 the pattern used to match the HTTP header of inc=
oming scraping requests. A stat response will be generated and sent only if=
 the header matches the pattern string
scrape-freq-limit(non-negative-int) - limits the frequency of repeated scra=
per requests to the specified number of seconds. Any repeated request withi=
n this period will be ignored. A value of 0 means no limit
single-instance(yes/no) - if set to yes only one scraper connection and req=
uest will be allowed at once
(#5259<https://github.com/syslog-ng/syslog-ng/pull/5259>)
  *
syslog() source driver: add support for RFC6587 style auto-detection of
octet-count based framing to avoid confusion that stems from the sender
using a different protocol to the server. This behaviour can be enabled
by using transport(auto) option for the syslog() source.
(#5322<https://github.com/syslog-ng/syslog-ng/pull/5322>)
  *
wildcard-file: Added inotify-based regular file change detection using the =
existing inotify-based directory monitor.
This improves efficiency on OSes like Linux, where only polling was availab=
le before, significantly reducing CPU usage while enhancing change detectio=
n accuracy.
To enable this feature, inotify kernel support is required, along with moni=
tor-method() set to inotify or auto, and follow-freq() set to 0.
(#5315<https://github.com/syslog-ng/syslog-ng/pull/5315>)

Features

  *
cisco: Added support for Cisco Nexus NXOS 9.3 syslog format.
The parser now recognises NXOS 9.3 timestamps in YYYY MMM DD HH:MM:SS forma=
t and handles the different
sequence number prefix (: instead of seqno: ) used by NXOS 9.3 compared to =
traditional IOS formats.
Example Cisco configuration:
Example syslog-ng configuration:

@include "scl.conf"

source s_cisco {
    network(ip(0.0.0.0) transport("udp") port(2000) flags(no-parse));
};

parser p_cisco {
    cisco-parser();
};

destination d_placeholder {
    # Define your destination here
};

log {
    source(s_cisco);
    parser(p_cisco);
    destination(d_placeholder);
};


(#5412<https://github.com/syslog-ng/syslog-ng/pull/5412>)
     *   NXOS: (config)# logging server <syslog-ng-server-ip> port 2000
     *   IOS: (config)# logging host <syslog-ng-server-ip> transport udp po=
rt 2000
  *
bigquery(), google-pubsub-grpc(): Added service-account() authentication op=
tion.
Example usage:

destination {
    google-pubsub-grpc(
        project("test")
        topic("test")
        auth(service-account(key ("path_to_service_account_key.json")))
    );
};


Note: In contrary to the http() destination's similar option,
we do not need to manually set the audience here as it is
automatically recognized by the underlying gRPC API.
(#5270<https://github.com/syslog-ng/syslog-ng/pull/5270>)
  *
gRPC based destinations: Added response-action() option
With this option, it is possible to fine tune how syslog-ng
behaves in case of different gRPC results.
Supported by the following destination drivers:
Supported gRPC results:
Supported actions:
Usage:

google-pubsub-grpc(
  project("my-project")
  topic("my-topic")
  response-action(
    not-found =3D> disconnect
    unavailable =3D> drop
  )
);


(#5332<https://github.com/syslog-ng/syslog-ng/pull/5332>)
     *   opentelemetry()
     *   loki()
     *   bigquery()
     *   clickhouse()
     *   google-pubsub-grpc()
     *   ok
     *   unavailable
     *   cancelled
     *   deadline-exceeded
     *   aborted
     *   out-of-range
     *   data-loss
     *   unknown
     *   invalid-argument
     *   not-found
     *   already-exists
     *   permission-denied
     *   unauthenticated
     *   failed-precondition
     *   unimplemented
     *   internal
     *   resource-exhausted
     *   disconnect
     *   drop
     *   retry
     *   success
  *
s3: Added two new options
Example:

s3(
        url("http://localhost:9000")
        bucket("testbucket")
        object_key("testobject")
        access_key("<ACCESS_KEY_ID>")
        secret_key("<SECRET_ACCESS_KEY>")
        content_type("text/plain")
        use_checksum("when_required")
);


(#5286<https://github.com/syslog-ng/syslog-ng/pull/5286>)
     *   content-type(): users now can change the content type of the objec=
ts uploaded by syslog-ng.
     *   use_checksum(): This option allows the users to change the default=
 checksum settings for
S3 compatible solutions that don't support checksums. Requires botocore 1.3=
6 or above. Acceptable values are
when_supported (default) and when_required.
  *
loki(): Added batch-bytes() and compression() options.
(#5174<https://github.com/syslog-ng/syslog-ng/pull/5174>)
  *
syslog-ng-ctl: Formatting the output of the syslog-ng-ctl stats and syslog-=
ng-ctl query commands is unified.
Both commands got a new --format (-m) argument that can control the output =
format of the given stat or query. The following formats are supported:
     *   kv - the legacy key-value-pairs e.g. center.queued.processed=3D0 (=
only for the query command yet)
     *   csv - comma separated values e.g. center;;queued;a;processed;0
     *   prometheus - the prometheus scraper ready format e.g. syslogng_cen=
ter_processed{stat_instance=3D"queued"} 0
(#5248<https://github.com/syslog-ng/syslog-ng/pull/5248>)
  *
network(), syslog() sources: add $PEERIP and $PEERPORT macros
The $PEERIP and $PEERPORT macros always display the address and port of the=
 direct sender.
In most cases, these values are identical to $SOURCEIP and $SOURCEPORT.
However, when dealing with proxied protocols, $PEERIP and $PEERPORT reflect=
 the proxy's address and port,
while $SOURCEIP and $SOURCEPORT indicate the original source of the message=
.
(#5291<https://github.com/syslog-ng/syslog-ng/pull/5291>)
  *
webhook(),opentelemetry() sources: support input_event_bytes metrics
(#5324<https://github.com/syslog-ng/syslog-ng/pull/5324>)
  *
freebsd-audit(): added a simple source SCL to collect FreeBSD audit logs us=
ing the built-in praudit program
https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-s=
yslog-ng
(#5383<https://github.com/syslog-ng/syslog-ng/pull/5383>)
  *
webhook(): headers support
include-request-headers(yes) stores request headers under the ${webhook.hea=
ders} key, allowing further processing
proxy-header("x-forwarded-for") helps retain the sender's original IP and t=
he proxy's IP address
($SOURCEIP, $PEERIP).
(#5333<https://github.com/syslog-ng/syslog-ng/pull/5333>)
  *
check-program: Introduced as a flag for global or source options.
By default, this flag is set to false. Enabling the check-program flag trig=
gers program name validation for RFC3164 messages. Valid program names must=
 adhere to the following criteria:
Contain only these characters: [a-zA-Z0-9-_/().]
Include at least one alphabetical character.
If a program name fails validation, it will be considered part of the log m=
essage.
Example:

source { network(flags(check-hostname, check-program)); };


(#5264<https://github.com/syslog-ng/syslog-ng/pull/5264>)
  *
syslog(transport(proxied-*)) and network(transport(proxied-*)): changed
where HAProxy transport saved the original source and destination addresses=
.
Instead of using dedicated PROXIED_* name-value pairs, use the usual
$SOURCEIP, $SOURCEPORT, $DESTIP and $DESTPORT macros, making haproxy
based connections just like native ones.
$SOURCEPORT: added new macro which expands to the source port of the peer.
(#5305<https://github.com/syslog-ng/syslog-ng/pull/5305>)
  *
opentelemetry(), syslog-ng-otlp(): Added keep-alive() options.
Keepalive can be configured with the time(), timeout()
and max-pings-without-data() options of the keep-alive() block.

opentelemetry(
    ...
    keep-alive(time(20000) timeout(10000) max-pings-without-data(0))
);


(#5174<https://github.com/syslog-ng/syslog-ng/pull/5174>)
  *
bigquery(): Added auth() options.
Similarly to other gRPC based destination drivers, the bigquery()
destination now accepts different authentication methods, like
adc(), alts(), insecure() and tls().

bigquery (
    ...
    auth(
        tls(
            ca-file("/path/to/ca.pem")
            key-file("/path/to/key.pem")
            cert-file("/path/to/cert.pem")
        )
    )
);


(#5174<https://github.com/syslog-ng/syslog-ng/pull/5174>)
  *
cloud-auth: Added azure-monitor() destination
Added oauth2 authentication for azure monitor destinations.
Example usage:

azure-monitor(
     dcr-id("dcr id")
     dce-uri("dce uri")
     stream_name("stream name")
     auth(
          tenant-id("tenant id")
          app-id("app id")
          app-secret("app secret")
     )
)


(#5293<https://github.com/syslog-ng/syslog-ng/pull/5293>)
  *
multi-line-mode(): Added a new mutiline detection mode empty-line-separated=
 that, as its name suggests, reads and treats all messages as one till it r=
eceives an empty line (which contains only a \r, \n or \r\n sequence).
(#5259<https://github.com/syslog-ng/syslog-ng/pull/5259>)
  *
google-pubsub-grpc(): Added a new destination that sends logs to Google Pub=
/Sub via the gRPC interface.
Example config:

google-pubsub-grpc(
  project("my_project")
  topic($topic)

  data($MESSAGE)
  attributes(
    timestamp =3D> $S_ISODATE,
    host =3D> $HOST,
  )

  workers(4)
  batch-timeout(1000) # ms
  batch-lines(1000)
);


The project() and topic() options are templatable.
The default service endpoint can be changed with the service_endpoint() opt=
ion.
(#5266<https://github.com/syslog-ng/syslog-ng/pull/5266>)
  *
ivykis: We have switched to our own fork<https://github.com/balabit/ivykis>=
 of ivykis as the source for builds when using syslog-ng=92s internal ivyki=
s option (--with-ivykis=3Dinternal in autotools or -DIVYKIS_SOURCE=3Dintern=
al in CMake).
We recommend switching to this internal version, as it includes new feature=
s not available in the original version<https://github.com/buytenh/ivykis> =
and likely never will be.
(#5307<https://github.com/syslog-ng/syslog-ng/pull/5307>)
  *
ivykis: Fixed and merged the in development phase io_uring based polling me=
thod solution to our ivykis fork<https://github.com/balabit/ivykis>.
This is am experimental integration and not selected by default, you must a=
ctivate it directly either using the IV_EXCLUDE_POLL_METHOD or IV_SELECT_PO=
LL_METHOD as described here<https://syslog-ng.github.io/admin-guide/060_Sou=
rces/020_File/001_File_following>.
(#5312<https://github.com/syslog-ng/syslog-ng/pull/5312>)
  *
file(), wildcard-file(): Added follow-method() option.
|Accepted values:| legacy | inotify | poll | system |
This option controls how syslog-ng will follow file changes.
The default legacy mode preserves the pre-4.9 version file follow-mode beha=
vior of syslog-ng, which is based on the value of follow-freq().
The poll value forces syslog-ng to poll for file changes at the interval sp=
ecified by the monitor-freq() option, even if a more efficient method (such=
 as inotify or kqueue) is available.
If inotify is selected and supported by the platform, syslog-ng uses it to =
detect changes in source files. This is the most efficient and least resour=
ce-consuming option available on Linux for regular files.
The system value will use system poll methods (via ivykis) like port-timer =
port dev_poll epoll-timerfd epoll kqueue ppoll poll and uring. For more inf=
ormation about how to control the system polling methods used, see How cont=
ent changes are followed in file() and wildcard-file() sources<https://sysl=
og-ng.github.io/admin-guide/060_Sources/020_File/001_File_following>.
(#5338<https://github.com/syslog-ng/syslog-ng/pull/5338>)
  *
opentelemetry(), loki() destination: Add support for templated header() val=
ues
(#5184<https://github.com/syslog-ng/syslog-ng/pull/5184>)

Bugfixes

  *
syslog-ng-otlp() destination: Fixed a crash.
(#5267<https://github.com/syslog-ng/syslog-ng/pull/5267>)
  *
Fixed some time parsing and time formatting issues.
(#5386<https://github.com/syslog-ng/syslog-ng/pull/5386>)
  *
syslogformat: Fix integer overflow on set pri
(#5254<https://github.com/syslog-ng/syslog-ng/pull/5254>)
  *
network(), syslog(): Fixed a potential crash for TLS destinations during re=
load
In case of a TLS connection, if the handshake didn't happen before reloadin=
g syslog-ng,
it crashed on the first message sent to that destination.
(#5303<https://github.com/syslog-ng/syslog-ng/pull/5303>)
  *
collectd(): fix not reading server responses
(#5390<https://github.com/syslog-ng/syslog-ng/pull/5390>)
  *
metrics: syslog-ng-ctl --reset will no longer reset Prometheus metrics
(#5261<https://github.com/syslog-ng/syslog-ng/pull/5261>)
  *
rate-limit(): fix precision issue that could occur at a very low message ra=
te
(#5346<https://github.com/syslog-ng/syslog-ng/pull/5346>)
  *
network(), syslog() sources and destinations: fix TCP/TLS shutdown
(#5271<https://github.com/syslog-ng/syslog-ng/pull/5271>)
  *
http: Fixed a batching related bug that happened with templated URLs and a =
single worker.
(#5281<https://github.com/syslog-ng/syslog-ng/pull/5281>)
  *
network(), syslog() destinations: handle async TLS messages (KeyUpdate, etc=
.)
(#5390<https://github.com/syslog-ng/syslog-ng/pull/5390>)

Notes to developers

  *   editorconfig: configure supported editors for the project's style
(#5331<https://github.com/syslog-ng/syslog-ng/pull/5331>)

Other changes

  *
java-modules: Upgrade java common and hdfs dependencies.
(#5366<https://github.com/syslog-ng/syslog-ng/pull/5366>)
  *
java-modules: Remove depricated java destinations: elasticsearch2, kafka-ja=
va and the java-http.
The following destinations can be used instead:
     *   elasticsearch2 - Both elastic-datastream()<https://syslog-ng.githu=
b.io/admin-guide/070_Destinations/035_elasticsearch-datastream/README> or t=
he elastic-http()<https://syslog-ng.github.io/admin-guide/070_Destinations/=
030_Elasticsearch-http/README> can be used.
     *   kafka-java - The C based kafka-c()<https://syslog-ng.github.io/adm=
in-guide/070_Destinations/100_Kafka-c/README> destination can be used inste=
ad. To help with migration check out the Shifting from Java implementation =
to C implementation<https://syslog-ng.github.io/admin-guide/070_Destination=
s/100_Kafka-c/001_Shifting_from_Java_to_C> page.
     *   java-http - the C based http()<https://syslog-ng.github.io/admin-g=
uide/070_Destinations/081_http/README> destination can be used.
(#5366<https://github.com/syslog-ng/syslog-ng/pull/5366>)

Credits
syslog-ng is developed as a community project, and as such it relies
on volunteers, to do the work necessarily to produce syslog-ng.
Reporting bugs, testing changes, writing code or simply providing
feedback are all important contributions, so please if you are a user
of syslog-ng, contribute.
We would like to thank the following people for their contribution:
Alex Becker, Attila Szakacs, Balazs Scheidler, B=E1lint Horv=E1th,
David Mandelberg, Eli Schwartz, Hofi, Kov=E1cs Gerg=F5 Ferenc,
L=E1szl=F3 V=E1rady, Peter Czanik (CzP), Petr Vaganov,
Shiraz, Szilard Parrag, Tamas Pal, Tam=E1s Kosztyu, shifter


Peter Czanik (CzP) <[email protected]>
Balabit (a OneIdentity company) / syslog-ng upstream
https://syslog-ng.com/community/
https://twitter.com/PCzanik


--_000_CO1PR19MB5126B78F242320C329054B7B8B51ACO1PR19MB5126namp_
Content-Type: text/html; charset="windows-1250"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dwindows-1=
250">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
Hi,</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
I am happy to announce that version 4.9.0 of syslog-ng is now available. Th=
anks everyone who contributed code, documentation, testing, or in any other=
 way.</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
Peter</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>4.9.0</b></div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>Highlights</b></div>
<ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>stats-exporter</code>: Added two new sources,
<code>stats-exporter()</code>&nbsp;and <code>stats-exporter-dont-log()</cod=
e>, which directly serve the output of
<code>syslog-ng-ctl stats</code>&nbsp;and <code>syslog-ng-ctl query</code>&=
nbsp;to a http scraper. The only difference is that
<code>stats-exporter-dont-log()</code>&nbsp;suppresses log messages from in=
coming scraper requests, ensuring no messages appear in the log path. Meanw=
hile,
<code>stats-exporter()</code>&nbsp;logs unparsed messages, storing incoming=
 scraper HTTP requests in the
<code>MSG</code>&nbsp;field.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample usage for a Prometheus Scraper which logs the HTTP request of the sc=
raper to /var/log/scraper.log:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>@version: 4.9=0A=
@include &quot;scl.conf&quot;=0A=
=0A=
source s_prometheus_stat {=0A=
 &nbsp; &nbsp;stats-exporter(=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;ip(&quot;0.0.0.0&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;port(8080)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;stat-type(&quot;query&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;stat-query(&quot;*&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;scrape-freq-limit(30)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;single-instance(yes)=0A=
 &nbsp; &nbsp;);=0A=
};=0A=
=0A=
log {=0A=
 &nbsp; &nbsp;source(s_prometheus_stat);=0A=
 &nbsp; &nbsp;destination { file(/var/log/scraper.log); };=0A=
};=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample usage for a generic HTTP Scraper which sends e.g. the
<code>GET /stats HTTP/1.1</code> HTTP request to get statistics of syslog-n=
g, do not want to log or further process the HTTP requests in the log pipe,=
 and needs the response in CSV format:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>@version: 4.9=0A=
@include &quot;scl.conf&quot;=0A=
=0A=
source s_scraper_stat {=0A=
 &nbsp; &nbsp;stats-exporter-dont-log(=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;ip(&quot;0.0.0.0&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;port(8080)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;stat-type(&quot;stats&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;stat-format(&quot;csv&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;scrape-pattern(&quot;GET /stats*&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;scrape-freq-limit(30)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;single-instance(yes)=0A=
 &nbsp; &nbsp;);=0A=
};=0A=
=0A=
log {=0A=
 &nbsp; &nbsp;source(s_scraper_stat);=0A=
};=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">N=
ote: A destination is not required for this to work; the
<code>stats-exporter()</code>&nbsp;source will respond to the scraper regar=
dless of whether a destination is present in the log path.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">A=
vailable options:</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>stat-type(string)</code>&nbsp;-
<code>query</code>&nbsp;or <code>stats</code>, just like for the <code>sysl=
og-ng-ctl</code>&nbsp;command line tool, see there for the details<br>
<code>stat-query(string)</code>&nbsp;- the query regex string that can be u=
sed to filter the output of a
<code>query</code>&nbsp;type request<br>
<code>stat-format(string)</code>&nbsp;- the output format of the given stat=
s request, like the
<code>-m</code>&nbsp;option of the <code>syslog-ng-ctl</code>&nbsp;command =
line tool<br>
<code>scrape-pattern(string)</code>&nbsp;=96 the pattern used to match the =
HTTP header of incoming scraping requests. A stat response will be generate=
d and sent only if the header matches the pattern string<br>
<code>scrape-freq-limit(non-negative-int)</code>&nbsp;- limits the frequenc=
y of repeated scraper requests to the specified number of seconds. Any repe=
ated request within this period will be ignored. A value of 0 means no limi=
t<br>
<code>single-instance(yes/no)</code>&nbsp;- if set to <code>yes</code>&nbsp=
;only one scraper connection and request will be allowed at once<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5259/hovercard" class=3D"OWAAutoLink" id=3D"OWA914d3223-3ae6-=
fcea-2932-f914391330d7" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5259">#5259</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>syslog()</code>&nbsp;source driver: add support for RFC6587 style auto=
-detection of<br>
octet-count based framing to avoid confusion that stems from the sender<br>
using a different protocol to the server. This behaviour can be enabled<br>
by using <code>transport(auto)</code>&nbsp;option for the <code>syslog()</c=
ode>&nbsp;source.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5322/hovercard" class=3D"OWAAutoLink" id=3D"OWAea867262-821a-=
c94b-9a2a-db360bcd9f40" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5322">#5322</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>wildcard-file</code>: Added inotify-based regular file change detectio=
n using the existing inotify-based directory monitor.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
his improves efficiency on OSes like Linux, where only polling was availabl=
e before, significantly reducing CPU usage while enhancing change detection=
 accuracy.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
o enable this feature, inotify kernel support is required, along with
<code>monitor-method()</code>&nbsp;set to <code>inotify</code>&nbsp;or <cod=
e>auto</code>, and
<code>follow-freq()</code>&nbsp;set to 0.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5315/hovercard" class=3D"OWAAutoLink" id=3D"OWAf2e3137f-1c1d-=
b053-15c8-b08cece13990" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5315">#5315</a>)</div>
</li></ul>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>Features</b></div>
<ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>cisco</code>: Added support for Cisco Nexus NXOS 9.3 syslog format.</d=
iv>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
he parser now recognises NXOS 9.3 timestamps in
<code>YYYY MMM DD HH:MM:SS</code>&nbsp;format and handles the different<br>
sequence number prefix (<code>: </code>instead of <code>seqno: </code>) use=
d by NXOS 9.3 compared to traditional IOS formats.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample Cisco configuration:</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample syslog-ng configuration:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>@include &quot;scl.conf&quot;=0A=
=0A=
source s_cisco {=0A=
 &nbsp; &nbsp;network(ip(0.0.0.0) transport(&quot;udp&quot;) port(2000) fla=
gs(no-parse));=0A=
};=0A=
=0A=
parser p_cisco {=0A=
 &nbsp; &nbsp;cisco-parser();=0A=
};=0A=
=0A=
destination d_placeholder {=0A=
 &nbsp; &nbsp;# Define your destination here=0A=
};=0A=
=0A=
log {=0A=
 &nbsp; &nbsp;source(s_cisco);=0A=
 &nbsp; &nbsp;parser(p_cisco);=0A=
 &nbsp; &nbsp;destination(d_placeholder);=0A=
};=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"issue" data-hovercard-url=3D"/syslog-ng/syslog-ng=
/issues/5412/hovercard" class=3D"OWAAutoLink" id=3D"OWAce240cde-6385-28e9-3=
603-e247f105acfb" href=3D"https://github.com/syslog-ng/syslog-ng/pull/5412"=
>#5412</a>)</div>
</li><ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
NXOS: <code>(config)# logging server &lt;syslog-ng-server-ip&gt; port 2000<=
/code></li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;,=
 &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
IOS: <code>(config)# logging host &lt;syslog-ng-server-ip&gt; transport udp=
 port 2000</code></li></ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">b=
igquery(), google-pubsub-grpc(): Added service-account() authentication opt=
ion.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample usage:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>destination {=0A=
 &nbsp; &nbsp;google-pubsub-grpc(=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;project(&quot;test&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;topic(&quot;test&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;auth(service-account(key (&quot;path_to_service=
_account_key.json&quot;)))=0A=
 &nbsp; &nbsp;);=0A=
};=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">N=
ote: In contrary to the
<code>http()</code>&nbsp;destination's similar option,<br>
we do not need to manually set the audience here as it is<br>
automatically recognized by the underlying gRPC API.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5270/hovercard" class=3D"OWAAutoLink" id=3D"OWA9ecdd0ae-5380-=
241a-436a-d3608224e8bd" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5270">#5270</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">g=
RPC based destinations: Added
<code>response-action()</code>&nbsp;option</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">W=
ith this option, it is possible to fine tune how syslog-ng<br>
behaves in case of different gRPC results.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">S=
upported by the following destination drivers:</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">S=
upported gRPC results:</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">S=
upported actions:</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">U=
sage:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>google-pubsub-grpc(=0A=
 &nbsp;project(&quot;my-project&quot;)=0A=
 &nbsp;topic(&quot;my-topic&quot;)=0A=
 &nbsp;response-action(=0A=
 &nbsp; &nbsp;not-found =3D&gt; disconnect=0A=
 &nbsp; &nbsp;unavailable =3D&gt; drop=0A=
 &nbsp;)=0A=
);=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/sy=
slog-ng/pull/5332/hovercard" class=3D"OWAAutoLink" id=3D"OWAda4d7b0b-c979-f=
5bb-42fd-256728865238" href=3D"https://github.com/syslog-ng/syslog-ng/pull/=
5332">#5332</a>)</div>
</li><ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<code>opentelemetry()</code></li><li style=3D"font-family: Aptos, &quot;Apt=
os_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica,=
 sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>loki()</code></li><li style=3D"font-family: Aptos, &quot;Aptos_Embedd=
edFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-ser=
if; font-size: 12pt; color: rgb(0, 0, 0);">
<code>bigquery()</code></li><li style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>clickhouse()</code></li><li style=3D"font-family: Aptos, &quot;Aptos_=
EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sa=
ns-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>google-pubsub-grpc()</code></li><li style=3D"font-family: Aptos, &quo=
t;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helve=
tica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
ok</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &qu=
ot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12=
pt; color: rgb(0, 0, 0);">
unavailable</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&q=
uot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font=
-size: 12pt; color: rgb(0, 0, 0);">
cancelled</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quo=
t;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-s=
ize: 12pt; color: rgb(0, 0, 0);">
deadline-exceeded</li><li style=3D"font-family: Aptos, &quot;Aptos_Embedded=
Font&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif=
; font-size: 12pt; color: rgb(0, 0, 0);">
aborted</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;=
, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-siz=
e: 12pt; color: rgb(0, 0, 0);">
out-of-range</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&=
quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; fon=
t-size: 12pt; color: rgb(0, 0, 0);">
data-loss</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quo=
t;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-s=
ize: 12pt; color: rgb(0, 0, 0);">
unknown</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;=
, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-siz=
e: 12pt; color: rgb(0, 0, 0);">
invalid-argument</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedF=
ont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif;=
 font-size: 12pt; color: rgb(0, 0, 0);">
not-found</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quo=
t;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-s=
ize: 12pt; color: rgb(0, 0, 0);">
already-exists</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFon=
t&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; f=
ont-size: 12pt; color: rgb(0, 0, 0);">
permission-denied</li><li style=3D"font-family: Aptos, &quot;Aptos_Embedded=
Font&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif=
; font-size: 12pt; color: rgb(0, 0, 0);">
unauthenticated</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFo=
nt&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; =
font-size: 12pt; color: rgb(0, 0, 0);">
failed-precondition</li><li style=3D"font-family: Aptos, &quot;Aptos_Embedd=
edFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-ser=
if; font-size: 12pt; color: rgb(0, 0, 0);">
unimplemented</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont=
&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; fo=
nt-size: 12pt; color: rgb(0, 0, 0);">
internal</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot=
;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-si=
ze: 12pt; color: rgb(0, 0, 0);">
resource-exhausted</li><li style=3D"font-family: Aptos, &quot;Aptos_Embedde=
dFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-seri=
f; font-size: 12pt; color: rgb(0, 0, 0);">
disconnect</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&qu=
ot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-=
size: 12pt; color: rgb(0, 0, 0);">
drop</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &=
quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: =
12pt; color: rgb(0, 0, 0);">
retry</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, =
&quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size:=
 12pt; color: rgb(0, 0, 0);">
success</li></ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>s3</code>: Added two new options</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>s3(=0A=
	url(&quot;http://localhost:9000&quot;)=0A=
	bucket(&quot;testbucket&quot;)=0A=
	object_key(&quot;testobject&quot;)=0A=
	access_key(&quot;&lt;ACCESS_KEY_ID&gt;&quot;)=0A=
	secret_key(&quot;&lt;SECRET_ACCESS_KEY&gt;&quot;)=0A=
	content_type(&quot;text/plain&quot;)=0A=
	use_checksum(&quot;when_required&quot;)=0A=
);=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/sy=
slog-ng/pull/5286/hovercard" class=3D"OWAAutoLink" id=3D"OWA36d4dc80-2ae4-5=
db6-0688-af2fba204ff7" href=3D"https://github.com/syslog-ng/syslog-ng/pull/=
5286">#5286</a>)</div>
</li><ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<code>content-type()</code>: users now can change the content type of the o=
bjects uploaded by syslog-ng.</li><li style=3D"font-family: Aptos, &quot;Ap=
tos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica=
, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>use_checksum()</code>: This option allows the users to change the def=
ault checksum settings for<br>
S3 compatible solutions that don't support checksums. Requires botocore 1.3=
6 or above. Acceptable values are<br>
<code>when_supported</code>&nbsp;(default) and <code>when_required</code>.<=
/li></ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>loki()</code>: Added
<code>batch-bytes()</code>&nbsp;and <code>compression()</code>&nbsp;options=
.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5174/hovercard" class=3D"OWAAutoLink" id=3D"OWAc2aab7f1-dea2-=
9fea-a087-092c601ca57c" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5174">#5174</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>syslog-ng-ctl</code>: Formatting the output of the
<code>syslog-ng-ctl stats</code>&nbsp;and <code>syslog-ng-ctl query</code>&=
nbsp;commands is unified.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">B=
oth commands got a new
<code>--format</code>&nbsp;(<code>-m</code>) argument that can control the =
output format of the given stat or query. The following formats are support=
ed:</div>
</li><ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<code>kv</code>&nbsp;- the legacy key-value-pairs e.g. <code>center.queued.=
processed=3D0</code>&nbsp;(only for the
<code>query</code>&nbsp;command yet)</li><li style=3D"font-family: Aptos, &=
quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, He=
lvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>csv</code>&nbsp;- comma separated values e.g. <code>center;;queued;a;=
processed;0</code></li><li style=3D"font-family: Aptos, &quot;Aptos_Embedde=
dFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-seri=
f; font-size: 12pt; color: rgb(0, 0, 0);">
<code>prometheus</code>&nbsp;- the prometheus scraper ready format e.g. <co=
de>syslogng_center_processed{stat_instance=3D&quot;queued&quot;} 0</code><b=
r>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5248/hovercard" class=3D"OWAAutoLink" id=3D"OWA40f2909f-74ff-=
4255-2acd-5337a0d4fbcc" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5248">#5248</a>)</li></ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>network()</code>,
<code>syslog()</code>&nbsp;sources: add <code>$PEERIP</code>&nbsp;and <code=
>$PEERPORT</code>&nbsp;macros</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
he <code>$PEERIP</code>&nbsp;and
<code>$PEERPORT</code>&nbsp;macros always display the address and port of t=
he direct sender.<br>
In most cases, these values are identical to <code>$SOURCEIP</code>&nbsp;an=
d <code>$SOURCEPORT</code>.<br>
However, when dealing with proxied protocols, <code>$PEERIP</code>&nbsp;and=
 <code>$PEERPORT</code>&nbsp;reflect the proxy's address and port,<br>
while <code>$SOURCEIP</code>&nbsp;and <code>$SOURCEPORT</code>&nbsp;indicat=
e the original source of the message.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5291/hovercard" class=3D"OWAAutoLink" id=3D"OWAf289299f-d5ee-=
1a5d-5798-3ee6cb861747" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5291">#5291</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>webhook()</code>,<code>opentelemetry()</code>&nbsp;sources: support
<code>input_event_bytes</code>&nbsp;metrics<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5324/hovercard" class=3D"OWAAutoLink" id=3D"OWAc63b47c5-3ed2-=
0498-51ed-380492b9d534" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5324">#5324</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>freebsd-audit()</code>: added a simple source SCL to collect FreeBSD a=
udit logs using the built-in praudit program</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
a rel=3D"nofollow" class=3D"OWAAutoLink" id=3D"OWAdcb71d5a-e054-0dc7-effc-d=
a62fe16a5fd" href=3D"https://www.syslog-ng.com/community/b/blog/posts/freeb=
sd-audit-source-for-syslog-ng">https://www.syslog-ng.com/community/b/blog/p=
osts/freebsd-audit-source-for-syslog-ng</a><br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5383/hovercard" class=3D"OWAAutoLink" id=3D"OWA08390551-c338-=
0ea4-30a8-f4e9607cd718" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5383">#5383</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>webhook()</code>: headers support</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>include-request-headers(yes)</code>&nbsp;stores request headers under =
the
<code>${webhook.headers}</code>&nbsp;key, allowing further processing</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>proxy-header(&quot;x-forwarded-for&quot;)</code>&nbsp;helps retain the=
 sender's original IP and the proxy's IP address</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<code>$SOURCEIP</code>,
<code>$PEERIP</code>).<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5333/hovercard" class=3D"OWAAutoLink" id=3D"OWAab2a3357-e1e6-=
304c-1f2c-4d81e00b1bc8" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5333">#5333</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>check-program</code>: Introduced as a flag for global or source option=
s.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">B=
y default, this flag is set to false. Enabling the check-program flag trigg=
ers
<code>program</code>&nbsp;name validation for <code>RFC3164</code>&nbsp;mes=
sages. Valid <code>
program</code>&nbsp;names must adhere to the following criteria:</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">C=
ontain only these characters:
<code>[a-zA-Z0-9-_/().]</code><br>
Include at least one alphabetical character.<br>
If a <code>program</code>&nbsp;name fails validation, it will be considered=
 part of the log message.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>source { network(flags(check-hostname, check-program)); };=
=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/sy=
slog-ng/pull/5264/hovercard" class=3D"OWAAutoLink" id=3D"OWA91019089-851a-c=
cd3-756d-c50861e356a9" href=3D"https://github.com/syslog-ng/syslog-ng/pull/=
5264">#5264</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>syslog(transport(proxied-*))</code>&nbsp;and
<code>network(transport(proxied-*))</code>: changed<br>
where HAProxy transport saved the original source and destination addresses=
.<br>
Instead of using dedicated <code>PROXIED_*</code>&nbsp;name-value pairs, us=
e the usual<br>
<code>$SOURCEIP</code>, <code>$SOURCEPORT</code>, <code>$DESTIP</code>&nbsp=
;and <code>
$DESTPORT</code>&nbsp;macros, making haproxy<br>
based connections just like native ones.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>$SOURCEPORT</code>: added new macro which expands to the source port o=
f the peer.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5305/hovercard" class=3D"OWAAutoLink" id=3D"OWA62b757c9-75bc-=
823c-cc7c-c43c31a3023f" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5305">#5305</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>opentelemetry()</code>,
<code>syslog-ng-otlp()</code>: Added <code>keep-alive()</code>&nbsp;options=
.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">K=
eepalive can be configured with the
<code>time()</code>, <code>timeout()</code><br>
and <code>max-pings-without-data()</code>&nbsp;options of the <code>keep-al=
ive()</code>&nbsp;block.</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>opentelemetry(=0A=
 &nbsp; &nbsp;...=0A=
 &nbsp; &nbsp;keep-alive(time(20000) timeout(10000) max-pings-without-data(=
0))=0A=
);=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/sy=
slog-ng/pull/5174/hovercard" class=3D"OWAAutoLink" id=3D"OWAba20a04c-8b7e-1=
0aa-8396-01f29e028d65" href=3D"https://github.com/syslog-ng/syslog-ng/pull/=
5174">#5174</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>bigquery()</code>: Added
<code>auth()</code>&nbsp;options.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">S=
imilarly to other gRPC based destination drivers, the
<code>bigquery()</code><br>
destination now accepts different authentication methods, like<br>
<code>adc()</code>, <code>alts()</code>, <code>insecure()</code>&nbsp;and <=
code>tls()</code>.</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>bigquery (=0A=
 &nbsp; &nbsp;...=0A=
 &nbsp; &nbsp;auth(=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;tls(=0A=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ca-file(&quot;/path/to/ca.pem&quo=
t;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;key-file(&quot;/path/to/key.pem&q=
uot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cert-file(&quot;/path/to/cert.pem=
&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp;)=0A=
 &nbsp; &nbsp;)=0A=
);=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/sy=
slog-ng/pull/5174/hovercard" class=3D"OWAAutoLink" id=3D"OWA51685e85-9635-4=
b10-39be-4b84ce513943" href=3D"https://github.com/syslog-ng/syslog-ng/pull/=
5174">#5174</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>cloud-auth</code>: Added
<code>azure-monitor()</code>&nbsp;destination</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">A=
dded oauth2 authentication for azure monitor destinations.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample usage:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>azure-monitor(=0A=
 &nbsp; &nbsp; dcr-id(&quot;dcr id&quot;)=0A=
 &nbsp; &nbsp; dce-uri(&quot;dce uri&quot;)=0A=
 &nbsp; &nbsp; stream_name(&quot;stream name&quot;)=0A=
 &nbsp; &nbsp; auth(=0A=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tenant-id(&quot;tenant id&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;app-id(&quot;app id&quot;)=0A=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;app-secret(&quot;app secret&quot;)=0A=
 &nbsp; &nbsp; )=0A=
)=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">(=
<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/sy=
slog-ng/pull/5293/hovercard" class=3D"OWAAutoLink" id=3D"OWAaf98083e-64ea-b=
5bc-6741-a82863e322f5" href=3D"https://github.com/syslog-ng/syslog-ng/pull/=
5293">#5293</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>multi-line-mode()</code>: Added a new mutiline detection mode
<code>empty-line-separated</code>&nbsp;that, as its name suggests, reads an=
d treats all messages as one till it receives an empty line (which contains=
 only a
<code>\r</code>, <code>\n</code>&nbsp;or <code>\r\n</code>&nbsp;sequence).<=
br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5259/hovercard" class=3D"OWAAutoLink" id=3D"OWAcc3d18fa-68ec-=
49fa-b84d-3c2125b61b40" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5259">#5259</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>google-pubsub-grpc()</code>: Added a new destination that sends logs t=
o Google Pub/Sub via the gRPC interface.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">E=
xample config:</div>
<pre role=3D"presentation"><div style=3D"font-family: Aptos, &quot;Aptos_Em=
beddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, Helvetica, sans=
-serif;"><code>google-pubsub-grpc(=0A=
 &nbsp;project(&quot;my_project&quot;)=0A=
 &nbsp;topic($topic)=0A=
=0A=
 &nbsp;data($MESSAGE)=0A=
 &nbsp;attributes(=0A=
 &nbsp; &nbsp;timestamp =3D&gt; $S_ISODATE,=0A=
 &nbsp; &nbsp;host =3D&gt; $HOST,=0A=
 &nbsp;)=0A=
=0A=
 &nbsp;workers(4)=0A=
 &nbsp;batch-timeout(1000) # ms=0A=
 &nbsp;batch-lines(1000)=0A=
);=0A=
</code></div></pre>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
he <code>project()</code>&nbsp;and
<code>topic()</code>&nbsp;options are templatable.<br>
The default service endpoint can be changed with the <code>service_endpoint=
()</code>&nbsp;option.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5266/hovercard" class=3D"OWAAutoLink" id=3D"OWAc2b4646d-b50b-=
023f-0f62-45485dcb937e" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5266">#5266</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>ivykis</code>: We have switched to
<a class=3D"OWAAutoLink" id=3D"OWA233cb61c-47ff-a10f-f428-ccc795575d7a" hre=
f=3D"https://github.com/balabit/ivykis">
our own fork</a>&nbsp;of ivykis as the source for builds when using syslog-=
ng=92s internal ivykis option (<code>--with-ivykis=3Dinternal</code>&nbsp;i=
n autotools or
<code>-DIVYKIS_SOURCE=3Dinternal</code>&nbsp;in CMake).</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">W=
e recommend switching to this internal version, as it includes new features=
 not available in the
<a class=3D"OWAAutoLink" id=3D"OWA264c2212-7150-53ca-3bd9-33fbb55fd0ce" hre=
f=3D"https://github.com/buytenh/ivykis">
original version</a>&nbsp;and likely never will be.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5307/hovercard" class=3D"OWAAutoLink" id=3D"OWAac3d0cb5-8439-=
1407-e710-2843e164ecdf" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5307">#5307</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>ivykis</code>: Fixed and merged the in development phase
<code>io_uring</code>&nbsp;based polling method solution to <a class=3D"OWA=
AutoLink" id=3D"OWA7755c6de-38f7-6bc3-ad4b-7727a086214b" href=3D"https://gi=
thub.com/balabit/ivykis">
our ivykis fork</a>.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
his is am experimental integration and not selected by default, you must ac=
tivate it directly either using the
<code>IV_EXCLUDE_POLL_METHOD</code>&nbsp;or <code>IV_SELECT_POLL_METHOD</co=
de>&nbsp;as described
<a rel=3D"nofollow" class=3D"OWAAutoLink" id=3D"OWA46aeffe3-c0e8-fd6a-cbc5-=
e6fc561ecb15" href=3D"https://syslog-ng.github.io/admin-guide/060_Sources/0=
20_File/001_File_following">
here</a>.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5312/hovercard" class=3D"OWAAutoLink" id=3D"OWAb3c8fc2e-44d3-=
11ed-aa1e-4f07bb5a2c99" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5312">#5312</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>file()</code>,
<code>wildcard-file()</code>: Added <code>follow-method()</code>&nbsp;optio=
n.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">|=
Accepted values:| legacy | inotify | poll | system |</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
his option controls how syslog-ng will follow file changes.<br>
The default <code>legacy</code>&nbsp;mode preserves the pre-4.9 version fil=
e follow-mode behavior of syslog-ng, which is based on the value of follow-=
freq().<br>
The <code>poll</code>&nbsp;value forces syslog-ng to poll for file changes =
at the interval specified by the monitor-freq() option, even if a more effi=
cient method (such as
<code>inotify</code>&nbsp;or <code>kqueue</code>) is available.<br>
If <code>inotify</code>&nbsp;is selected and supported by the platform, sys=
log-ng uses it to detect changes in source files. This is the most efficien=
t and least resource-consuming option available on Linux for regular files.=
<br>
The <code>system</code>&nbsp;value will use system poll methods (via ivykis=
) like <code>
port-timer</code> <code>port</code> <code>dev_poll</code> <code>epoll-timer=
fd</code>
<code>epoll</code> <code>kqueue</code> <code>ppoll</code> <code>poll</code>=
&nbsp;and <code>
uring</code>. For more information about how to control the system polling =
methods used, see
<a rel=3D"nofollow" class=3D"OWAAutoLink" id=3D"OWA3c099903-1e7d-eb88-5e6f-=
91b6bed10048" href=3D"https://syslog-ng.github.io/admin-guide/060_Sources/0=
20_File/001_File_following">
How content changes are followed in file() and wildcard-file() sources</a>.=
<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5338/hovercard" class=3D"OWAAutoLink" id=3D"OWA47219dcc-99bc-=
bb2d-cddd-0e4ca81eebb3" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5338">#5338</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>opentelemetry()</code>,
<code>loki()</code>&nbsp;destination: Add support for templated <code>heade=
r()</code>&nbsp;values<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5184/hovercard" class=3D"OWAAutoLink" id=3D"OWA4491306e-22c5-=
b29c-3b9f-61b6cfaf15e7" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5184">#5184</a>)</div>
</li></ul>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>Bugfixes</b></div>
<ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>syslog-ng-otlp()</code>&nbsp;destination: Fixed a crash.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5267/hovercard" class=3D"OWAAutoLink" id=3D"OWA8fefd32d-3eae-=
69f0-ffe2-8eba681d665c" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5267">#5267</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">F=
ixed some time parsing and time formatting issues.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5386/hovercard" class=3D"OWAAutoLink" id=3D"OWA2af8b2bd-9899-=
0140-a563-435a9ba1c972" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5386">#5386</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">s=
yslogformat: Fix integer overflow on set pri<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5254/hovercard" class=3D"OWAAutoLink" id=3D"OWA8d785fe1-4751-=
c148-a0c1-04d60dd359b9" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5254">#5254</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>network(), syslog()</code>: Fixed a potential crash for TLS destinatio=
ns during reload</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">I=
n case of a TLS connection, if the handshake didn't happen before reloading=
 syslog-ng,<br>
it crashed on the first message sent to that destination.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5303/hovercard" class=3D"OWAAutoLink" id=3D"OWAe25c2ec5-6740-=
7a80-26c6-9454aaf6b84d" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5303">#5303</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>collectd()</code>: fix not reading server responses<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5390/hovercard" class=3D"OWAAutoLink" id=3D"OWA1105d838-4c15-=
e46c-bdd0-77c7c7507b9b" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5390">#5390</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">m=
etrics: <code>
syslog-ng-ctl --reset</code>&nbsp;will no longer reset Prometheus metrics<b=
r>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5261/hovercard" class=3D"OWAAutoLink" id=3D"OWA83cbd238-8262-=
04c6-7d39-5189ba255e56" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5261">#5261</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>rate-limit()</code>: fix precision issue that could occur at a very lo=
w message rate<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5346/hovercard" class=3D"OWAAutoLink" id=3D"OWA92506a95-2e83-=
67e7-75f2-2e23c08bcb1b" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5346">#5346</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>network()</code>,
<code>syslog()</code>&nbsp;sources and destinations: fix TCP/TLS shutdown<b=
r>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5271/hovercard" class=3D"OWAAutoLink" id=3D"OWA6ba6f48d-60af-=
16f9-ce38-2e53693822a9" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5271">#5271</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>http</code>: Fixed a batching related bug that happened with templated=
 URLs and a single worker.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5281/hovercard" class=3D"OWAAutoLink" id=3D"OWAc0e8fefe-e27d-=
3da5-7dc2-51ad3a13e6dc" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5281">#5281</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;"><=
code>network()</code>,
<code>syslog()</code>&nbsp;destinations: handle async TLS messages (KeyUpda=
te, etc.)<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5390/hovercard" class=3D"OWAAutoLink" id=3D"OWAa3ac4307-be78-=
9f95-5a76-215786dceea8" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5390">#5390</a>)</div>
</li></ul>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>Notes to developers</b></div>
<ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
editorconfig: configure supported editors for the project's style<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5331/hovercard" class=3D"OWAAutoLink" id=3D"OWA9f0200a4-f993-=
a914-a057-8613ce61c2f4" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5331">#5331</a>)</li></ul>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>Other changes</b></div>
<ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">j=
ava-modules: Upgrade java
<code>common</code>&nbsp;and <code>hdfs</code>&nbsp;dependencies.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5366/hovercard" class=3D"OWAAutoLink" id=3D"OWAcd69fd17-3f48-=
b8ef-bc12-5778fecd3f06" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5366">#5366</a>)</div>
</li><li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot=
;Aptos_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt=
; color: rgb(0, 0, 0);">
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">j=
ava-modules: Remove depricated java destinations:
<code>elasticsearch2</code>, <code>kafka-java</code>&nbsp;and the <code>jav=
a-http</code>.</div>
<div role=3D"presentation" style=3D"margin-top: 1em; margin-bottom: 1em;">T=
he following destinations can be used instead:</div>
</li><ul>
<li style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apto=
s_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; col=
or: rgb(0, 0, 0);">
<code>elasticsearch2</code>&nbsp;- Both <a rel=3D"nofollow" class=3D"OWAAut=
oLink" id=3D"OWA55162fde-0d2c-2281-4aea-59918504f674" href=3D"https://syslo=
g-ng.github.io/admin-guide/070_Destinations/035_elasticsearch-datastream/RE=
ADME">
elastic-datastream()</a>&nbsp;or the <a rel=3D"nofollow" class=3D"OWAAutoLi=
nk" id=3D"OWAc3d2fc4c-a269-a5c8-9f44-4f032b192f07" href=3D"https://syslog-n=
g.github.io/admin-guide/070_Destinations/030_Elasticsearch-http/README">
elastic-http()</a>&nbsp;can be used.</li><li style=3D"font-family: Aptos, &=
quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontService&quot;, Calibri, He=
lvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>kafka-java</code>&nbsp;- The C based <a rel=3D"nofollow" class=3D"OWA=
AutoLink" id=3D"OWAb563cc7a-8d37-8589-73e0-65ae2d9dec46" href=3D"https://sy=
slog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/README">
kafka-c()</a>&nbsp;destination can be used instead. To help with migration =
check out the
<a rel=3D"nofollow" class=3D"OWAAutoLink" id=3D"OWA74dd0b3c-1e2e-922c-aa1a-=
487a8c7ef353" href=3D"https://syslog-ng.github.io/admin-guide/070_Destinati=
ons/100_Kafka-c/001_Shifting_from_Java_to_C">
Shifting from Java implementation to C implementation</a>&nbsp;page.</li><l=
i style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_=
MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color=
: rgb(0, 0, 0);">
<code>java-http</code>&nbsp;- the C based <a rel=3D"nofollow" class=3D"OWAA=
utoLink" id=3D"OWAd8cafee0-14ab-303c-81f1-1d0b5a7c0128" href=3D"https://sys=
log-ng.github.io/admin-guide/070_Destinations/081_http/README">
http()</a>&nbsp;destination can be used.<br>
(<a data-hovercard-type=3D"pull_request" data-hovercard-url=3D"/syslog-ng/s=
yslog-ng/pull/5366/hovercard" class=3D"OWAAutoLink" id=3D"OWAb261075a-781e-=
6fd0-9215-4e3a40933aba" href=3D"https://github.com/syslog-ng/syslog-ng/pull=
/5366">#5366</a>)</li></ul>
</ul>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<b>Credits</b></div>
<div class=3D"elementToProof" style=3D"margin-top: 1em; margin-bottom: 1em;=
 font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontServ=
ice&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0=
, 0);">
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.</div>
<div class=3D"elementToProof" style=3D"margin-top: 1em; margin-bottom: 1em;=
 font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontServ=
ice&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0=
, 0);">
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.</div>
<div class=3D"elementToProof" style=3D"margin-top: 1em; margin-bottom: 1em;=
 font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontServ=
ice&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0=
, 0);">
We would like to thank the following people for their contribution:</div>
<div class=3D"elementToProof" style=3D"margin-top: 1em; margin-bottom: 1em;=
 font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Aptos_MSFontServ=
ice&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0=
, 0);">
Alex Becker, Attila Szakacs, Balazs Scheidler, B=E1lint Horv=E1th,<br>
David Mandelberg, Eli Schwartz, Hofi, Kov=E1cs Gerg=F5 Ferenc,<br>
L=E1szl=F3 V=E1rady, Peter Czanik (CzP), Petr Vaganov,<br>
Shiraz, Szilard Parrag, Tamas Pal, Tam=E1s Kosztyu, shifter</div>
<div style=3D"font-family: Aptos, &quot;Aptos_EmbeddedFont&quot;, &quot;Apt=
os_MSFontService&quot;, Calibri, Helvetica, sans-serif; font-size: 12pt; co=
lor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div class=3D"elementToProof" id=3D"Signature">
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" clas=
s=3D"elementToProof">
<br>
</div>
<div class=3D"elementToProof" style=3D"direction: ltr; font-family: Calibri=
, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Peter Czanik (CzP) &lt;[email protected]&gt;<br>
Balabit (a OneIdentity company) / syslog-ng upstream<br>
<a target=3D"_blank" href=3D"https://syslog-ng.com/community/">https://sysl=
og-ng.com/<wbr>community/</a><br>
<a target=3D"_blank" href=3D"https://twitter.com/PCzanik">https://twitter.c=
om/PCzanik</a></div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
</div>
</body>
</html>

--_000_CO1PR19MB5126B78F242320C329054B7B8B51ACO1PR19MB5126namp_--

--===============1188969999955802624==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

______________________________________________________________________________
Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
FAQ: http://www.balabit.com/wiki/syslog-ng-faq


--===============1188969999955802624==--