集成 Telegraf 数据

# 1. 数据流

# 2. 配置 Telegraf

# 2.1 安装 Telegraf

Telegraf 文档 (opens new window)中可了解相关背景知识。 如果你的集群中没有 Telegraf,可用如下步骤快速以 DaemonSet 方式部署 Telegraf:

# add helm chart
helm repo add influxdata https://helm.influxdata.com/

# install telegraf
helm upgrade --install telegraf influxdata/telegraf -n deepflow-telegraf-demo --create-namespace

# switch from deployment to daemonset
kubectl apply -f https://raw.githubusercontent.com/deepflowio/deepflow-demo/main/DeepFlow-Telegraf-Demo/deepflow-telegraf-demo.yaml
1
2
3
4
5
6
7
8

# 2.2 配置 Telegraf 数据输出

我们需要修改 Telegraf 的配置,使 Telegraf 将数据发送给 DeepFlow Agent。

首先,我们需要确定 DeepFlow Agent 启动的数据监听服务的地址。在安装 DeepFlow Agent 后, 会显示 DeepFlow Agent Service 地址,它的默认值是 deepflow-agent.default。 如果你修改了它,请根据实际的服务名称与命名空间填写到配置中。

接下来修改 Telegraf 的默认配置(假设它位于 deepflow-telegraf-demo 命名空间中):

kubectl edit cm -n deepflow-telegraf-demo telegraf
1

telegraf.conf 中,增加如下配置(请修改 DEEPFLOW_AGENT_SVC 为 deepflow-agent 的服务名):

[[outputs.http]]
  url = "http://${DEEPFLOW_AGENT_SVC}/api/v1/telegraf"
  data_format = "influx"
1
2
3

# 3. 配置 DeepFlow

请参考 配置 DeepFlow 一节内容,完成 DeepFlow Agent 配置。

# 4. 查看 Telegraf 数据

Telegraf 中的指标将会存储在 DeepFlow 的 ext_metrics database 中。 为了降低 table 的数量,DeepFlow 会将所有 Measurement 存储在一个 ClickHouse Table 中, 当用户使用时仍然看到的是一系列对应到 Telegraf 原始 Measurement 的数据表。 Telegraf 指标原有的标签可通过 tag.XXX 引用,指标值通过 metrics.YYY 引用。 同时 DeepFlow 也会自动注入大量的 Meta Tag 和 Custom Tag,使得 Telegraf 采集的数据可以与其他数据源无缝关联。

使用 Grafana,选择 DeepFlow 数据源进行搜索时的展现图下图:

Telegraf 数据集成

Telegraf 数据集成