Telegraf 是一个开源服务器代理,旨在收集、处理、聚合和编写指标。由 InfluxData 开发,是 InfluxDB时间序列数据库平台。 Telegraf 以其简单易用而闻名,提供了带有一系列输入、输出和处理器插件的即插即用架构。这种灵活性使 Telegraf 能够从不同来源无缝收集指标并将其写入 InfluxDB,作为监控和可观察性堆栈的重要组件。
Telegraf 的优势之一是能够与各种工具和服务集成,从而增强 InfluxDB 的功能。它支持各种数据格式和网络协议,能够与数据库、消息队列和 Web 服务等常见系统集成。一些值得注意的集成包括流行的数据库(如 MySQL、PostgreSQL 和 MongoDB)、消息传递系统(如 Kafka 和 MQTT)以及来自 AWS、Google Cloud 和 Microsoft Azure 等提供商的云服务。此外,Telegraf 可以从传感器、物联网设备以及虚拟系统和应用程序等各种来源收集数据,使其成为在不同 IT 环境中提供全面监控解决方案的多功能工具。这篇文章涵盖了 Telegraf 输入插件的顶级类型。
1.系统监控
系统监控是 IT 管理的一个重要方面,因为它可以确保计算资源的最佳性能和可靠性。在所有可用于系统监控的插件中,最流行的有 CPU、内存 (mem)、磁盘 I/O (diskio)、磁盘、Docker、网速、网络 (net)、NVIDIA 系统管理接口 (nvidia_smi)、和 SMART(自我监控、分析和报告技术)。这些插件之所以受欢迎,是因为它们能够提供对系统关键性能指标的全面洞察。
- CPU:监控使用情况并中央处理器的性能是计算能力和效率的关键组成部分。
- 内存 (mem):必不可少用于跟踪 RAM 的使用情况,以帮助了解内存消耗和潜在瓶颈。
- 磁盘 I/O (diskio):深入了解磁盘驱动器的输入/输出操作,这对于评估存储系统的性能和运行状况至关重要。
- 磁盘:跟踪磁盘使用情况并性能,对于确保足够的存储容量和防止与磁盘相关的速度下降至关重要。
- Docker:监控 Docker 容器,提供有关容器性能和资源利用率的重要信息。
- 互联网速度:测量速度互联网连接,对于依赖网络的应用程序和服务至关重要。
- 网络 (net):监视器数据传输速率和网络使用情况是维持最佳网络性能的关键。
- NVIDIA SMI (nvidia_smi):该插件专门针对 NVIDIA GPU,可监控 GPU 性能,这对于使用 GPU 执行深度学习等密集型任务的环境至关重要。
- SMART:该技术监控硬盘驱动器和固态驱动器的运行状况和性能,在潜在故障发生之前进行预测。
2.日志
DevOps 和日志管理至关重要用于维持系统健康并确保平稳运行。在可用于日志监控的各种插件中,最广泛使用的是 file、tail 和 directory_monitor 插件。这些插件因其在跟踪和分析日志数据方面的有效性而广受欢迎,这对于诊断问题、了解系统行为和确保安全合规性至关重要。
- 文件:此插件设计从指定文件读取日志。它对于将日志写入静态文件的系统特别有用。管理员可以配置此插件来监视特定日志文件,从而更轻松地跟踪应用程序或系统日志中的错误、警告或其他重要事件。该插件在将 JSON 和 CSV 数据写入 InfluxDB 方面也很受欢迎。
- Tail:与tail类似在类 Unix 系统中使用命令,该插件实时监控日志文件。它“尾随”日志文件,这意味着它随着文件的增长从文件末尾读取。这对于持续监视日志文件特别有用,可以立即检测和响应新的日志条目,这对于时间敏感的应用程序或故障排除期间至关重要。
3. HTTP/InfluxDB 插件
用于监控和管理 HTTP 和 InfluxDB 数据流,两个重要且广泛使用的插件包括:
- HTTP 侦听器 V2:此插件充当侦听传入 HTTP POST 请求的 HTTP 服务器。它接受各种格式的数据,使其适用于不同的用例。该插件非常适合需要通过 HTTP 将数据推送到服务器的场景,例如来自 Web 应用程序或 IoT 设备的数据。
- InfluxDB V2 监听器:专为InfluxDB v2,该插件监听与 InfluxDB 2.0 API 兼容的写入请求。对于使用 InfluxDB 作为时间序列数据库的环境至关重要,它允许将指标高效且直接地提取到 InfluxDB 中。
这两个插件对于促进实时数据摄取和处理各种时间序列数据流至关重要。它们还提供了在各种监控和数据收集场景中的灵活性和易于集成性。它们的受欢迎程度归因于与常见数据源的直接兼容性以及简化数据收集和存储过程的能力。
4.窗口
在 Windows 系统监控中,两个重要的插件是:
- win_perf_counters:此插件收集性能使用 Windows 性能计数器(一种全面的本机 Windows 监视工具)来衡量指标。它的价值在于能够监控 Windows 操作系统和应用程序的各个方面,例如 CPU、内存、磁盘和网络使用情况。
- win_wmi:利用 Windows Management Instrumentation (WMI),该插件收集广泛的系统指标和操作数据。 WMI 是一项核心 Windows 功能,用于管理基于 Windows 的系统上的数据和操作,因此该插件对于详细的系统监控和管理任务至关重要。
这两个插件在基于 Windows 的环境中对于与系统的深度集成至关重要,可提供对 Windows 服务器和应用程序的性能和运行状况的全面洞察。它们的受欢迎程度源于利用本机 Windows 工具进行高级监控和诊断的能力。
5.监控/K8s/设备
在现代 IT 基础设施的多样化环境中,通过 OPC-UA 和 Modbus 等协议监控 Kubernetes 环境、Prometheus 指标和各种设备至关重要。这些组件代表系统监控的关键领域,满足容器编排、应用程序性能和工业设备通信的需求。了解它们的重要性有助于深入了解它们的广泛采用。
- Kubernetes:这个插件必不可少用于监控 Kubernetes 集群。它提供了有关 Kubernetes 管理的节点、pod 和容器的详细指标,这对于确保容器化应用程序的运行状况和性能至关重要。
- Prometheus:广泛用于其强大的监控功能,该插件从 Prometheus 导出器收集指标。它对于在使用 Prometheus 进行监控的环境中跟踪应用程序性能和系统运行状况至关重要。
- OPC-UA(开放平台通信统一架构) :该协议是工业自动化的关键。 OPC-UA 插件有助于工业设备监控,实现机器数据与 IT 系统的集成,以进行实时分析和决策。
- Modbus:常用协议在工业环境中与各种类型的设备进行通信。 Modbus 插件从使用该协议的设备收集数据,从而深入了解工业系统的性能和状态。
6.消息传递
分布式系统中的消息传递对于不同组件和服务之间的有效通信和数据流至关重要。该领域的关键插件包括 Kafka Consumer、MQTT Consumer 和 OpenTelemetry。每种技术都解决消息传递和遥测数据收集的特定方面。
- Kafka Consumer:此插件消耗来自 Kafka 集群的消息,Kafka 集群是一个广泛用于构建实时数据管道和流应用程序的分布式流平台。 Kafka Consumer 插件对于与 Kafka 集成以监控消息吞吐量和性能并确保流应用程序中的可靠数据流至关重要。
- MQTT 使用者:消息队列遥测传输 (MQTT) 是一种轻量级的发布-订阅网络协议,常用于物联网和移动应用程序。 MQTT Consumer 插件允许使用发布到 MQTT 代理的消息,从而促进从各种设备和应用程序进行实时监控和数据收集。
- OpenTelemetry:可观察性OpenTelemetry 插件是云原生软件框架,支持收集遥测数据(指标、日志和跟踪)以进行分析和监控。它对于理解分布式系统的性能和行为特别有用,并且是应用程序性能监控 (APM) 和可观察性不可或缺的一部分。
这些插件在现代 IT 基础设施中至关重要,因为它们确保跨各种系统和协议的高效消息传递和数据收集。它们的采用是由于复杂的分布式环境中对强大、可扩展且灵活的监控解决方案的需求推动的。
后续步骤
Telegraf 体现了 InfluxData 对开源软件的承诺。用户可以构建自定义插件并自行决定将其贡献给项目。 Telegraf 拥有令人难以置信的广泛采用,拥有数百万个活跃实例。事实上,InfluxData 的许多竞争对手都依赖 Telegraf 进行数据收集,这验证了其实用性和有效性。如上所述,组织可以发现利用 Telegraf 从多个来源收集指标的巨大价值。
Telegraf 与 InfluxDB 紧密合作,您可以开始使用 此处为 InfluxDB Cloud 3.0。如果您需要 Telegraf 或 InfluxDB 方面的帮助,请使用我们的社区网站或Slack 频道。如果您刚刚开始使用 Telegraf,请查看这些资源以了解更多信息:
Telegraf 文档:了解如何开始使用 Telegraf。