Telegraf 与 Timestream for InfluxDB 3 集成 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Telegraf 与 Timestream for InfluxDB 3 集成

Telegraf 是一款基于插件的数据收集代理,拥有超过 300 个输入插件用于从各种来源收集指标,以及输出插件用于将数据写入不同目标。其“即插即用”架构使其成为快速收集指标并向 InfluxDB 3 报告的理想选择。

要求

  • Telegraf 1.9.2 或更高版本:有关安装说明,请参阅 Telegraf 安装文档。

  • InfluxDB 3 集群端点和凭证。

  • 与 InfluxDB 3 集群的网络连接。

Telegraf 配置选项

Telegraf 提供两个兼容 InfluxDB 3 的输出插件:

  1. outputs.influxdb_v2:推荐用于新部署。

  2. outputs.influxdb(v1):适用于现有的 v1 配置。

我们建议您使用 outputs.influxdb_v2 插件连接到 InfluxDB v2 兼容性 API:

[[outputs.influxdb_v2]] urls = ["https://your-cluster-endpoint:8086"] token = "${INFLUX_TOKEN}" # Use environment variable for security organization = "" # Can be left empty for InfluxDB 3 bucket = "DATABASE_NAME" ## Optional: Enable gzip compression content_encoding = "gzip" ## Optional: Increase timeout for high-latency networks timeout = "10s" ## Optional: Configure batching metric_batch_size = 5000 metric_buffer_limit = 50000

使用旧版 v1 输出插件

对于使用 v1 插件的现有 Telegraf 配置:

[[outputs.influxdb]] urls = ["https://your-cluster-endpoint:8086"] database = "DATABASE_NAME" skip_database_creation = true username = "ignored" # Required but ignored password = "${INFLUX_TOKEN}" # Use environment variable content_encoding = "gzip" ## Optional: Configure write parameters timeout = "10s" metric_batch_size = 5000 metric_buffer_limit = 50000

Telegraf 基础配置示例

以下是收集系统指标并将其写入 InfluxDB 3 的完整示例:

# Global Agent Configuration [agent] interval = "10s" round_interval = true metric_batch_size = 5000 metric_buffer_limit = 50000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s" precision = "s" hostname = "" omit_hostname = false # Input Plugins - Collect system metrics [[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] [[inputs.mem]] [[inputs.net]] interfaces = ["eth*", "en*"] [[inputs.system]] # Output Plugin - Write to InfluxDB 3 [[outputs.influxdb_v2]] urls = ["https://your-cluster-endpoint:8086"] token = "${INFLUX_TOKEN}" organization = "" bucket = "telegraf_metrics" content_encoding = "gzip"

使用 InfluxDB 3 的 Telegraf 最佳实践

  • 安全性

    • 将令牌存储在环境变量或密钥存储中。

    • 请勿在配置文件中对令牌进行硬编码。

    • 使用 HTTPS 端点进行生产部署。

  • 性能优化

    • 使用 content_encoding = "gzip" 启用 gzip 压缩。

    • 配置适当的批处理大小(5000-10000 个指标)。

    • 根据可用内存设置缓冲区限制。

    • 根据使用案例选择合适的精度(通常秒级精度已足够)。

  • 网络配置

    • 对于私有集群,请在同一 VPC 中运行 Telegraf。

    • 为网络延迟配置适当的超时时间。

    • 使用写入器/读取器端点,执行写入操作。

  • 监控

    • 启用 Telegraf 的内部指标插件,以监控代理性能。

    • 监控写入错误和重试次数。

    • 设置缓冲区溢出情况的警报。

  • 数据整理

    • 在所有输入插件中使用一致的标签命名。

    • 利用 Telegraf 的处理器插件,以标准化数据。

    • 应用标签筛选条件,以控制基数。

运行 Telegraf

要使用配置启动 Telegraf,请执行以下操作:

# Test configuration telegraf --config telegraf.conf --test # Run Telegraf telegraf --config telegraf.conf # Run as a service (systemd) sudo systemctl start telegraf

时间序列数据的通用 Telegraf 插件

常用的输入插件:

  • inputs.cpuinputs.meminputs.disk:系统指标。

  • inputs.dockerinputs.kubernetes:容器指标。

  • inputs.prometheus:抓取 Prometheus 端点。

  • inputs.snmp:网络设备监控。

  • inputs.mqtt_consumer:IoT 数据收集。

  • inputs.http_listener_v2:HTTP webhook 接收器。

实用的处理器插件:

  • processors.regex:转换标签/字段名称。

  • processors.converter:更改字段数据类型。

  • processors.aggregator:聚合指标。

  • processors.filter:根据条件筛选指标。

通过将 Telegraf 广泛的插件生态系统与 InfluxDB 3 结合使用,您可以构建全面的监控解决方案,从不同的来源收集数据并将其高效地写入时间序列数据库。