search
数据采集 采集源配置 exec 指标采集

exec 指标采集

简介

exec 采集源支持以执行脚本命令的方式,将命令执行结果作为数据上报。运维开发人员可以通过 exec 开发自定义的数据采集源,只需要输出的数据格式满足 telegraf 的 数据格式 即可。

前置条件

配置

进入 DataKit 安装目录下的 conf.d/exec 目录,复制 exec.conf.sample 并命名为 exec.conf。示例如下:

[[inputs.exec]]

  ## Commands array
  commands = [
    "/tmp/test.sh",
    "/usr/bin/mycollector --foo=bar",
    "/tmp/collect_*.sh"
  ]

  ## Timeout for each command to complete.
  timeout = "5s"

  ## measurement name suffix (for separating different commands)
  name_suffix = "_mycollector"

  ## Data format to consume.
  ## Each data format has its own unique set of configuration options, read
  ## more about them here:
  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
  data_format = "influx"
  • commands:指定需执行的脚本命令的路径,支持 Glob 模式匹配
  • timeout: 设置命令执行超时时间
  • data_format: 指定输出格式,具体参考 Input Data Formats

Example

例如,在 /tmp 目录下,创建名为 test.sh 的 bash 脚本:

#!/bin/sh
echo 'example,tag1=apple,tag2=bird value1=${a}i,value2=${b}i,value3=${c}i'

在脚本内的 echo命令内容中:

  • example 为上报数据的指标集名称
  • tag1, tag2 为上报数据赋予的标签
  • value1,value2,value3 为上报数据的指标名称
  • ${a,b,c} 为指标上报的数值

在 exec 中配置

[[inputs.exec]]
  commands = ["sh /tmp/test.sh"]
  timeout = "5s"
  data_format = "influx"

即可将数据采集到 DataFlux 中

配置好后,重启 DataKit 即可生效