search
数据采集 采集器 DataKit DataKit安装

DataKit

简介

DataKit 是 DataFlux 官方发布的数据采集应用,支持上百种数据的采集。用户可以将 DataKit 部署到自己的 IT 环境中,目前 DataKit 支持如下几种平台的部署:

操作系统 架构 备注
Linux 2.6.23 或更高版本 amd64, 386, arm, arm64 CentOS 5.x/RHEL 5.x 不支持
macOS 10.11 或更高版本 amd64
Windows 7, Server 2008R2 或更高版本 amd64, 386 Windows7 上因不支持 domain socket,部分依赖 domain socket 功能的采集器不支持(skywalkingV3)

Datakit 历史版本日志

历史版本记录

安装

登陆工作空间,依次点击 管理数据网关,即可看到如下选择安装的入口。各种环境安装命令,可按照下图来自由选择:

选择不同的平台安装采集器

安装完成后,在终端会看到安装成功的提示。

注意事项:

  • Mac 上安装时,如果安装/升级过程中出现
"launchctl" failed with stderr: /Library/LaunchDaemons/cn.dataflux.datakit.plist: Service is disabled`

执行

sudo launchctl enable system/datakit

然后再执行如下命令即可

sudo launchctl load -w /Library/LaunchDaemons/cn.dataflux.datakit.plist
  • Windows 上安装需在 Powershell 命令行安装,且必须以管理员身份运行 Powershell
    • 按下 Windows 键,输入 powershell 即可看到弹出的 powershell 图标,右键选择 以管理员身份运行 即可
  • 成功安装后,采集器会默认开启一些采集器,如 CPU、磁盘、网络、系统负载等,如果需要关闭这些采集器(以 CPU 为例):
    • 进入采集器安装目录
      • Windows 32 位:C:\Program Files (x86)\dataflux\datakit
      • Windows 64 位:C:\Program Files\dataflux\datakit
      • Linux/Mac: /usr/local/cloudcare/DataFlux/datakit/
    • 先删除文件 <path/to/datakit>/conf.d/host/cpu.conf
    • 在主配置文件中 <path/to/datakit>/conf.d/datakit.conf,修改 default_enabled_inputs 字段,将 cpu 从中删掉
    • 如要重新开启,只需要在 default_enabled_inputs 中加入 cpu 即可,对应的 cpu.conf 会自动生成

离线安装

  • 先下载对应的安装包:
# Windows x86 64 位
Import-Module bitstransfer; start-bitstransfer -source https://static.dataflux.cn/datakit/installer-windows-amd64.exe -destination .\dk-installer.exe; .\dk-installer.exe -download-only

# Windows x86 32 位
Import-Module bitstransfer; start-bitstransfer -source https://static.dataflux.cn/datakit/installer-windows-386.exe -destination .\dk-installer.exe; .\dk-installer.exe -download-only

# Linux x86 64 位
curl https://static.dataflux.cn/datakit/installer-linux-amd64 -o dk-installer && chmod +x ./dk-installer && ./dk-installer -download-only

# Linux x86 32 位
curl https://static.dataflux.cn/datakit/installer-linux-386 -o dk-installer && chmod +x ./dk-installer && ./dk-installer -download-only

# Linux Arm 64 位
curl https://static.dataflux.cn/datakit/installer-linux-arm64 -o dk-installer && chmod +x ./dk-installer && ./dk-installer -download-only

# Linux Arm 32 位
curl https://static.dataflux.cn/datakit/installer-linux-arm -o dk-installer && chmod +x ./dk-installer && ./dk-installer -download-only

# Mac 64 位
curl https://static.dataflux.cn/datakit/installer-darwin-amd64 -o dk-installer && chmod +x ./dk-installer && ./dk-installer -download-only

注意事项: 建议在平台匹配的情况下下载安装包,即用 Linux X86 机器下载 Linux X86 平台的 DataKit的安装程序。在 Linux X86 机器上无法下载 Windows 平台的安装程序。以此类推。

  • 下载完后,当前目录下会出现 dk-installer.exe(或者 dk-installer) 以及 DataKit 安装包 datakit.tar.gz

  • 通过 scp 或其它文件传输工具,将安装程序 dk-installer.exe (Linux/Mac 文件名为 dk-installer)以及安装包(如 datakit-linux-amd64-v1.1.4-rc0.tar.gzagent-linux-amd64.tar.gz)上传到目标机器。以 Linux 为例:

scp dk-installer datakit-linux-amd64-v1.1.4-rc0.tar.gz agent-linux-amd64.tar.gz user@192.168.1.123:~/
  • 登陆目标机器,在对应目录下,即可执行安装(默认安装当前目录下的 datakit-<os-arch-version>.tar.gzagent-<os-arch>.tar.gz 两个文件):
# Windows(需以 administrator 权限运行)
.\dk-installer.exe -offline -dataway "https://openway.dataflux.cn?token=<your-token>"
# Linux/Mac(需以 root 权限运行)
./dk-installer -offline -dataway "https://openway.dataflux.cn?token=<your-token>"

批量安装

我们可以通过 Ansible 来批量安装 datakit。

  • 前置条件:

    • 管理机安装 Ansible
    • 在 ansible 默认配置路径 /etc/ansible/ 下配置好 host 文件跟 install.yaml 文件
    • 如果通过 Ansible 管理 windows 机器,参考 Ansible文档 做相应前置准备
  • Ansible host 文件配置

[linux]
# ansible_become_pass 提权用户密码 默认不指定为 root 可以通过 become_user 指定(具体参照官方文档)
10.200.6.58  ansible_ssh_user=xxx ansible_ssh_pass=xxx ansible_become_pass=xxx  
10.100.64.117  ansible_ssh_user=xxx ansible_ssh_pass=xxx ansible_become_pass=xxx

[windows]
# ansible_connection 连接使用 winrm(具体参照官方文档)
10.100.65.17 ansible_ssh_user="xxx" ansible_ssh_pass="xxx" ansible_ssh_port=5986 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore 
  • Ansible install.yaml 文件配置如下
- hosts: linux # 此处对应 host配置文件中 linux机器 
  become: true  # 
  gather_facts: no
  tasks:
  - name: install
    # 此处的 shell 为批量安装,通过指定 dataway 地址、默认开启的主机采集器(cpu,disk,mem)等,设置了 -global-tags host=__datakit_hostname 等
    shell : sudo -- sh -c 'curl http://zhuyun-static-files-production.oss-cn-hangzhou.aliyuncs.com/datakit/installer-linux-amd64 -o dk-installer && chmod +x ./dk-installer && ./dk-installer -dataway "https://openway.dataflux.cn?token=tkn_f948bf84xxxxxxxxxxxxxxxxxxxxxxxx" && rm -rf ./dk-installer'
    async: 120  # 代表了这个任务执行时间的上限值。即任务执行所用时间如果超出这个时间,则认为任务失败。此参数若未设置,则为同步执行 poll: 10 # 代表了任务异步执行时轮询的时间间隔,如果poll为0,就相当于一个不关心结果的任务

- hosts: windows # 此处对应 host配置文件中 windows 机器 
  gather_facts: no
  tasks:
  - name: install
    win_shell : Import-Module bitstransfer; start-bitstransfer -source http://zhuyun-static-files-production.oss-cn-hangzhou.aliyuncs.com/datakit/installer-windows-amd64.exe -destination .dk-installer.exe; .dk-installer.exe -dataway "https://openway.dataflux.cn?token=tkn_f948bf84xxxxxxxxxxxxxxxxxxxxxxxx"; rm .dk-installer.exe
    async: 120
    poll: 10
  • 在管理机上 运行 ansible-playbook -i hosts install.yaml 即可。

注意:如果 DataWay 地址指定有误,比如 IP 不通,在批量场景下,安装程序会直接退出。

Datakit服务管理

可以尝试如下几种方式来操作 DataKit 服务

Linux

  • service:

    • service datakit restart # 重启
    • service datakit start # 启动
    • service datakit stop # 停止

# service datakit status

● datakit.service - Collects data and upload it to DataFlux.
   Loaded: loaded (/etc/systemd/system/datakit.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-05-11 05:53:05 UTC; 3h 13min ago
 Main PID: 7622 (datakit)
    Tasks: 28 (limit: 4915)
   CGroup: /system.slice/datakit.service
           ├─7622 /usr/local/cloudcare/DataFlux/datakit/datakit
           └─7648 agent -config /usr/local/cloudcare/DataFlux/datakit/embed/agent.conf`

May 11 05:53:05 ubt-server systemd[1]: Started Collects data and upload it to DataFlux..
May 11 05:53:05 ubt-server datakit[7622]: 2020-05-11T05:53:05Z I! Starting Telegraf
  • systemctl:

    • systemctl restart datakit # 重启
    • systemctl start datakit # 启动
    • systemctl stop datakit # 停止

# systemctl status datakit
● datakit.service - Collects data and upload it to DataFlux.
   Loaded: loaded (/etc/systemd/system/datakit.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-05-11 05:53:05 UTC; 3h 14min ago
 Main PID: 7622 (datakit)
    Tasks: 28 (limit: 4915)
   CGroup: /system.slice/datakit.service
           ├─7622 /usr/local/cloudcare/DataFlux/datakit/datakit
           └─7648 agent -config /usr/local/cloudcare/DataFlux/datakit/embed/agent.conf

May 11 05:53:05 ubt-server systemd[1]: Started Collects data and upload it to DataFlux..
May 11 05:53:05 ubt-server datakit[7622]: 2020-05-11T05:53:05Z I! Starting Telegraf`
  • initctl: 如
# initctl status datakit
datakit start/running, process 1603
  • upstart:如
start datakit     # 启动
restart datakit   # 重启
stop datakit      # 停止
  • 直接启动

某些情况下,一些 Linux 移植阉割了类似 service 这样的功能,只能通过手动的方式来启动服务。下面就是具体的例子:

/etc/init.d/datakit start  # 启动
/etc/init.d/datakit status # 查看状态

Mac

  • launchctl:如
# sudo launchctl load -w /Library/LaunchDaemons/cn.dataflux.datakit.plist    # 启动服务
# sudo launchctl unload -w /Library/LaunchDaemons/cn.dataflux.datakit.plist  # 停止服务

Windows

运行 services.msc,从服务面板,即可看到 datakit 服务,可通过 UI 方式来执行启动、停止、重启等操作。

配置采集器

进入 DataKit 安装目录

  • Linux/Mac 默认安装目录为 /usr/local/cloudcare/dataflux/datakit
  • Windows 32 位默认安装目录: 32 位:C:\Program Files (x86)\dataflux\datakit 64 位:C:\Program Files\dataflux\datakit

采集源配置文件夹为 conf.d,找到你需要配置的采集源配置目录,即可进行数据采集配置。

采集器黑白名单配置

为便于采集器配置的统一管理,用户可以将一套完全相同的配置,应用到所有部署的 DataKit 上。在 datakit.conf 中有针对采集器的黑白名单管理配置:

# 只在指定的 host 上运行对应的采集器,hosts 里面填写的是主机名
[[white_lists]]
    hosts = ["host-1", "host-2"]
    inputs = ["aliyunactiontrail", "oraclemonitor"]

# 另一组白名单
[[white_lists]]
    hosts = [...]
    inputs = [...]

# 在指定的 host 上不运行对应的采集器
[[black_lists]]
    hosts = ["host-2", "host-3"]
    inputs = ["aliyunactiontrail", "oraclemonitor"]

# 另一组黑名单
[[black_lists]]
    hosts = [...]
    inputs = [...]

假定 host-2 上配置了 aliyunactiontrail 采集器,当它启动 aliyunactiontrail 这个采集器时,发现自己在对应的黑名单中,是不会运行对应的采集器的。

FAQ

是否能将采集的数据打印出来进来调试?

打开 datakit.conf 文件,设置 output_file,指定采集数据输出的文件路径(需配置绝对路径)。重启 DataKit,采集的数据将不会上报,而是输出到指定的文件中。

同一个采集器,如何配置多份?

一般情况下,所有采集器的配置,都是如下这种配置范式:

[[inputs.some-name]]
   some-option: some-value
   other-options: other-values

如果要配置多份采集,直接复制上面的内容即可,如:

# 第一份配置
[[inputs.some-name]]
   some-option: some-value
   other-options: other-values

# 另一份配置
[[inputs.some-name]]
   some-option: some-value
   other-options: other-values

这样 DataKit 中同一个采集器,就可启动多份采集

采集器安装在哪?

对 Windows 而言,32 位安装在

  • 32 位:C:\Program Files (x86)\dataflux\datakit
  • 64 位:C:\Program Files\dataflux\datakit

对 Linux/Mac 而言,统一安装在 /usr/local/cloudcare/dataflux/datakit 目录下

更新采集器的配置如何生效?

更改完采集器配置后,除了重启 datakit 服务外,还可请求 http://datakit-ip:9529/reload 刷新配置,无需重启

如何查看采集器的运行情况?

默认情况下,请求 DataKit HTTP 接口http://datakit-ip:9529/stats,即可查看 DataKit 的运行状态。