NATS 和 MongoDB 集成

强大的性能和简单的集成,由 InfluxData 构建的开源数据连接器 Telegraf 提供支持。

info

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

5B+

Telegraf 下载量

#1

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

1B+

InfluxDB 下载量

2,800+

贡献者

目录

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

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

查看入门方法

输入和输出集成概述

NATS Consumer Input Plugin 允许从 NATS 消息主题实时消费数据,无缝集成到 Telegraf 数据管道中,用于监控和指标收集。

MongoDB Telegraf Plugin 允许用户将指标发送到 MongoDB 数据库,自动管理时间序列集合。

集成详情

NATS

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

MongoDB

此插件将指标发送到 MongoDB,并与其时间序列功能无缝集成,允许在时间序列集合尚不存在时自动创建它们。它需要 MongoDB 5.0 或更高版本才能使用时间序列集合功能,这对于高效存储和查询基于时间的数据至关重要。此插件通过确保所有相关指标都正确存储和组织在 MongoDB 中来增强监控功能,从而为用户提供利用 MongoDB 强大的查询和聚合功能进行时间序列分析的能力。

配置

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"

MongoDB

[[outputs.mongodb]]
              # connection string examples for mongodb
              dsn = "mongodb://localhost:27017"
              # dsn = "mongodb://mongod1:27017,mongod2:27017,mongod3:27017/admin&replicaSet=myReplSet&w=1"

              # overrides serverSelectionTimeoutMS in dsn if set
              # timeout = "30s"

              # default authentication, optional
              # authentication = "NONE"

              # for SCRAM-SHA-256 authentication
              # authentication = "SCRAM"
              # username = "root"
              # password = "***"

              # for x509 certificate authentication
              # authentication = "X509"
              # tls_ca = "ca.pem"
              # tls_key = "client.pem"
              # # tls_key_pwd = "changeme" # required for encrypted tls_key
              # insecure_skip_verify = false

              # database to store measurements and time series collections
              # database = "telegraf"

              # granularity can be seconds, minutes, or hours.
              # configuring this value will be based on your input collection frequency.
              # see https://docs.mongodb.com/manual/core/timeseries-collections/#create-a-time-series-collection
              # granularity = "seconds"

              # optionally set a TTL to automatically expire documents from the measurement collections.
              # ttl = "360h"

输入和输出集成示例

NATS

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

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

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

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

MongoDB

  1. 物联网设备的 MongoDB 动态日志记录:利用此插件实时收集和存储来自大量物联网设备的指标。通过将设备日志直接发送到 MongoDB,您可以创建一个集中的数据库,该数据库允许轻松访问和查询健康指标和性能数据,从而根据历史趋势实现主动维护和故障排除。

  2. Web 流量的时间序列分析:使用 MongoDB Telegraf Plugin 收集和分析一段时间内的 Web 流量指标。此应用程序可以帮助您了解高峰使用时间、用户交互和行为模式,从而指导营销策略和基础设施扩展决策,以改善用户体验。

  3. 自动化监控和警报系统:将 MongoDB 插件集成到跟踪应用程序性能指标的自动化监控系统中。通过时间序列集合,您可以根据特定阈值设置警报,让您的团队在潜在问题影响用户之前做出响应。这种主动管理可以提高服务可靠性和整体性能。

  4. 指标存储中的数据保留和 TTL 管理:利用 MongoDB 集合中文档的 TTL 功能来自动过期过时的指标。这对于仅最近的性能数据相关的环境尤其有用,可以防止您的 MongoDB 数据库被旧指标塞满,并确保高效的数据管理。

反馈

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

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

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

查看入门方法

相关集成

HTTP 和 InfluxDB 集成

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

查看集成

Kafka 和 InfluxDB 集成

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

查看集成

Kinesis 和 InfluxDB 集成

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

查看集成