2018-02-17 05:51:20 +08:00
|
|
|
# MQTT Producer Output Plugin
|
|
|
|
|
|
2022-04-21 23:45:47 +08:00
|
|
|
This plugin writes to a [MQTT Broker](http://http://mqtt.org/) acting as a mqtt
|
2022-07-27 23:36:57 +08:00
|
|
|
Producer. It supports MQTT protocols `3.1.1` and `5`.
|
2018-02-17 05:51:20 +08:00
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## Mosquitto v2.0.12+ and `identifier rejected`
|
|
|
|
|
|
|
|
|
|
In v2.0.12+ of the mosquitto MQTT server, there is a
|
|
|
|
|
[bug](https://github.com/eclipse/mosquitto/issues/2117) which requires the
|
|
|
|
|
`keep_alive` value to be set non-zero in your telegraf configuration. If not
|
|
|
|
|
set, the server will return with `identifier rejected`.
|
|
|
|
|
|
2022-07-27 23:36:57 +08:00
|
|
|
As a reference `eclipse/paho.golang` sets the `keep_alive` to 30.
|
2022-01-10 22:45:32 +08:00
|
|
|
|
2022-10-27 03:58:36 +08:00
|
|
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
|
|
|
|
|
|
|
|
|
In addition to the plugin-specific configuration settings, plugins support
|
|
|
|
|
additional global and plugin configuration settings. These settings are used to
|
|
|
|
|
modify metrics, tags, and field or create aliases and configure ordering, etc.
|
|
|
|
|
See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
|
|
|
|
|
2023-01-12 23:55:21 +08:00
|
|
|
[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins
|
2022-10-27 03:58:36 +08:00
|
|
|
|
2023-02-03 00:31:23 +08:00
|
|
|
## Secret-store support
|
|
|
|
|
|
|
|
|
|
This plugin supports secrets from secret-stores for the `username` and
|
|
|
|
|
`password` option.
|
|
|
|
|
See the [secret-store documentation][SECRETSTORE] for more details on how
|
|
|
|
|
to use them.
|
|
|
|
|
|
|
|
|
|
[SECRETSTORE]: ../../../docs/CONFIGURATION.md#secret-store-secrets
|
|
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## Configuration
|
|
|
|
|
|
2022-05-25 22:48:59 +08:00
|
|
|
```toml @sample.conf
|
2022-04-08 05:55:03 +08:00
|
|
|
# Configuration for MQTT server to send metrics to
|
2018-02-17 05:51:20 +08:00
|
|
|
[[outputs.mqtt]]
|
2022-01-10 22:45:32 +08:00
|
|
|
## MQTT Brokers
|
|
|
|
|
## The list of brokers should only include the hostname or IP address and the
|
2022-07-27 23:36:57 +08:00
|
|
|
## port to the broker. This should follow the format `[{scheme}://]{host}:{port}`. For
|
|
|
|
|
## example, `localhost:1883` or `mqtt://localhost:1883`.
|
|
|
|
|
## Scheme can be any of the following: tcp://, mqtt://, tls://, mqtts://
|
|
|
|
|
## non-TLS and TLS servers can not be mix-and-matched.
|
|
|
|
|
servers = ["localhost:1883", ] # or ["mqtts://tls.example.com:1883"]
|
|
|
|
|
|
|
|
|
|
## Protocol can be `3.1.1` or `5`. Default is `3.1.1`
|
|
|
|
|
# procotol = "3.1.1"
|
2018-04-13 05:34:55 +08:00
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## MQTT Topic for Producer Messages
|
|
|
|
|
## MQTT outputs send metrics to this topic format:
|
2023-01-18 02:45:45 +08:00
|
|
|
## {{ .TopicPrefix }}/{{ .Hostname }}/{{ .PluginName }}/{{ .Tag "tag_key" }}
|
|
|
|
|
## (e.g. prefix/web01.example.com/mem/some_tag_value)
|
|
|
|
|
## Each path segment accepts either a template placeholder, an environment variable, or a tag key
|
2023-01-26 00:03:46 +08:00
|
|
|
## of the form `{{.Tag "tag_key_name"}}`. Empty path elements as well as special MQTT characters
|
2023-01-18 02:45:45 +08:00
|
|
|
## (such as `+` or `#`) are invalid to form the topic name and will lead to an error.
|
|
|
|
|
## In case a tag is missing in the metric, that path segment omitted for the final topic.
|
|
|
|
|
topic = "telegraf/{{ .Hostname }}/{{ .PluginName }}"
|
2018-04-13 05:34:55 +08:00
|
|
|
|
2018-02-17 05:51:20 +08:00
|
|
|
## QoS policy for messages
|
2022-01-10 22:45:32 +08:00
|
|
|
## The mqtt QoS policy for sending messages.
|
|
|
|
|
## See https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q029090_.htm
|
2018-05-19 10:03:00 +08:00
|
|
|
## 0 = at most once
|
|
|
|
|
## 1 = at least once
|
|
|
|
|
## 2 = exactly once
|
2022-01-10 22:45:32 +08:00
|
|
|
# qos = 2
|
|
|
|
|
|
|
|
|
|
## Keep Alive
|
|
|
|
|
## Defines the maximum length of time that the broker and client may not
|
|
|
|
|
## communicate. Defaults to 0 which turns the feature off.
|
|
|
|
|
##
|
|
|
|
|
## For version v2.0.12 and later mosquitto there is a bug
|
|
|
|
|
## (see https://github.com/eclipse/mosquitto/issues/2117), which requires
|
|
|
|
|
## this to be non-zero. As a reference eclipse/paho.mqtt.golang defaults to 30.
|
|
|
|
|
# keep_alive = 0
|
2018-04-13 05:34:55 +08:00
|
|
|
|
2018-02-17 05:51:20 +08:00
|
|
|
## username and password to connect MQTT server.
|
|
|
|
|
# username = "telegraf"
|
|
|
|
|
# password = "metricsmetricsmetricsmetrics"
|
2018-04-13 05:34:55 +08:00
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## client ID
|
|
|
|
|
## The unique client id to connect MQTT server. If this parameter is not set
|
|
|
|
|
## then a random ID is generated.
|
2018-02-17 05:51:20 +08:00
|
|
|
# client_id = ""
|
2018-04-13 05:34:55 +08:00
|
|
|
|
2018-02-17 05:51:20 +08:00
|
|
|
## Timeout for write operations. default: 5s
|
|
|
|
|
# timeout = "5s"
|
2018-04-13 05:34:55 +08:00
|
|
|
|
2018-05-05 07:33:23 +08:00
|
|
|
## Optional TLS Config
|
|
|
|
|
# tls_ca = "/etc/telegraf/ca.pem"
|
|
|
|
|
# tls_cert = "/etc/telegraf/cert.pem"
|
|
|
|
|
# tls_key = "/etc/telegraf/key.pem"
|
2022-01-10 22:45:32 +08:00
|
|
|
|
2018-05-05 07:33:23 +08:00
|
|
|
## Use TLS but skip chain & host verification
|
2018-02-17 05:51:20 +08:00
|
|
|
# insecure_skip_verify = false
|
2019-02-12 09:25:25 +08:00
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## When true, metrics will be sent in one MQTT message per flush. Otherwise,
|
2018-05-19 10:03:00 +08:00
|
|
|
## metrics are written one metric per MQTT message.
|
2018-05-19 09:55:02 +08:00
|
|
|
# batch = false
|
2019-02-12 09:25:25 +08:00
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## When true, metric will have RETAIN flag set, making broker cache entries until someone
|
|
|
|
|
## actually reads it
|
2019-02-12 09:25:25 +08:00
|
|
|
# retain = false
|
2018-05-19 09:55:02 +08:00
|
|
|
|
2022-01-10 22:45:32 +08:00
|
|
|
## Each data format has its own unique set of configuration options, read
|
|
|
|
|
## more about them here:
|
|
|
|
|
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
|
|
|
|
|
data_format = "influx"
|
2023-02-16 17:55:24 +08:00
|
|
|
|
|
|
|
|
## Optional MQTT 5 publish properties
|
|
|
|
|
## These setting only apply if the "protocol" property is set to 5. This must
|
|
|
|
|
## be defined at the end of the plugin settings, otherwise TOML will assume
|
|
|
|
|
## anything else is part of this table. For more details on publish properties
|
|
|
|
|
## see the spec:
|
|
|
|
|
## https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901109
|
|
|
|
|
# [outputs.mqtt.v5]
|
|
|
|
|
# content_type = ""
|
|
|
|
|
# response_topic = ""
|
|
|
|
|
# message_expiry = "0s"
|
|
|
|
|
# topic_alias = 0
|
|
|
|
|
# [outputs.mqtt.v5.user_properties]
|
|
|
|
|
# "key1" = "value 1"
|
|
|
|
|
# "key2" = "value 2"
|
2018-02-17 05:51:20 +08:00
|
|
|
```
|