mqforward is forwarder from MQTT to Influxdb. This subscribes a topic with wildcard and forward a payload to Influxdb. The value should be JSON or msgpack.
for example,
- Publish
{"a": 1, "b": 2}
to "mqforward/a/b", - Subscribe "mqforward/#",
in the influxdb,
- value
a=1 and b=2
into the a.b series. so you canSELECT a, b FROM "a.b"
If udp is true in the config, send series over UDP to InfluxDB. otherwise, use HTTP.
Just go get (it takes for a while)
$ go get github.com/shirou/mqforward
then, type
$ go install github.com/shirou/mqforward
Config example is below. If you put config to ~/.mqforward.ini, it will be loaded automatically.
[mqforward-mqtt] hostname= localhost port = 1883 username= "" password= "" topic = mqforward/# [mqforward-influxdb] # url = https://127.0.01/subpath hostname = 127.0.0.1 scheme = http # or https port = 4444 db = test username = root password = root caCerts = ~/.certs/cacert.pem # can be empty insecure = true # if certificates are not checked series = weather topicMap = mqforward/{location}/{sensor} # creates tags 'location' and 'sensor' from topic path
Set path to $GOPATH/bin,
$ mqforward run
or
mqforward run -c someconfig.ini
MIT