Skip to content
50 changes: 41 additions & 9 deletions pipeline/inputs/collectd.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
# Collectd

The _Collectd_ input plugin lets you receive datagrams from the `collectd` service.
The _Collectd_ input plugin lets you receive datagrams from the `collectd` service over `UDP`. The plugin listens for collectd network protocol packets and converts them into Fluent Bit records.

## Configuration parameters

The plugin supports the following configuration parameters:

| Key | Description | Default |
|:-----------|:--------------------------------------------------------------------------------------------------------|:-------------------------------|
| `Listen` | Set the address to listen to. | `0.0.0.0` |
| `Port` | Set the port to listen to. | `25826` |
| `TypesDB` | Set the data specification file. | `/usr/share/collectd/types.db` |
| `Threaded` | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` |
| `listen` | Set the address to listen to. | `0.0.0.0` |
| `port` | Set the port to listen to. | `25826` |
| `typesdb` | Set the data specification file. You can specify multiple files separated by commas. Later entries take precedence over earlier ones. | `/usr/share/collectd/types.db` |
| `threaded` | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` |

## Configuration examples
## Get started

Here is a basic configuration example:
To receive collectd datagrams, you can run the plugin from the command line or through the configuration file.

### Command line

From the command line you can let Fluent Bit listen for `collectd` datagrams with the following options:

```shell
fluent-bit -i collectd -o stdout
```

By default, the service listens on all interfaces (`0.0.0.0`) using `UDP` port `25826`. You can change this directly:

```shell
fluent-bit -i collectd -p listen=192.168.3.2 -p port=9090 -o stdout
```

In this example, collectd datagrams will only arrive through the network interface at `192.168.3.2` address and `UDP` port `9090`.

### Configuration file

In your main configuration file append the following:

{% tabs %}
{% tab title="fluent-bit.yaml" %}
Expand All @@ -26,7 +46,7 @@
- name: collectd
listen: 0.0.0.0
port: 25826
typesdb: '/user/share/collectd/types.db,/etc/collectd/custom.db'
typesdb: '/usr/share/collectd/types.db,/etc/collectd/custom.db'

outputs:
- name: stdout
Expand All @@ -53,4 +73,16 @@

With this configuration, Fluent Bit listens to `0.0.0.0:25826`, and outputs incoming datagram packets to `stdout`.

You must set the same `types.db` files that your `collectd` server uses. Otherwise, Fluent Bit might not be able to interpret the payload properly.
## TypesDB configuration

Check warning on line 76 in pipeline/inputs/collectd.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Headings] 'TypesDB configuration' should use sentence-style capitalization. Raw Output: {"message": "[FluentBit.Headings] 'TypesDB configuration' should use sentence-style capitalization.", "location": {"path": "pipeline/inputs/collectd.md", "range": {"start": {"line": 76, "column": 4}}}, "severity": "INFO"}

You must set the same `types.db` files that your `collectd` server uses. Otherwise, Fluent Bit might not be able to interpret the payload properly.

The `TypesDB` parameter supports multiple files separated by commas. When multiple files are specified, later entries take precedence over earlier ones if there are duplicate type definitions. This allows you to override default types with custom definitions.

Check warning on line 80 in pipeline/inputs/collectd.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.WordList] Use 'lets you' instead of 'allows you to'. Raw Output: {"message": "[FluentBit.WordList] Use 'lets you' instead of 'allows you to'.", "location": {"path": "pipeline/inputs/collectd.md", "range": {"start": {"line": 80, "column": 199}}}, "severity": "INFO"}

For example:

```yaml
typesdb: '/usr/share/collectd/types.db,/etc/collectd/custom.db'
```
In this configuration, custom type definitions in `/etc/collectd/custom.db` will override any matching definitions from `/usr/share/collectd/types.db`.