MQTT 和 SQLite 集成

通过易于集成的强大性能,由 InfluxData 构建的开源数据连接器 Telegraf 提供支持。

info

这不是实时大规模查询的推荐配置。 为了查询和压缩优化、高速摄取和高可用性,您可能需要考虑 MQTT 和 InfluxDB

50 亿+

Telegraf 下载量

#1

时间序列数据库
来源:DB Engines

10 亿+

InfluxDB 下载量

2,800+

贡献者

目录

强大的性能,无限的扩展能力

收集、组织和处理海量高速数据。 当您将任何数据视为时间序列数据时,它都更有价值。 借助 InfluxDB,排名第一的时间序列平台,旨在与 Telegraf 一起扩展。

查看入门方法

输入和输出集成概述

MQTT Telegraf 插件旨在从指定的 MQTT 主题读取数据并创建指标,从而使用户能够利用 MQTT 进行实时数据收集和监控。

Telegraf 的 SQL 输出插件通过为每种指标类型动态创建表,将指标存储在 SQL 数据库中。 当配置为 SQLite 时,它使用基于文件的 DSN 和专为轻量级嵌入式数据库使用而定制的最小 SQL 模式。

集成详情

MQTT

MQTT 插件允许从指定的 MQTT 主题读取指标,使用支持的输入数据格式创建指标。 此插件作为服务输入运行,它侦听传入的指标或事件,而不是像普通插件那样按设定的时间间隔收集它们。 该插件的灵活性通过支持各种代理 URL、主题和连接功能(包括服务质量 (QoS) 级别和持久会话)得到增强。 它的配置选项结合了全局设置,可以修改指标并有效地处理启动错误。 它还支持用于保护用户名和密码选项的密钥存储配置,从而确保与 MQTT 服务器的安全连接。

SQLite

SQL 输出插件使用动态模式将 Telegraf 指标写入 SQL 数据库,其中每种指标类型对应一个表。 对于 SQLite,该插件使用 modernc.org/sqlite 驱动程序,并且需要采用文件 URI 格式的 DSN(例如,“file:/path/to/telegraf.db?cache=shared”)。 此配置利用标准 ANSI SQL 进行表创建和数据插入,从而确保与 SQLite 的功能兼容。

配置

MQTT


[[inputs.mqtt_consumer]]
  servers = ["tcp://127.0.0.1:1883"]
  topics = [
    "telegraf/host01/cpu",
    "telegraf/+/mem",
    "sensors/#",
  ]
  # topic_tag = "topic"
  # qos = 0
  # connection_timeout = "30s"
  # keepalive = "60s"
  # ping_timeout = "10s"
  # max_undelivered_messages = 1000
  # persistent_session = false
  # client_id = ""
  # username = "telegraf"
  # password = "metricsmetricsmetricsmetrics"
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  # insecure_skip_verify = false
  # client_trace = false
  data_format = "influx"
  # [[inputs.mqtt_consumer.topic_parsing]]
  #   topic = ""
  #   measurement = ""
  #   tags = ""
  #   fields = ""
  #   [inputs.mqtt_consumer.topic_parsing.types]
  #      key = type

SQLite

[[outputs.sql]]
  ## Database driver
  ## Valid options: mssql (Microsoft SQL Server), mysql (MySQL), pgx (Postgres),
  ## sqlite (SQLite3), snowflake (snowflake.com), clickhouse (ClickHouse)
  driver = "sqlite"

  ## Data source name
  ## For SQLite, the DSN is a filename or URL with the scheme "file:".
  ## Example: "file:/path/to/telegraf.db?cache=shared"
  data_source_name = "file:/path/to/telegraf.db?cache=shared"

  ## Timestamp column name
  timestamp_column = "timestamp"

  ## Table creation template
  ## Available template variables:
  ##  {TABLE}        - table name as a quoted identifier
  ##  {TABLELITERAL} - table name as a quoted string literal
  ##  {COLUMNS}      - column definitions (list of quoted identifiers and types)
  table_template = "CREATE TABLE {TABLE} ({COLUMNS})"

  ## Table existence check template
  ## Available template variables:
  ##  {TABLE} - table name as a quoted identifier
  table_exists_template = "SELECT 1 FROM {TABLE} LIMIT 1"

  ## Initialization SQL (optional)
  init_sql = ""

  ## Maximum amount of time a connection may be idle. "0s" means connections are never closed due to idle time.
  connection_max_idle_time = "0s"

  ## Maximum amount of time a connection may be reused. "0s" means connections are never closed due to age.
  connection_max_lifetime = "0s"

  ## Maximum number of connections in the idle connection pool. 0 means unlimited.
  connection_max_idle = 2

  ## Maximum number of open connections to the database. 0 means unlimited.
  connection_max_open = 0

  ## Metric type to SQL type conversion
  ## The values on the left are the data types Telegraf has and the values on the right are the SQL types used when writing to SQLite.
  #[outputs.sql.convert]
  #  integer       = "INT"
  #  real          = "DOUBLE"
  #  text          = "TEXT"
  #  timestamp     = "TIMESTAMP"
  #  defaultvalue  = "TEXT"
  #  unsigned      = "UNSIGNED"
  #  bool          = "BOOL"

输入和输出集成示例

MQTT

  1. 智能家居监控:使用 MQTT Consumer 插件监控智能家居设置中的各种传感器。 在这种情况下,可以将插件配置为订阅不同设备的主题,例如温度、湿度和能耗。 通过聚合这些数据,房主可以可视化趋势并接收异常模式的警报,从而提高家庭自动化系统的整体质量和效率。

  2. 物联网环境传感:部署 MQTT Consumer 以收集来自分布在不同位置的传感器的环境数据。 例如,这可以包括来自空气质量传感器、温度传感器和噪声水平仪的读数。 可以将插件配置为从 MQTT 主题中提取相关标签和字段,从而可以对大规模环境条件进行详细分析和报告,为城市规划或环境倡议提供更好的决策支持。

  3. 实时车辆跟踪和遥测:将 MQTT Consumer 插件集成到车辆遥测系统中,该系统实时收集来自各种传感器的数据。 通过该插件,可以将与车辆性能、位置和燃油消耗相关的指标发送到集中监控仪表板。 这种实时遥测数据使车队管理人员能够通过主动数据分析来优化路线、降低燃油成本并改进车辆维护计划。

  4. 农业监控系统:利用此插件收集来自农业传感器的数据,这些传感器监控土壤湿度、作物健康状况和天气状况。 MQTT Consumer 可以订阅与农业设备和环境传感器相关的多个主题,使农民能够做出数据驱动的决策,以提高作物产量,同时节约资源,从而提高农业的可持续性。

SQLite

  1. 本地监控存储:将插件配置为将指标写入本地 SQLite 数据库文件。 这非常适合不需要设置全规模数据库服务器的轻量级部署。
  2. 嵌入式应用程序:使用 SQLite 作为嵌入在边缘设备中的应用程序的后端,受益于其基于文件的架构和最低的资源需求。
  3. 快速设置以进行测试:利用 SQLite 的易用性快速设置 Telegraf 指标收集的测试环境,而无需外部数据库服务。
  4. 自定义模式管理:如果您需要特定的列类型或索引,请调整表创建模板以预定义您的模式,从而确保与您的应用程序的需求兼容。

反馈

感谢您成为我们社区的一份子! 如果您有任何一般反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。

强大的性能,无限的扩展能力

收集、组织和处理海量高速数据。 当您将任何数据视为时间序列数据时,它都更有价值。 借助 InfluxDB,排名第一的时间序列平台,旨在与 Telegraf 一起扩展。

查看入门方法

相关集成

HTTP 和 InfluxDB 集成

HTTP 插件从一个或多个 HTTP(S) 端点收集指标。 它支持各种身份验证方法和数据格式的配置选项。

查看集成

Kafka 和 InfluxDB 集成

此插件从 Kafka 读取消息,并允许基于这些消息创建指标。 它支持各种配置,包括不同的 Kafka 设置和消息处理选项。

查看集成

Kinesis 和 InfluxDB 集成

Kinesis 插件允许从 AWS Kinesis 流中读取指标。 它支持多种输入数据格式,并提供带有 DynamoDB 的检查点功能,以实现可靠的消息处理。

查看集成