目录
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时序数据时,它都会更有价值。借助 InfluxDB,这个排名第一的时序平台专为与 Telegraf 一起扩展而构建。
查看入门方法
输入和输出集成概述
NATS Consumer 输入插件能够从 NATS 消息主题实时消费数据,无缝集成到 Telegraf 数据管道中,用于监控和指标收集。
Loki 插件允许用户将日志发送到 Loki 进行聚合和查询,从而利用 Loki 高效的存储能力。
集成详情
NATS
NATS Consumer 插件允许 Telegraf 从指定的 NATS 主题读取指标,并根据支持的输入数据格式创建指标。利用队列组允许多个 Telegraf 实例并行地从 NATS 集群读取数据,从而提高吞吐量和可靠性。此插件还支持各种身份验证方法,包括用户名/密码、NATS 凭据文件和 nkey 种子文件,确保与 NATS 服务器的安全通信。由于 JetStream 等功能有助于历史消息的消费,因此此插件在数据持久性和消息可靠性至关重要的环境中特别有用。此外,配置各种操作参数的能力使此插件适用于高吞吐量场景,同时保持性能完整性。
Loki
此 Loki 插件与 Grafana Loki 集成,Grafana Loki 是一个强大的日志聚合系统。通过以与 Loki 兼容的格式发送日志,此插件可以高效地存储和查询日志。每个日志条目都以键值格式结构化,其中键表示字段名称,值表示相应的日志信息。按时间戳对日志进行排序可确保通过 Loki 查询时,日志流保持时间顺序。此插件对密钥的支持使安全管理身份验证参数变得更加容易,而 HTTP 标头、gzip 编码和 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"
Loki
[[outputs.loki]]
## The domain of Loki
domain = "https://loki.domain.tld"
## Endpoint to write api
# endpoint = "/loki/api/v1/push"
## Connection timeout, defaults to "5s" if not set.
# timeout = "5s"
## Basic auth credential
# username = "loki"
# password = "pass"
## Additional HTTP headers
# http_headers = {"X-Scope-OrgID" = "1"}
## If the request must be gzip encoded
# gzip_request = false
## Optional TLS Config
# tls_ca = "/etc/telegraf/ca.pem"
# tls_cert = "/etc/telegraf/cert.pem"
# tls_key = "/etc/telegraf/key.pem"
## Sanitize Tag Names
## If true, all tag names will have invalid characters replaced with
## underscores that do not match the regex: ^[a-zA-Z_:][a-zA-Z0-9_:]*.
# sanitize_label_names = false
## Metric Name Label
## Label to use for the metric name to when sending metrics. If set to an
## empty string, this will not add the label. This is NOT suggested as there
## is no way to differentiate between multiple metrics.
# metric_name_label = "__name"
输入和输出集成示例
NATS
-
实时分析仪表板:利用 NATS 插件实时收集来自各种 NATS 主题的指标,并将它们馈送到集中式分析仪表板。此设置允许立即了解实时应用程序性能,使团队能够快速应对运营问题或性能下降。
-
分布式系统监控:在分布式架构中部署配置了 NATS 插件的多个 Telegraf 实例。这种方法允许团队有效地聚合来自各种微服务的指标,从而提供系统运行状况和性能的整体视图,同时确保传输过程中不会丢失任何消息。
-
历史消息恢复:结合 NATS JetStream 的功能和此插件,在 Telegraf 重新启动后恢复和处理历史消息。此功能对于需要高可靠性的应用程序尤其有益,确保即使在服务中断的情况下也不会丢失任何关键指标。
-
动态负载均衡:实施动态负载均衡场景,其中 Telegraf 实例根据负载从 NATS 集群消费消息。调整队列组设置以控制活动消费者的数量,从而在需求波动时实现更好的资源利用和性能扩展。
Loki
-
微服务的集中式日志记录:利用 Loki 插件收集来自 Kubernetes 集群中运行的多个微服务的日志。通过将日志定向到集中式 Loki 实例,开发人员可以在一个位置监控、搜索和分析来自所有服务的日志,从而更轻松地进行故障排除和性能监控。此设置简化了运营,并支持对分布式应用程序中的问题做出快速响应。
-
实时日志异常检测:将 Loki 与监控工具结合使用,以实时分析日志输出中可能指示系统错误或安全威胁的异常模式。在日志流上实施异常检测使团队能够主动识别和响应事件,从而提高系统可靠性并增强安全态势。
-
通过 Gzip 压缩增强日志处理:配置 Loki 插件以利用 gzip 压缩进行日志传输。这种方法可以减少带宽使用并提高传输速度,这在网络带宽可能受限的环境中尤其有益。它对于每个字节都很重要且性能至关重要的高容量日志记录应用程序特别有用。
-
通过自定义标头实现多租户支持:利用添加自定义 HTTP 标头的功能,在多租户应用程序环境中隔离来自不同租户的日志。通过使用 Loki 插件为每个租户发送不同的标头,运营商可以确保正确的日志管理并符合数据隔离要求,使其成为 SaaS 应用程序的通用解决方案。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时序数据时,它都会更有价值。借助 InfluxDB,这个排名第一的时序平台专为与 Telegraf 一起扩展而构建。
查看入门方法