NATS 和 Redis 集成

通过 Telegraf(由 InfluxData 构建的开源数据连接器)提供支持,实现强大的性能和轻松集成。

info

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

50 亿+

Telegraf 下载量

#1

时序数据库
来源:DB Engines

10 亿+

InfluxDB 下载量

2,800+

贡献者

目录

强大性能,无限扩展

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

查看入门方法

输入和输出集成概述

NATS Consumer 输入插件支持从 NATS 消息主题实时消费数据,无缝集成到 Telegraf 数据管道中,用于监控和指标收集。

Redis 插件使用户能够将 Telegraf 收集的指标直接发送到 Redis。此集成非常适合需要强大的时序数据存储和分析的应用程序。

集成详情

NATS

NATS Consumer 插件允许 Telegraf 从指定的 NATS 主题读取指标,并基于支持的输入数据格式创建指标。利用队列组允许多个 Telegraf 实例并行从 NATS 集群读取数据,从而提高吞吐量和可靠性。此插件还支持各种身份验证方法,包括用户名/密码、NATS 凭据文件和 nkey 种子文件,确保与 NATS 服务器的安全通信。由于 JetStream 等功能有助于消费历史消息,因此在数据持久性和消息可靠性至关重要的环境中,此插件尤其有用。此外,配置各种操作参数的能力使此插件适用于高吞吐量场景,同时保持性能完整性。

Redis

Redis Telegraf 插件旨在将指标写入 RedisTimeSeries,这是一个专门用于时序数据的 Redis 数据库模块。此插件促进了 Telegraf 与 RedisTimeSeries 的集成,从而可以高效地存储和检索带时间戳的数据。借助 RedisTimeSeries,用户可以利用增强的功能来管理时序数据,包括聚合视图和范围查询。该插件提供各种配置选项,以实现安全连接到 Redis 数据库所需的灵活性,包括支持身份验证、超时、数据类型转换和 TLS 配置。底层技术利用了 Redis 的效率和可扩展性,使其成为高容量指标环境的绝佳选择,在这些环境中,实时处理至关重要。

配置

NATS

[[inputs.nats_consumer]]
  ## urls of NATS servers
  servers = ["nats://localhost:4222"]

  ## subject(s) to consume
  ## If you use jetstream you need to set the subjects
  ## in jetstream_subjects
  subjects = ["telegraf"]

  ## jetstream subjects
  ## jetstream is a streaming technology inside of nats.
  ## With jetstream the nats-server persists messages and
  ## a consumer can consume historical messages. This is
  ## useful when telegraf needs to restart it don't miss a
  ## message. You need to configure the nats-server.
  ## https://docs.nats.io/nats-concepts/jetstream.
  jetstream_subjects = ["js_telegraf"]

  ## name a queue group
  queue_group = "telegraf_consumers"

  ## Optional authentication with username and password credentials
  # username = ""
  # password = ""

  ## Optional authentication with NATS credentials file (NATS 2.0)
  # credentials = "/etc/telegraf/nats.creds"

  ## Optional authentication with nkey seed file (NATS 2.0)
  # nkey_seed = "/etc/telegraf/seed.txt"

  ## Use Transport Layer Security
  # secure = false

  ## Optional TLS Config
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = false

  ## Sets the limits for pending msgs and bytes for each subscription
  ## These shouldn't need to be adjusted except in very high throughput scenarios
  # pending_message_limit = 65536
  # pending_bytes_limit = 67108864

  ## Max undelivered messages
  ## This plugin uses tracking metrics, which ensure messages are read to
  ## outputs before acknowledging them to the original broker to ensure data
  ## is not lost. This option sets the maximum messages to read from the
  ## broker that have not been written by an output.
  ##
  ## This value needs to be picked with awareness of the agent's
  ## metric_batch_size value as well. Setting max undelivered messages too high
  ## can result in a constant stream of data batches to the output. While
  ## setting it too low may never flush the broker's messages.
  # max_undelivered_messages = 1000

  ## Data format to consume.
  ## 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_INPUT.md
  data_format = "influx"

Redis

[[outputs.redistimeseries]]
  ## The address of the RedisTimeSeries server.
  address = "127.0.0.1:6379"

  ## Redis ACL credentials
  # username = ""
  # password = ""
  # database = 0

  ## Timeout for operations such as ping or sending metrics
  # timeout = "10s"

  ## Enable attempt to convert string fields to numeric values
  ## If "false" or in case the string value cannot be converted the string
  ## field will be dropped.
  # convert_string_fields = true

  ## Optional TLS Config
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  # insecure_skip_verify = false

输入和输出集成示例

NATS

  1. 实时分析仪表板:利用 NATS 插件实时从各种 NATS 主题收集指标,并将它们馈送到集中式分析仪表板。这种设置可以立即查看实时应用程序性能,使团队能够快速响应操作问题或性能下降。

  2. 分布式系统监控:在分布式架构中部署配置了 NATS 插件的多个 Telegraf 实例。这种方法允许团队有效地聚合来自各种微服务的指标,从而提供系统健康状况和性能的整体视图,同时确保在传输过程中不会丢弃任何消息。

  3. 历史消息恢复:利用 NATS JetStream 的功能以及此插件,在 Telegraf 重新启动后恢复和处理历史消息。此功能对于需要高可靠性的应用程序尤其有益,即使在服务中断的情况下也能确保不会丢失任何关键指标。

  4. 动态负载均衡:实施动态负载均衡场景,其中 Telegraf 实例根据负载从 NATS 集群消费消息。调整队列组设置以控制活动消费者的数量,从而在需求波动时实现更好的资源利用和性能扩展。

Redis

  1. 监控物联网传感器数据:利用 Redis Telegraf 插件实时收集和存储来自物联网传感器的数据。通过将插件连接到 RedisTimeSeries 数据库,用户可以分析温度、湿度或其他环境因素的趋势。高效查询历史传感器数据的能力将有助于预测性维护和资源管理。

  2. 金融市场数据聚合:使用此插件跟踪和存储来自各种来源的时间敏感型金融数据。通过将指标发送到 Redis,金融机构可以聚合和分析市场趋势或价格随时间的变化,从而为他们提供从可靠的时序分析中获得的可操作见解。

  3. 应用程序性能监控 (APM):实施 Redis 插件以收集应用程序性能指标,例如响应时间和 CPU 使用率。用户可以使用 RedisTimeSeries 可视化其应用程序的性能随时间的变化,从而使他们能够快速识别瓶颈并优化资源分配。

  4. 能源消耗跟踪:利用此插件监控建筑物随时间变化的能源使用情况。通过与智能电表集成并将数据发送到 RedisTimeSeries,市政当局或企业可以分析能源消耗模式,从而帮助实施节能措施和可持续发展实践。

反馈

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

强大性能,无限扩展

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

查看入门方法

相关集成

HTTP 和 InfluxDB 集成

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

查看集成

Kafka 和 InfluxDB 集成

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

查看集成

Kinesis 和 InfluxDB 集成

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

查看集成