NATS 和 Grafana 集成

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

info

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

50 亿+

Telegraf 下载量

#1

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

10 亿+

InfluxDB 下载量

2,800+

贡献者

目录

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

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

查看入门方法

输入和输出集成概述

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

此插件使 Telegraf 能够将指标实时流式传输到 Grafana 仪表板,利用 Grafana Live 进行即时数据可视化和操作洞察。

集成详细信息

NATS

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

Grafana

Telegraf 可以使用 Websocket 输出插件将实时数据发送到 Grafana。Telegraf 收集的指标会立即推送到 Grafana 仪表板,从而实现实时可视化和分析。此插件非常适合需要低延迟、实时数据可视化的用例,例如操作监控、实时分析和即时事件响应场景。它支持身份验证标头、可自定义的数据序列化格式(如 JSON)以及通过 TLS 的安全通信,在动态、交互式仪表板环境中提供灵活性和易用性。

配置

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"

Grafana

[[outputs.websocket]]
  ## Grafana Live WebSocket endpoint
  url = "ws://localhost:3000/api/live/push/custom_id"

  ## Optional headers for authentication
  # [outputs.websocket.headers]
  #   Authorization = "Bearer YOUR_GRAFANA_API_TOKEN"

  ## Data format to send metrics
  data_format = "influx"

  ## Timeouts (make sure read_timeout is larger than server ping interval or set to zero).
  # connect_timeout = "30s"
  # write_timeout = "30s"
  # read_timeout = "30s"

  ## Optionally turn on using text data frames (binary by default).
  # use_text_frames = false

  ## TLS configuration
  # tls_ca = "/path/to/ca.pem"
  # tls_cert = "/path/to/cert.pem"
  # tls_key = "/path/to/key.pem"
  # insecure_skip_verify = false

输入和输出集成示例

NATS

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

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

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

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

Grafana

  1. 实时基础设施仪表板:部署 Telegraf 将服务器健康指标直接流式传输到 Grafana 仪表板,使 IT 团队能够实时可视化基础设施性能。此设置允许立即检测和响应关键系统事件。

  2. 交互式物联网监控:集成 Telegraf 收集的物联网设备指标,并将实时数据推送到 Grafana 中,为监控智慧城市项目或制造过程创建动态和交互式仪表板。这种实时可见性显著提高了响应能力和运营效率。

  3. 即时应用程序性能分析:将来自生产环境的应用程序指标实时流式传输到 Grafana 仪表板,使开发团队能够在部署期间快速检测和诊断性能瓶颈或异常情况,从而最大限度地减少停机时间并提高可靠性。

  4. लाइव活动分析:在重要的 लाइव活动期间,利用 Telegraf 捕获和流式传输实时受众或系统指标,直接进入 Grafana 仪表板。活动组织者可以动态监控并对不断变化的条件或趋势做出反应,从而显著提高受众参与度和运营决策能力。

反馈

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

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

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

查看入门方法

相关集成

HTTP 和 InfluxDB 集成

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

查看集成

Kafka 和 InfluxDB 集成

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

查看集成

Kinesis 和 InfluxDB 集成

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

查看集成