#mqtt #influx-db #cli-tool #cli #config-file

app mqtt2influxdb

将 MQTT 消息推送到 InfluxDB2 的 CLI 工具

3 个版本

0.1.2 2023 年 9 月 19 日
0.1.1 2022 年 12 月 1 日
0.1.0 2022 年 9 月 3 日

#1294命令行工具

MIT 许可证

15KB
217 代码行

mqtt2influxdb

将 MQTT 消息推送到 InfluxDB2 的 CLI 工具。

接口

$ ./mqtt2influxdb -h
mqtt2influxdb 0.1.0
CLI tool to push MQTT messages to InfluxDB2

USAGE:
    mqtt2influxdb [OPTIONS] --influxdb-bucket <INFLUXDB_BUCKET> --influxdb-org <INFLUXDB_ORG> --influxdb-jwt <INFLUXDB_JWT> --config <CONFIG>

OPTIONS:
        --config <CONFIG>
            Path to the mapping configuration file used to translate MQTT messages to InfluxDB2
            points [env: CONFIG=]

    -h, --help
            Print help information

        --influxdb-bucket <INFLUXDB_BUCKET>
            InfluxDB2 bucket to write all the data to [env: INFLUXDB_BUCKET=]

        --influxdb-jwt <INFLUXDB_JWT>
            InfluxDB2 secret token for the account to use [env: INFLUXDB_JWT=]

        --influxdb-org <INFLUXDB_ORG>
            InfluxDB2 organization for the database. [env: INFLUXDB_ORG=]

        --influxdb-url <INFLUXDB_URL>
            Url for the InfluxDB2 server to connect to [env: INFLUXDB_URL=] [default:
            https://127.0.0.1:8086]

        --mqtt-client-id <MQTT_CLIENT_ID>
            Client ID used by this application to identify itself to the MQTT server [env:
            MQTT_CLIENT_ID=] [default: mqtt2influxdb]

        --mqtt-url <MQTT_URL>
            Url for the MQTT server to connect to [env: MQTT_URL=] [default: mqtt://127.0.0.1]

    -V, --version
            Print version information

可以使用环境变量和命令行标志来配置应用程序,但我强烈建议不要使用命令行标志 --influxdb-jwt,因为这将对系统中运行的任何进程都可用。映射配置仅通过 --config 指向的配置文件来完成。

有关配置文件的示例,请查看仓库中的 ./examples 文件夹。

设计目标

  • 易于使用
  • 灵活的配置
  • 适合作为持续运行的守护进程

待办事项

如果您想贡献,以下功能尚未实现或确定

  • 确定如何将 MQTT 主题的一部分映射到字段或标签。例如,将 /devicetype/<identifier>/temperature 映射到标签 identifier=<identifier>
  • 将值类型 MQTT 消息映射到 InfluxDB2 的其他类型,而不是文本/字符串。
  • 支持 MQTT 模式,如 Homie
  • 确定为什么 InfluxDB2 需要发送组织。
  • 确定为什么具有最小写入权限的 InfluxDB2 令牌失败。
  • 添加有关如何在 Linux 上作为守护进程运行的文档。

依赖项

~13–29MB
~417K SLoC