Re: syslog-ng version 4.9.0 is now available
Kerekes Gyula <[email protected]> Fri, 22 Aug 2025 10:35:39 +0200
| Newsgroups | gmane.comp.syslog-ng |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--===============0070327105166436691==
Content-Type: multipart/alternative;
boundary="------------Y5XuoHaePIZb40vvFyAdDt28"
Content-Language: en-US
This is a multi-part message in MIME format.
--------------Y5XuoHaePIZb40vvFyAdDt28
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Hi,
I tried this stats exporter-dont-log() feature and it works well but it
seems like it has a mem leak somewhere. I tried to switch off the
prometheus data collection to one of the syslog-ng hosts and the mem
consumption stayed fairly low. On the other hand all the others used 1-2
gigs of RSS mem. Is it a known issue?
Gyula
2025. 07. 17. 15:19 keltezéssel, Peter Czanik (pczanik) írta:
> Hi,
>
> I am happy to announce that version 4.9.0 of syslog-ng is now
> available. Thanks 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 |syslog-ng-ctl query| to a http scraper.
> The only difference is that |stats-exporter-dont-log()| suppresses
> log messages from incoming scraper requests, ensuring no messages
> appear in the log path. Meanwhile, |stats-exporter()| logs
> unparsed messages, storing incoming scraper HTTP requests in the
> |MSG| field.
> Example usage for a Prometheus Scraper which logs the HTTP request
> of the scraper 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 HTTP/1.1| HTTP request to get statistics of syslog-ng, do
> not want to log or further 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 present 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 the |-m| option of the |syslog-ng-ctl| command line tool
> |scrape-pattern(string)| – the pattern used to match the HTTP
> header of incoming 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 scraper requests to the specified number of seconds. Any
> repeated request within 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 request 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 available before, significantly reducing CPU usage while
> enhancing change detection accuracy.
> To enable this feature, inotify kernel support is required, along
> with |monitor-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| format 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>)
> o NXOS: |(config)# logging server <syslog-ng-server-ip> port 2000|
> o IOS: |(config)# logging host <syslog-ng-server-ip> transport
> udp port 2000|
> *
> bigquery(), google-pubsub-grpc(): Added service-account()
> authentication option.
> 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 => disconnect unavailable =>
> drop ) ); |
> (#5332 <https://github.com/syslog-ng/syslog-ng/pull/5332>)
> o |opentelemetry()|
> o |loki()|
> o |bigquery()|
> o |clickhouse()|
> o |google-pubsub-grpc()|
> o ok
> o unavailable
> o cancelled
> o deadline-exceeded
> o aborted
> o out-of-range
> o data-loss
> o unknown
> o invalid-argument
> o not-found
> o already-exists
> o permission-denied
> o unauthenticated
> o failed-precondition
> o unimplemented
> o internal
> o resource-exhausted
> o disconnect
> o drop
> o retry
> o 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>)
> o |content-type()|: users now can change the content type of the
> objects uploaded by syslog-ng.
> o |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.36 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:
> o |kv| - the legacy key-value-pairs e.g.
> |center.queued.processed=0| (only for the |query| command yet)
> o |csv| - comma separated values e.g. |center;;queued;a;processed;0|
> o |prometheus| - the prometheus scraper ready format e.g.
> |syslogng_center_processed{stat_instance="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 using the built-in praudit program
> https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng
> <https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng>
> (#5383 <https://github.com/syslog-ng/syslog-ng/pull/5383>)
> *
> |webhook()|: headers support
> |include-request-headers(yes)| stores request headers under the
> |${webhook.headers}| key, allowing further processing
> |proxy-header("x-forwarded-for")| helps retain the sender's
> original IP and the 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 triggers |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 message.
> 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 receives 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 => $S_ISODATE, host
> => $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()| option.
> (#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’s internal ivykis option
> (|--with-ivykis=internal| in autotools or
> |-DIVYKIS_SOURCE=internal| in CMake).
> We recommend switching to this internal version, as it includes
> new features 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 method solution to our ivykis fork
> <https://github.com/balabit/ivykis>.
> This is am experimental integration and not selected by default,
> you must activate it directly either using the
> |IV_EXCLUDE_POLL_METHOD| or |IV_SELECT_POLL_METHOD| as described
> here
> <https://syslog-ng.github.io/admin-guide/060_Sources/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 behavior 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 specified 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 resource-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 information about how to
> control the system polling methods used, see How content changes
> are followed in file() and wildcard-file() sources
> <https://syslog-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()| values
> (#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 reload
> In case of a TLS connection, if the handshake didn't happen before
> reloading 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 rate
> (#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-java| and the |java-http|.
> The following destinations can be used instead:
> o |elasticsearch2| - Both elastic-datastream()
> <https://syslog-ng.github.io/admin-guide/070_Destinations/035_elasticsearch-datastream/README> or
> the elastic-http()
> <https://syslog-ng.github.io/admin-guide/070_Destinations/030_Elasticsearch-http/README> can
> be used.
> o |kafka-java| - The C based kafka-c()
> <https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/README> destination
> can be used instead. To help with migration check out the
> Shifting from Java implementation to C implementation
> <https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/001_Shifting_from_Java_to_C> page.
> o |java-http| - the C based http()
> <https://syslog-ng.github.io/admin-guide/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álint Horváth,
> David Mandelberg, Eli Schwartz, Hofi, Kovács Gergő Ferenc,
> László Várady, Peter Czanik (CzP), Petr Vaganov,
> Shiraz, Szilard Parrag, Tamas Pal, Tamás Kosztyu, shifter
>
>
> Peter Czanik (CzP) <[email protected]>
> Balabit (a OneIdentity company) / syslog-ng upstream
> https://syslog-ng.com/community/ <https://syslog-ng.com/community/>
> https://twitter.com/PCzanik
>
>
> ______________________________________________________________________________
> 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
>
--------------Y5XuoHaePIZb40vvFyAdDt28
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi,<br>
<br>
<br>
I tried this stats exporter-dont-log() feature and it works well
but it seems like it has a mem leak somewhere. I tried to switch
off the prometheus data collection to one of the syslog-ng hosts
and the mem consumption stayed fairly low. On the other hand all
the others used 1-2 gigs of RSS mem. Is it a known issue?<br>
</p>
<p><br>
</p>
<p>Gyula</p>
<p><br>
</p>
<div class="moz-cite-prefix">2025. 07. 17. 15:19 keltezéssel, Peter
Czanik (pczanik) írta:<br>
</div>
<blockquote type="cite"
cite="mid:CO1PR19MB5126B78F242320C329054B7B8B51A@CO1PR19MB5126.namprd19.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Hi,</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
I am happy to announce that version 4.9.0 of syslog-ng is now
available. Thanks everyone who contributed code, documentation,
testing, or in any other way.</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
Peter</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>4.9.0</b></div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>Highlights</b></div>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>stats-exporter</code>:
Added two new sources,
<code>stats-exporter()</code> and <code>stats-exporter-dont-log()</code>,
which directly serve the output of
<code>syslog-ng-ctl stats</code> and <code>syslog-ng-ctl
query</code> to a http scraper. The only difference is
that
<code>stats-exporter-dont-log()</code> suppresses log
messages from incoming scraper requests, ensuring no
messages appear in the log path. Meanwhile,
<code>stats-exporter()</code> logs unparsed messages,
storing incoming scraper HTTP requests in the
<code>MSG</code> field.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example usage
for a Prometheus Scraper which logs the HTTP request of the
scraper to /var/log/scraper.log:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>@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); };
};
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example 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-ng, 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="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>@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);
};
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Note: A
destination is not required for this to work; the
<code>stats-exporter()</code> source will respond to the
scraper regardless of whether a destination is present in
the log path.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Available
options:</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>stat-type(string)</code> -
<code>query</code> or <code>stats</code>, just like for the
<code>syslog-ng-ctl</code> command line tool, see there for
the details<br>
<code>stat-query(string)</code> - the query regex string
that can be used to filter the output of a
<code>query</code> type request<br>
<code>stat-format(string)</code> - the output format of the
given stats request, like the
<code>-m</code> option of the <code>syslog-ng-ctl</code> command
line tool<br>
<code>scrape-pattern(string)</code> – the pattern used to
match the HTTP header of incoming scraping requests. A stat
response will be generated and sent only if the header
matches the pattern string<br>
<code>scrape-freq-limit(non-negative-int)</code> - limits
the frequency of repeated scraper requests to the specified
number of seconds. Any repeated request within this period
will be ignored. A value of 0 means no limit<br>
<code>single-instance(yes/no)</code> - if set to <code>yes</code> only
one scraper connection and request will be allowed at once<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5259/hovercard"
class="OWAAutoLink"
id="OWA914d3223-3ae6-fcea-2932-f914391330d7"
href="https://github.com/syslog-ng/syslog-ng/pull/5259"
moz-do-not-send="true">#5259</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>syslog()</code> 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> option for the <code>syslog()</code> source.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5322/hovercard"
class="OWAAutoLink"
id="OWAea867262-821a-c94b-9a2a-db360bcd9f40"
href="https://github.com/syslog-ng/syslog-ng/pull/5322"
moz-do-not-send="true">#5322</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>wildcard-file</code>:
Added inotify-based regular file change detection using the
existing inotify-based directory monitor.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">This improves
efficiency on OSes like Linux, where only polling was
available before, significantly reducing CPU usage while
enhancing change detection accuracy.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">To enable this
feature, inotify kernel support is required, along with
<code>monitor-method()</code> set to <code>inotify</code> or
<code>auto</code>, and
<code>follow-freq()</code> set to 0.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5315/hovercard"
class="OWAAutoLink"
id="OWAf2e3137f-1c1d-b053-15c8-b08cece13990"
href="https://github.com/syslog-ng/syslog-ng/pull/5315"
moz-do-not-send="true">#5315</a>)</div>
</li>
</ul>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>Features</b></div>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>cisco</code>:
Added support for Cisco Nexus NXOS 9.3 syslog format.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">The parser now
recognises NXOS 9.3 timestamps in
<code>YYYY MMM DD HH:MM:SS</code> format and handles the
different<br>
sequence number prefix (<code>: </code>instead of <code>seqno:
</code>) used by NXOS 9.3 compared to traditional IOS
formats.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example Cisco
configuration:</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example
syslog-ng configuration:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>@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);
};
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="issue"
data-hovercard-url="/syslog-ng/syslog-ng/issues/5412/hovercard"
class="OWAAutoLink"
id="OWAce240cde-6385-28e9-3603-e247f105acfb"
href="https://github.com/syslog-ng/syslog-ng/pull/5412"
moz-do-not-send="true">#5412</a>)</div>
</li>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
NXOS: <code>(config)# logging server
<syslog-ng-server-ip> port 2000</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
IOS: <code>(config)# logging host
<syslog-ng-server-ip> transport udp port 2000</code></li>
</ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">bigquery(),
google-pubsub-grpc(): Added service-account() authentication
option.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example usage:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>destination {
google-pubsub-grpc(
project("test")
topic("test")
auth(service-account(key ("path_to_service_account_key.json")))
);
};
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Note: In
contrary to the
<code>http()</code> 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="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5270/hovercard"
class="OWAAutoLink"
id="OWA9ecdd0ae-5380-241a-436a-d3608224e8bd"
href="https://github.com/syslog-ng/syslog-ng/pull/5270"
moz-do-not-send="true">#5270</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">gRPC based
destinations: Added
<code>response-action()</code> option</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">With this
option, it is possible to fine tune how syslog-ng<br>
behaves in case of different gRPC results.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Supported by
the following destination drivers:</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Supported gRPC
results:</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Supported
actions:</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Usage:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>google-pubsub-grpc(
project("my-project")
topic("my-topic")
response-action(
not-found => disconnect
unavailable => drop
)
);
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5332/hovercard"
class="OWAAutoLink"
id="OWAda4d7b0b-c979-f5bb-42fd-256728865238"
href="https://github.com/syslog-ng/syslog-ng/pull/5332"
moz-do-not-send="true">#5332</a>)</div>
</li>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>opentelemetry()</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>loki()</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>bigquery()</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>clickhouse()</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>google-pubsub-grpc()</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
ok</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unavailable</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
cancelled</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
deadline-exceeded</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
aborted</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
out-of-range</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
data-loss</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unknown</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
invalid-argument</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
not-found</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
already-exists</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
permission-denied</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unauthenticated</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
failed-precondition</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unimplemented</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
internal</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
resource-exhausted</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
disconnect</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
drop</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
retry</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
success</li>
</ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>s3</code>:
Added two new options</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>s3(
url(<a class="moz-txt-link-rfc2396E" href="http://localhost:9000">"http://localhost:9000"</a>)
bucket("testbucket")
object_key("testobject")
access_key("<ACCESS_KEY_ID>")
secret_key("<SECRET_ACCESS_KEY>")
content_type("text/plain")
use_checksum("when_required")
);
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5286/hovercard"
class="OWAAutoLink"
id="OWA36d4dc80-2ae4-5db6-0688-af2fba204ff7"
href="https://github.com/syslog-ng/syslog-ng/pull/5286"
moz-do-not-send="true">#5286</a>)</div>
</li>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>content-type()</code>: users now can change the
content type of the objects uploaded by syslog-ng.</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>use_checksum()</code>: This option allows the users to
change the default checksum settings for<br>
S3 compatible solutions that don't support checksums.
Requires botocore 1.36 or above. Acceptable values are<br>
<code>when_supported</code> (default) and <code>when_required</code>.</li>
</ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>loki()</code>:
Added
<code>batch-bytes()</code> and <code>compression()</code> options.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard"
class="OWAAutoLink"
id="OWAc2aab7f1-dea2-9fea-a087-092c601ca57c"
href="https://github.com/syslog-ng/syslog-ng/pull/5174"
moz-do-not-send="true">#5174</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>syslog-ng-ctl</code>:
Formatting the output of the
<code>syslog-ng-ctl stats</code> and <code>syslog-ng-ctl
query</code> commands is unified.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Both commands
got a new
<code>--format</code> (<code>-m</code>) argument that can
control the output format of the given stat or query. The
following formats are supported:</div>
</li>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>kv</code> - the legacy key-value-pairs e.g. <code>center.queued.processed=0</code> (only
for the
<code>query</code> command yet)</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>csv</code> - comma separated values e.g. <code>center;;queued;a;processed;0</code></li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>prometheus</code> - the prometheus scraper ready
format e.g. <code>syslogng_center_processed{stat_instance="queued"}
0</code><br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5248/hovercard"
class="OWAAutoLink"
id="OWA40f2909f-74ff-4255-2acd-5337a0d4fbcc"
href="https://github.com/syslog-ng/syslog-ng/pull/5248"
moz-do-not-send="true">#5248</a>)</li>
</ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
<code>syslog()</code> sources: add <code>$PEERIP</code> and
<code>$PEERPORT</code> macros</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">The <code>$PEERIP</code> and
<code>$PEERPORT</code> macros always display the address and
port of the direct sender.<br>
In most cases, these values are identical to <code>$SOURCEIP</code> and
<code>$SOURCEPORT</code>.<br>
However, when dealing with proxied protocols, <code>$PEERIP</code> and
<code>$PEERPORT</code> reflect the proxy's address and port,<br>
while <code>$SOURCEIP</code> and <code>$SOURCEPORT</code> indicate
the original source of the message.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5291/hovercard"
class="OWAAutoLink"
id="OWAf289299f-d5ee-1a5d-5798-3ee6cb861747"
href="https://github.com/syslog-ng/syslog-ng/pull/5291"
moz-do-not-send="true">#5291</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>webhook()</code>,<code>opentelemetry()</code> sources:
support
<code>input_event_bytes</code> metrics<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5324/hovercard"
class="OWAAutoLink"
id="OWAc63b47c5-3ed2-0498-51ed-380492b9d534"
href="https://github.com/syslog-ng/syslog-ng/pull/5324"
moz-do-not-send="true">#5324</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>freebsd-audit()</code>:
added a simple source SCL to collect FreeBSD audit logs
using the built-in praudit program</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><a
rel="nofollow" class="OWAAutoLink moz-txt-link-freetext"
id="OWAdcb71d5a-e054-0dc7-effc-da62fe16a5fd"
href="https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng"
moz-do-not-send="true">https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng</a><br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5383/hovercard"
class="OWAAutoLink"
id="OWA08390551-c338-0ea4-30a8-f4e9607cd718"
href="https://github.com/syslog-ng/syslog-ng/pull/5383"
moz-do-not-send="true">#5383</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>webhook()</code>:
headers support</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>include-request-headers(yes)</code> stores
request headers under the
<code>${webhook.headers}</code> key, allowing further
processing</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>proxy-header("x-forwarded-for")</code> helps
retain the sender's original IP and the proxy's IP address</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<code>$SOURCEIP</code>,
<code>$PEERIP</code>).<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5333/hovercard"
class="OWAAutoLink"
id="OWAab2a3357-e1e6-304c-1f2c-4d81e00b1bc8"
href="https://github.com/syslog-ng/syslog-ng/pull/5333"
moz-do-not-send="true">#5333</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>check-program</code>:
Introduced as a flag for global or source options.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">By default,
this flag is set to false. Enabling the check-program flag
triggers
<code>program</code> name validation for <code>RFC3164</code> messages.
Valid <code>
program</code> names must adhere to the following
criteria:</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Contain only
these characters:
<code>[a-zA-Z0-9-_/().]</code><br>
Include at least one alphabetical character.<br>
If a <code>program</code> name fails validation, it will be
considered part of the log message.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>source { network(flags(check-hostname, check-program)); };
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5264/hovercard"
class="OWAAutoLink"
id="OWA91019089-851a-ccd3-756d-c50861e356a9"
href="https://github.com/syslog-ng/syslog-ng/pull/5264"
moz-do-not-send="true">#5264</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>syslog(transport(proxied-*))</code> 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> name-value
pairs, use the usual<br>
<code>$SOURCEIP</code>, <code>$SOURCEPORT</code>, <code>$DESTIP</code> and
<code>
$DESTPORT</code> macros, making haproxy<br>
based connections just like native ones.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>$SOURCEPORT</code>:
added new macro which expands to the source port of the
peer.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5305/hovercard"
class="OWAAutoLink"
id="OWA62b757c9-75bc-823c-cc7c-c43c31a3023f"
href="https://github.com/syslog-ng/syslog-ng/pull/5305"
moz-do-not-send="true">#5305</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>opentelemetry()</code>,
<code>syslog-ng-otlp()</code>: Added <code>keep-alive()</code> options.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Keepalive can
be configured with the
<code>time()</code>, <code>timeout()</code><br>
and <code>max-pings-without-data()</code> options of the <code>keep-alive()</code> block.</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>opentelemetry(
...
keep-alive(time(20000) timeout(10000) max-pings-without-data(0))
);
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard"
class="OWAAutoLink"
id="OWAba20a04c-8b7e-10aa-8396-01f29e028d65"
href="https://github.com/syslog-ng/syslog-ng/pull/5174"
moz-do-not-send="true">#5174</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>bigquery()</code>:
Added
<code>auth()</code> options.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Similarly 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> and
<code>tls()</code>.</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>bigquery (
...
auth(
tls(
ca-file("/path/to/ca.pem")
key-file("/path/to/key.pem")
cert-file("/path/to/cert.pem")
)
)
);
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard"
class="OWAAutoLink"
id="OWA51685e85-9635-4b10-39be-4b84ce513943"
href="https://github.com/syslog-ng/syslog-ng/pull/5174"
moz-do-not-send="true">#5174</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>cloud-auth</code>:
Added
<code>azure-monitor()</code> destination</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Added oauth2
authentication for azure monitor destinations.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example usage:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>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")
)
)
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">(<a
data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5293/hovercard"
class="OWAAutoLink"
id="OWAaf98083e-64ea-b5bc-6741-a82863e322f5"
href="https://github.com/syslog-ng/syslog-ng/pull/5293"
moz-do-not-send="true">#5293</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>multi-line-mode()</code>:
Added a new mutiline detection mode
<code>empty-line-separated</code> that, as its name
suggests, reads and treats all messages as one till it
receives an empty line (which contains only a
<code>\r</code>, <code>\n</code> or <code>\r\n</code> sequence).<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5259/hovercard"
class="OWAAutoLink"
id="OWAcc3d18fa-68ec-49fa-b84d-3c2125b61b40"
href="https://github.com/syslog-ng/syslog-ng/pull/5259"
moz-do-not-send="true">#5259</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>google-pubsub-grpc()</code>:
Added a new destination that sends logs to Google Pub/Sub
via the gRPC interface.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Example config:</div>
<pre role="presentation"><div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>google-pubsub-grpc(
project("my_project")
topic($topic)
data($MESSAGE)
attributes(
timestamp => $S_ISODATE,
host => $HOST,
)
workers(4)
batch-timeout(1000) # ms
batch-lines(1000)
);
</code></div></pre>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">The <code>project()</code> and
<code>topic()</code> options are templatable.<br>
The default service endpoint can be changed with the <code>service_endpoint()</code> option.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5266/hovercard"
class="OWAAutoLink"
id="OWAc2b4646d-b50b-023f-0f62-45485dcb937e"
href="https://github.com/syslog-ng/syslog-ng/pull/5266"
moz-do-not-send="true">#5266</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>ivykis</code>:
We have switched to
<a class="OWAAutoLink"
id="OWA233cb61c-47ff-a10f-f428-ccc795575d7a"
href="https://github.com/balabit/ivykis"
moz-do-not-send="true">
our own fork</a> of ivykis as the source for builds when
using syslog-ng’s internal ivykis option (<code>--with-ivykis=internal</code> in
autotools or
<code>-DIVYKIS_SOURCE=internal</code> in CMake).</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">We recommend
switching to this internal version, as it includes new
features not available in the
<a class="OWAAutoLink"
id="OWA264c2212-7150-53ca-3bd9-33fbb55fd0ce"
href="https://github.com/buytenh/ivykis"
moz-do-not-send="true">
original version</a> and likely never will be.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5307/hovercard"
class="OWAAutoLink"
id="OWAac3d0cb5-8439-1407-e710-2843e164ecdf"
href="https://github.com/syslog-ng/syslog-ng/pull/5307"
moz-do-not-send="true">#5307</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>ivykis</code>:
Fixed and merged the in development phase
<code>io_uring</code> based polling method solution to <a
class="OWAAutoLink"
id="OWA7755c6de-38f7-6bc3-ad4b-7727a086214b"
href="https://github.com/balabit/ivykis"
moz-do-not-send="true">
our ivykis fork</a>.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">This is am
experimental integration and not selected by default, you
must activate it directly either using the
<code>IV_EXCLUDE_POLL_METHOD</code> or <code>IV_SELECT_POLL_METHOD</code> as
described
<a rel="nofollow" class="OWAAutoLink"
id="OWA46aeffe3-c0e8-fd6a-cbc5-e6fc561ecb15"
href="https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following"
moz-do-not-send="true">
here</a>.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5312/hovercard"
class="OWAAutoLink"
id="OWAb3c8fc2e-44d3-11ed-aa1e-4f07bb5a2c99"
href="https://github.com/syslog-ng/syslog-ng/pull/5312"
moz-do-not-send="true">#5312</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>file()</code>,
<code>wildcard-file()</code>: Added <code>follow-method()</code> option.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">|Accepted
values:| legacy | inotify | poll | system |</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">This option
controls how syslog-ng will follow file changes.<br>
The default <code>legacy</code> mode preserves the pre-4.9
version file follow-mode behavior of syslog-ng, which is
based on the value of follow-freq().<br>
The <code>poll</code> value forces syslog-ng to poll for
file changes at the interval specified by the monitor-freq()
option, even if a more efficient method (such as
<code>inotify</code> or <code>kqueue</code>) is available.<br>
If <code>inotify</code> is selected and supported by the
platform, syslog-ng uses it to detect changes in source
files. This is the most efficient and least
resource-consuming option available on Linux for regular
files.<br>
The <code>system</code> value will use system poll methods
(via ivykis) like <code>
port-timer</code> <code>port</code> <code>dev_poll</code>
<code>epoll-timerfd</code>
<code>epoll</code> <code>kqueue</code> <code>ppoll</code>
<code>poll</code> and <code>
uring</code>. For more information about how to control
the system polling methods used, see
<a rel="nofollow" class="OWAAutoLink"
id="OWA3c099903-1e7d-eb88-5e6f-91b6bed10048"
href="https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following"
moz-do-not-send="true">
How content changes are followed in file() and
wildcard-file() sources</a>.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5338/hovercard"
class="OWAAutoLink"
id="OWA47219dcc-99bc-bb2d-cddd-0e4ca81eebb3"
href="https://github.com/syslog-ng/syslog-ng/pull/5338"
moz-do-not-send="true">#5338</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>opentelemetry()</code>,
<code>loki()</code> destination: Add support for templated <code>header()</code> values<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5184/hovercard"
class="OWAAutoLink"
id="OWA4491306e-22c5-b29c-3b9f-61b6cfaf15e7"
href="https://github.com/syslog-ng/syslog-ng/pull/5184"
moz-do-not-send="true">#5184</a>)</div>
</li>
</ul>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>Bugfixes</b></div>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>syslog-ng-otlp()</code> destination:
Fixed a crash.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5267/hovercard"
class="OWAAutoLink"
id="OWA8fefd32d-3eae-69f0-ffe2-8eba681d665c"
href="https://github.com/syslog-ng/syslog-ng/pull/5267"
moz-do-not-send="true">#5267</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">Fixed some time
parsing and time formatting issues.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5386/hovercard"
class="OWAAutoLink"
id="OWA2af8b2bd-9899-0140-a563-435a9ba1c972"
href="https://github.com/syslog-ng/syslog-ng/pull/5386"
moz-do-not-send="true">#5386</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">syslogformat:
Fix integer overflow on set pri<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5254/hovercard"
class="OWAAutoLink"
id="OWA8d785fe1-4751-c148-a0c1-04d60dd359b9"
href="https://github.com/syslog-ng/syslog-ng/pull/5254"
moz-do-not-send="true">#5254</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>network(),
syslog()</code>: Fixed a potential crash for TLS
destinations during reload</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">In 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="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5303/hovercard"
class="OWAAutoLink"
id="OWAe25c2ec5-6740-7a80-26c6-9454aaf6b84d"
href="https://github.com/syslog-ng/syslog-ng/pull/5303"
moz-do-not-send="true">#5303</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>collectd()</code>:
fix not reading server responses<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5390/hovercard"
class="OWAAutoLink"
id="OWA1105d838-4c15-e46c-bdd0-77c7c7507b9b"
href="https://github.com/syslog-ng/syslog-ng/pull/5390"
moz-do-not-send="true">#5390</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">metrics: <code>
syslog-ng-ctl --reset</code> will no longer reset
Prometheus metrics<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5261/hovercard"
class="OWAAutoLink"
id="OWA83cbd238-8262-04c6-7d39-5189ba255e56"
href="https://github.com/syslog-ng/syslog-ng/pull/5261"
moz-do-not-send="true">#5261</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>rate-limit()</code>:
fix precision issue that could occur at a very low message
rate<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5346/hovercard"
class="OWAAutoLink"
id="OWA92506a95-2e83-67e7-75f2-2e23c08bcb1b"
href="https://github.com/syslog-ng/syslog-ng/pull/5346"
moz-do-not-send="true">#5346</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
<code>syslog()</code> sources and destinations: fix TCP/TLS
shutdown<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5271/hovercard"
class="OWAAutoLink"
id="OWA6ba6f48d-60af-16f9-ce38-2e53693822a9"
href="https://github.com/syslog-ng/syslog-ng/pull/5271"
moz-do-not-send="true">#5271</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="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="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5281/hovercard"
class="OWAAutoLink"
id="OWAc0e8fefe-e27d-3da5-7dc2-51ad3a13e6dc"
href="https://github.com/syslog-ng/syslog-ng/pull/5281"
moz-do-not-send="true">#5281</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
<code>syslog()</code> destinations: handle async TLS
messages (KeyUpdate, etc.)<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5390/hovercard"
class="OWAAutoLink"
id="OWAa3ac4307-be78-9f95-5a76-215786dceea8"
href="https://github.com/syslog-ng/syslog-ng/pull/5390"
moz-do-not-send="true">#5390</a>)</div>
</li>
</ul>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>Notes to developers</b></div>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
editorconfig: configure supported editors for the project's
style<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5331/hovercard"
class="OWAAutoLink"
id="OWA9f0200a4-f993-a914-a057-8613ce61c2f4"
href="https://github.com/syslog-ng/syslog-ng/pull/5331"
moz-do-not-send="true">#5331</a>)</li>
</ul>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>Other changes</b></div>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">java-modules:
Upgrade java
<code>common</code> and <code>hdfs</code> dependencies.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5366/hovercard"
class="OWAAutoLink"
id="OWAcd69fd17-3f48-b8ef-bc12-5778fecd3f06"
href="https://github.com/syslog-ng/syslog-ng/pull/5366"
moz-do-not-send="true">#5366</a>)</div>
</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">java-modules:
Remove depricated java destinations:
<code>elasticsearch2</code>, <code>kafka-java</code> and
the <code>java-http</code>.</div>
<div role="presentation"
style="margin-top: 1em; margin-bottom: 1em;">The following
destinations can be used instead:</div>
</li>
<ul>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>elasticsearch2</code> - Both <a rel="nofollow"
class="OWAAutoLink"
id="OWA55162fde-0d2c-2281-4aea-59918504f674"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/035_elasticsearch-datastream/README"
moz-do-not-send="true">
elastic-datastream()</a> or the <a rel="nofollow"
class="OWAAutoLink"
id="OWAc3d2fc4c-a269-a5c8-9f44-4f032b192f07"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/030_Elasticsearch-http/README"
moz-do-not-send="true">
elastic-http()</a> can be used.</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>kafka-java</code> - The C based <a rel="nofollow"
class="OWAAutoLink"
id="OWAb563cc7a-8d37-8589-73e0-65ae2d9dec46"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/README"
moz-do-not-send="true">
kafka-c()</a> destination can be used instead. To help
with migration check out the
<a rel="nofollow" class="OWAAutoLink"
id="OWA74dd0b3c-1e2e-922c-aa1a-487a8c7ef353"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/001_Shifting_from_Java_to_C"
moz-do-not-send="true">
Shifting from Java implementation to C implementation</a> page.</li>
<li
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>java-http</code> - the C based <a rel="nofollow"
class="OWAAutoLink"
id="OWAd8cafee0-14ab-303c-81f1-1d0b5a7c0128"
href="https://syslog-ng.github.io/admin-guide/070_Destinations/081_http/README"
moz-do-not-send="true">
http()</a> destination can be used.<br>
(<a data-hovercard-type="pull_request"
data-hovercard-url="/syslog-ng/syslog-ng/pull/5366/hovercard"
class="OWAAutoLink"
id="OWAb261075a-781e-6fd0-9215-4e3a40933aba"
href="https://github.com/syslog-ng/syslog-ng/pull/5366"
moz-do-not-send="true">#5366</a>)</li>
</ul>
</ul>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<b>Credits</b></div>
<div class="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", 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="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", 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="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", 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="elementToProof"
style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Alex Becker, Attila Szakacs, Balazs Scheidler, Bálint Horváth,<br>
David Mandelberg, Eli Schwartz, Hofi, Kovács Gergő Ferenc,<br>
László Várady, Peter Czanik (CzP), Petr Vaganov,<br>
Shiraz, Szilard Parrag, Tamas Pal, Tamás Kosztyu, shifter</div>
<div
style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div class="elementToProof" id="Signature">
<div
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
<div class="elementToProof"
style="direction: ltr; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Peter Czanik (CzP) <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]"><[email protected]></a><br>
Balabit (a OneIdentity company) / syslog-ng upstream<br>
<a target="_blank" href="https://syslog-ng.com/community/"
moz-do-not-send="true">https://syslog-ng.com/<wbr>community/</a><br>
<a target="_blank" href="https://twitter.com/PCzanik"
moz-do-not-send="true" class="moz-txt-link-freetext">https://twitter.com/PCzanik</a></div>
<div
style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
class="elementToProof">
<br>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">______________________________________________________________________________
Member info: <a class="moz-txt-link-freetext" href="https://lists.balabit.hu/mailman/listinfo/syslog-ng">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>
Documentation: <a class="moz-txt-link-freetext" href="http://www.balabit.com/support/documentation/?product=syslog-ng">http://www.balabit.com/support/documentation/?product=syslog-ng</a>
FAQ: <a class="moz-txt-link-freetext" href="http://www.balabit.com/wiki/syslog-ng-faq">http://www.balabit.com/wiki/syslog-ng-faq</a>
</pre>
</blockquote>
</body>
</html>
--------------Y5XuoHaePIZb40vvFyAdDt28--
--===============0070327105166436691==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
______________________________________________________________________________
Member info: %(web_page_url)slistinfo/%(_internal_name)s
Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
FAQ: http://www.balabit.com/wiki/syslog-ng-faq
--===============0070327105166436691==--