Skip to content

Commit

Permalink
Adds syslog-ng-otlp source and destination
Browse files Browse the repository at this point in the history
  • Loading branch information
eldarnash committed Sep 30, 2023
1 parent faab1ea commit d64e846
Show file tree
Hide file tree
Showing 3 changed files with 171 additions and 0 deletions.
55 changes: 55 additions & 0 deletions content/chapter-destinations/destination-syslog-ng-otlp/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: "syslog-ng-otlp(): Forward logs to another node using OpenTelemetry"
weight: 3950
---
<!-- This file is under the copyright of Axoflow, and licensed under Apache License 2.0, except for using the Axoflow and AxoSyslog trademarks. -->

Available in {{% param "product.abbrev" %}} version 4.4 and later.

{{< include-headless "chunk/syslog-ng-otlp-intro.md" >}}

<!-- FIXME: internal(<yesno>) option is globally undocumented
FIXME: worker-partition-key(<template-content>) Is that a renamed version of the partition-key() option from parallelize? https://axoflow.com/docs/axosyslog-core/chapter-nonsequential-processing/
-->

## Options

The `syslog-ng-otlp()` destination has the following options.

{{< include-headless "chunk/grpc-authentication.md" >}}

## batch-lines()

| | |
| -------- | ------ |
| Type: | number |
| Default: | 0 |

{{% include-headless "chunk/option-description-destination-batch-lines.md" %}}

{{% include-headless "chunk/option-destination-batch-timeout.md" %}}

{{< include-headless "chunk/option-destination-diskbuffer.md" >}}

{{< include-headless "chunk/option-destination-hook.md" >}}

{{% include-headless "chunk/option-destination-log-fifo-size.md" %}}

{{% include-headless "chunk/option-persist-name.md" %}}

{{% include-headless "chunk/option-destination-retries.md" %}}

{{% include-headless "chunk/option-destination-throttle.md" %}}

{{% include-headless "chunk/option-source-time-reopen.md" %}}

## url()

| | |
| -------- | -------------------------- |
| Type: | string |
| Default: | `localhost:9095` |

*Description:* The URL of the {{% param "product.abbrev" %}} receiver.

{{< include-headless "chunk/option-destination-threaded-workers.md" >}}
92 changes: 92 additions & 0 deletions content/chapter-sources/source-syslog-ng-otlp/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: "syslog-ng-otlp(): Receive logs from another node using OpenTelemetry"
weight: 3950
---
<!-- This file is under the copyright of Axoflow, and licensed under Apache License 2.0, except for using the Axoflow and AxoSyslog trademarks. -->


<!--
FIXME default-severity(<string>) this is globally undocumented
FIXME format(<string>)
FIXME does it make sense to confogire it? hook-commands(
setup(<string>)
shutdown(<string>)
startup(<string>)
teardown(<string>)
)
internal(<yesno>)
long-hostnames(<yesno>)
-->

## Options

The `syslog-ng-otlp()` source has the following options.

{{< include-headless "chunk/grpc-authentication.md" >}}

## chain-hostnames()

| | |
| ---------------- | ---------------- |
| Accepted values: | `yes`, `no` |
| Default: | `no` |

*Description:* Enable or disable the chained hostname format. For details, see the [chain-hostnames() global option]({{< relref "/chapter-global-options/reference-options/_index.md#global-options-chain-hostnames" >}}).

{{< include-headless "chunk/option-source-default-facility.md" >}}

{{% include-headless "chunk/option-source-default-level-journal.md" %}}

{{% include-headless "chunk/option-source-default-priority.md" %}}

## dns-cache()

| | |
| ---------------- | ---------------- |
| Accepted values: | `yes`, `no` |
| Default: | `no` |

*Description:* Enable or disable DNS cache usage.

{{< include-headless "chunk/option-source-ebpf.md" >}}

{{< include-headless "chunk/option-source-flags.md" >}}

{{< include-headless "chunk/option-source-host-override.md" >}}

{{< include-headless "chunk/option-source-keep-hostname.md" >}}

{{< include-headless "chunk/option-source-keep-timestamp.md" >}}

{{% include-headless "chunk/option-source-file-log-iw-size.md" %}}

{{< include-headless "chunk/option-source-log-prefix.md" >}}

{{< include-headless "chunk/option-source-normalize-hostnames.md" >}}

{{% include-headless "chunk/option-persist-name.md" %}}

## port()

| | |
| -------- | ------ |
| Type: | integer |
| Default: | |

<!-- FIXME what is the default port? -->

*Description:* The port number to bind to.

{{% include-headless "chunk/option-source-program-override.md" %}}

{{< include-headless "chunk/option-source-tags.md" >}}

{{< include-headless "chunk/option-source-time-zone.md" >}}

{{% include-headless "chunk/option-source-time-reopen.md" %}}

{{< include-headless "chunk/option-source-use-dns.md" >}}

{{< include-headless "chunk/option-source-use-fqdn.md" >}}
24 changes: 24 additions & 0 deletions content/headless/chunk/syslog-ng-otlp-intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
---
The `syslog-ng-otlp()` source and destination allows you to transfer the internal representation of log messages between {{% param "product.abbrev" %}} instances using the OpenTelemetry protocol. Unlike the traditional [syslog-ng()]({{< relref "/chapter-destinations/destination-syslog-ng/_index.md" >}}) drivers that rely on simple TCP connections, `syslog-ng-otlp()` leverages the OpenTelemetry protocol for efficient and reliable log message transmission.

The key benefits of the `syslog-ng-otlp()` drivers are:

- scalability (via the `workers()` option),
- built-in application layer acknowledgement,
- support for Google service authentication (ADC or ALTS), and
- improved load balancing capabilities.

To use it, configure a `syslog-ng-otlp()` destination on the sender node, and a `syslog-ng-otlp()` source on the receiver node, like this:

```shell
destination d_syslog_ng_otlp {
syslog-ng-otlp(url("your-receiver-syslog-ng-instance:12346"));
};
```

```shell
source s_syslog_ng_otlp {
syslog-ng-otlp();
};
```

0 comments on commit d64e846

Please sign in to comment.