要获得与亚马逊 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 的输出插件:
-
outputs.influxdb_v2:推荐用于新部署。 -
outputs.influxdb(v1):适用于现有的 v1 配置。
使用 v2 输出插件
我们建议您使用 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.cpu、inputs.mem、inputs.disk:系统指标。 -
inputs.docker、inputs.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 结合使用,您可以构建全面的监控解决方案,从不同的来源收集数据并将其高效地写入时间序列数据库。