目录
输入和输出集成概述
此插件通过与 Kubelet API 通信来捕获 Kubernetes Pod 和容器的指标。
此插件使 Telegraf 能够使用 Prometheus 远程写入协议将指标发送到 Cortex,从而实现无缝摄取到 Cortex 的可扩展、多租户时序存储中。
集成详情
Kubernetes
Kubernetes 输入插件与 Kubelet API 接口,以收集单个主机上运行的 Pod 和容器的指标,理想情况下,作为 Kubernetes 安装中 DaemonSet 的一部分。通过在集群中的每个节点上运行,它可以从本地运行的 kubelet 收集指标,确保数据反映环境的实时状态。作为一个快速发展的项目,Kubernetes 频繁更新,此插件遵循主要云提供商支持的版本,在有限的时间跨度内保持跨多个版本的兼容性。我们对潜在的高序列基数给予了充分考虑,这可能会给数据库带来负担;因此,建议用户实施筛选技术和保留策略来有效管理此负载。配置选项提供了插件行为的灵活自定义,以便无缝集成到不同的设置中,从而增强其在监控 Kubernetes 环境中的实用性。
Cortex
借助 Telegraf 的 HTTP 输出插件和 prometheusremotewrite
数据格式,您可以将指标直接发送到 Cortex,Cortex 是 Prometheus 的水平可扩展长期存储后端。Cortex 支持多租户,并使用 Prometheus protobuf 格式接受远程写入请求。通过使用 Telegraf 作为收集代理,Remote Write 作为传输机制,组织可以将可观测性扩展到 Prometheus 本身不支持的来源(例如 Windows 主机、支持 SNMP 的设备或自定义应用程序指标),同时利用 Cortex 的高可用性和长期保留功能。
配置
Kubernetes
[[inputs.kubernetes]]
## URL for the kubelet, if empty read metrics from all nodes in the cluster
url = "http://127.0.0.1:10255"
## Use bearer token for authorization. ('bearer_token' takes priority)
## If both of these are empty, we'll use the default serviceaccount:
## at: /var/run/secrets/kubernetes.io/serviceaccount/token
##
## To re-read the token at each interval, please use a file with the
## bearer_token option. If given a string, Telegraf will always use that
## token.
# bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token"
## OR
# bearer_token_string = "abc_123"
## Kubernetes Node Metric Name
## The default Kubernetes node metric name (i.e. kubernetes_node) is the same
## for the kubernetes and kube_inventory plugins. To avoid conflicts, set this
## option to a different value.
# node_metric_name = "kubernetes_node"
## Pod labels to be added as tags. An empty array for both include and
## exclude will include all labels.
# label_include = []
# label_exclude = ["*"]
## Set response_timeout (default 5 seconds)
# response_timeout = "5s"
## Optional TLS Config
# tls_ca = /path/to/cafile
# tls_cert = /path/to/certfile
# tls_key = /path/to/keyfile
## Use TLS but skip chain & host verification
# insecure_skip_verify = false
Cortex
[[outputs.http]]
## Cortex Remote Write endpoint
url = "http://cortex.example.com/api/v1/push"
## Use POST to send data
method = "POST"
## Send metrics using Prometheus remote write format
data_format = "prometheusremotewrite"
## Optional HTTP headers for authentication
# [outputs.http.headers]
# X-Scope-OrgID = "your-tenant-id"
# Authorization = "Bearer YOUR_API_TOKEN"
## Optional TLS configuration
# tls_ca = "/path/to/ca.pem"
# tls_cert = "/path/to/cert.pem"
# tls_key = "/path/to/key.pem"
# insecure_skip_verify = false
## Request timeout
timeout = "10s"
输入和输出集成示例
Kubernetes
-
动态资源分配监控:通过利用 Kubernetes 插件,团队可以为各种 Pod 和容器的资源使用模式设置警报。这种主动监控方法可以自动扩展资源以响应特定阈值,从而帮助优化性能,同时最大限度地降低高峰使用期间的成本。
-
多租户资源隔离分析:使用 Kubernetes 的组织可以利用此插件来跟踪每个命名空间的资源消耗。在多租户场景中,了解不同团队之间的资源分配和使用情况对于确保公平访问和性能保证至关重要,从而带来更好的资源管理策略。
-
实时健康仪表板:将 Kubernetes 插件捕获的数据集成到 Grafana 等可视化工具中,以创建实时仪表板。这些仪表板提供对 Kubernetes 环境整体健康状况和性能的洞察,使团队能够快速识别和纠正跨集群、Pod 和容器的问题。
-
自动化事件响应工作流程:通过将 Kubernetes 插件与警报管理系统相结合,团队可以根据实时指标自动化事件响应程序。如果 Pod 的资源使用量超过预定义限制,则自动化工作流程可以触发补救措施,例如重新启动 Pod 或重新分配资源,所有这些都有助于提高系统弹性。
Cortex
-
统一多租户监控:使用 Telegraf 从不同团队或环境收集指标,并将它们与单独的
X-Scope-OrgID
标头推送到 Cortex。这实现了每个租户的隔离数据摄取和查询,非常适合托管服务和平台团队。 -
将 Prometheus 覆盖范围扩展到边缘设备:在边缘或物联网设备上部署 Telegraf 以收集系统指标并将它们发送到集中式 Cortex 集群。即使对于没有本地 Prometheus 抓取器的环境,这种方法也能确保一致的可观测性。
-
具有联合租户的全球服务可观测性:通过配置 Telegraf 代理将数据推送到区域 Cortex 集群(每个集群都标记有租户标识符)来聚合来自全球基础设施的指标。Cortex 处理跨区域的重复数据删除和集中式访问。
-
自定义应用程序遥测管道:通过 Telegraf 的
exec
或http
输入插件收集特定于应用程序的遥测数据,并将其转发到 Cortex。这使 DevOps 团队能够以可扩展、查询高效的格式监控特定于应用程序的 KPI,同时保持指标按租户或服务进行逻辑分组。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。