telegraf/plugins/inputs/udp_listener/README.md

87 lines
2.5 KiB
Markdown
Raw Normal View History

# UDP listener service input plugin
The UDP listener is a service input plugin that listens for messages on a UDP
socket and adds those messages to InfluxDB.
The plugin expects messages in the
[Telegraf Input Data Formats](https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md).
### Configuration:
This is a sample configuration for the plugin.
```toml
[[inputs.udp_listener]]
## Address and port to host UDP listener on
service_address = ":8092"
## Number of UDP messages allowed to queue up. Once filled, the
## UDP listener will start dropping packets.
allowed_pending_messages = 10000
## Data format to consume.
## Each data format has it's own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
data_format = "influx"
```
## A Note on UDP OS Buffer Sizes
Some OSes (most notably, Linux) place very restricive limits on the performance
of UDP protocols. It is _highly_ recommended that you increase these OS limits to
at least 8MB before trying to run large amounts of UDP traffic to your instance.
8MB is just a recommendation, and can be adjusted higher.
### Linux
Check the current UDP/IP receive buffer limit & default by typing the following
commands:
```
sysctl net.core.rmem_max
sysctl net.core.rmem_default
```
If the values are less than 8388608 bytes you should add the following lines to
the /etc/sysctl.conf file:
```
net.core.rmem_max=8388608
net.core.rmem_default=8388608
```
Changes to /etc/sysctl.conf do not take effect until reboot.
To update the values immediately, type the following commands as root:
```
sysctl -w net.core.rmem_max=8388608
sysctl -w net.core.rmem_default=8388608
```
### BSD/Darwin
On BSD/Darwin systems you need to add about a 15% padding to the kernel limit
socket buffer. Meaning if you want an 8MB buffer (8388608 bytes) you need to set
the kernel limit to `8388608*1.15 = 9646900`. This is not documented anywhere but
happens
[in the kernel here.](https://github.com/freebsd/freebsd/blob/master/sys/kern/uipc_sockbuf.c#L63-L64)
Check the current UDP/IP buffer limit by typing the following command:
```
sysctl kern.ipc.maxsockbuf
```
If the value is less than 9646900 bytes you should add the following lines
to the /etc/sysctl.conf file (create it if necessary):
```
kern.ipc.maxsockbuf=9646900
```
Changes to /etc/sysctl.conf do not take effect until reboot.
To update the values immediately, type the following commands as root:
```
sysctl -w kern.ipc.maxsockbuf=9646900
```