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

DataWay

简介

DataWay 是 DataFlux 的数据网关,采集器上报数据到 DataFlux 都需要经过 DataWay 网关,DataWay 网关主要作用有两个:

  • 1 接收采集器发送的数据,然后上报到 DataFlux 中心进行存储,多用于数据代理上报的场景;

  • 2 将采集的数据进行处理后再发送到 DataFlux 中心进行存储,多用于数据清洗的场景。(此功能目前仅专业版支持)

DataWay 使用

登录 DataFlux 控制台,进入「管理」-「数据网关」界面,即可查看所有的 DataWay 地址。系统根据使用情况对 DataWay 进行了状态划分。绿色代表“空闲”;红色代表“繁忙”。

需要注意的是:

对于非“专业版”用户,使用的是部署在 DataFlux 云端的 DataWay ,无需进行安装。而“专业版”用户使用的是部署在本地服务器中的 DataWay ,所以需要先安装再使用。

非专业版本包括:免费版、基础版、团队版、高级版

DataWay 安装

DataWay 安装用于专业版用户部署 DataWay 至本地服务器,非专业版无需安装可直接使用

1.管理员登录 DataFlux 管理后台,进入「数据网关」界面

2.点击「新建 DataWay 」,输入“名称”、“绑定地址”,点击「确定」后会自动创建新的 DataWay 并生成 DataWay 的安装脚本。

  • 绑定地址:即 DataWay 网关地址,必须填写完整的 HTTP 地址,例如 http(s)://1.2.3.4:9528,包含协议、主机地址和端口, 主机地址一般可使用部署 DataWay 机器的 IP 地址,也可以指定为一个域名,域名需做好解析。注意:需确保采集器能够访问该地址,否则数据将采集将不成功)

3.复制安装脚本到部署 DataWay 的服务器中执行即可,支持LinuxDocker两种安装方式。

4.安装成功会提示如下图所示信息。此时 DataWay 默认会自动运行。

5.DataWay 安装完成后,需要进行 “ License 激活” 才可以正常使用。 点击查看如何 激活 DataWay

注意事项

  • 只能在 Linux 系统上运行,不要在 Mac/Windows 等非 Linux 机器上执行安装脚本

  • 关于 Docker 形式安装

    • DataWay 支持以 Docker 方式运行,在执行命令头部增加 DOCKER=1 即可

    • 除了增加 DOCKER=1 这个设置之外,还可以增加(以下这些选项,在非 Docker 安装中,也能指定)

      • DW_BIND=<port>: 这个是容器内部的绑定端口(不要超过 50000),会占用宿主机的 10000 + <port> 端口。如果不指定,该端口默认为 9528,即使用宿主机上的 19528 端口。故务必确保宿主机上该端口可用。如果不是以 Docker 方式运行,则该处指定的端口即宿主机将占用的端口
      • DW_KODO=<http://your-kodo-host:port>: 用于指定特定的 kodo 服务器地址(一般 PAAS 部署会有自己单独的 kodo 地址)
      • DW_UPGRADE=1: 升级的时候,指定该选项即可。另外,即使只是升级,如果被升级的 DataWay 是运行在 Docker 中的,也需要指定 DOCKER=1 这个选项
    • 虽如此,还是不要在非 Linux 环境下用 Docker 安装(虽然主流的 Windows/Mac 都已经支持 Docker)

    • 所谓用 Docker 安装,不是登陆到 Docker 容器之后再安装,而是在宿主机上直接执行安装指令

    • 执行 docker ps -a |grep <your-agent-uuid> 即可看到运行 DataWay 的容器情况(需要 root 权限)

    • 安装完后,数据文件会落在宿主机 /dataway-data/<your-agent-uuid>/ 目录下,包括程序、配置文件、数据文件以及日志等。如果要更新配置文件以及 license 文件,请再宿主机的该目录下更新即可,更新完后,记得重启容器: docker restart <dataway-container-id>

DataWay 状态管理命令

systemd

启动:systemctl start dataway
重启:systemctl restart dataway
停止:systemctl stop dataway

upstart

启动:start dataway
重启:restart dataway
停止:stop dataway

其他

其他状态管理命令可参考安装成功后的终端提示

DataWay 管理

DataWay 默认数据上报路径为 /v1/write/metrics

DataWay 默认安装路径为 /usr/local/cloudcare/dataflux/dataway

DataWay 默认网关地址:绑定地址/v1/write/metrics

dataway.yaml: DataWay 配置文件
install.log:DataWay 安装日志
log:DataWay 运行日志

删除 DataWay

登录 DataFlux 管理后台,进入「数据网关」界面,找到需要删除 DataWay ,点击「配置」打开 DataWay 弹框,点击「删除」按钮即可在 DataFlux 中删除该 DataWay。

注意:在 DataFlux 中删除 DataWay 后,还需登录部署 DataWay 网关的服务器中停止 DataWay 的运行,然后删除安装目录才可彻底删除 DataWay。

升级 DataWay

登录 DataFlux 管理后台,进入「数据网关」界面,如果 DataWay 存在可升级的版本,版本信息处会有升级提示。找到需要升级的 DataWay,点击「配置」打开 DataWay 弹框,点击「获取升级脚本」,复制升级脚本到部署 DataWay 的主机上执行即可。

更改 DataWay 配置

打开 DataWay 配置文件 dataway.yaml

bind             : ":9528"                                       # 绑定地址和端口,如果希望调整为 1.2.3.4,端口 9538,可配置为 "1.2.3.4:9538"
remote_host      : "https://kodo.dataflux.cn/"                   # kodo服务地址
ws_bind:         : ":9530"                                       # datakit websocket proxy bind 
remote_ws_host   : "wss://kodo.dataflux.cn"                      # ws 服务 地址
log       : /usr/local/cloudcare/dataflux/dataway/log            # 日志文件位置
log_level : info                                                 # 日志等级
gin_log   : /usr/local/cloudcare/dataflux/dataway/gin.log        # gin 日志文件位置

enable_internal_token : true                                     # 允许使用 __internal__ 这个 token,此时数据打到系统工作空间
enable_empty_token    : true                                     # 允许 token 为空,此时数据打到系统工作空间

多路由配置

DataWay 支持多个上报路由,每个上报路由可以对应不同的数据处理路径,具体参考 DataWay 多路由配置

数据处理

DataWay 支持引入 Lua 脚本对采集的数据进行处理后再上报到 DataFlux 中心,具体查看 通过 Lua 脚本处理数据

通过 Config API 管理 DataWay

DataWay 支持通过 API 的方式对配置、路由和 Lua 脚本进行管理,具体请参考 DataWay API 说明文档(在文档的后半部分)

DataWay 性能测试(测试结果仅供参数)

软硬件列表:

  • OS: ubuntu 16.04.3 LTS
  • CPU: Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz(4核)
  • Mem: 16GB
  • Disk: SanDisk Ultra II 240GB
  • Dataway 以容器的方式安装

性能表现:

  • DataKit 总流量约 25MB/s(压缩前),点数约 80k/s,点数峰值约 100k/s;单个 point 行协议长度为 337 字节

  • DataWay、Kodo、Redis、NSQ 依旧在一台机器上。机器总体 CPU 达到 90% 以上。其中

    • DataWay CPU 率 170%,内存 <350MB(docker stats 数据)
    • kodo CPU 占用率 160% 左右,内存 < 1%
    • Redis CPU < 50%
    • NSQ 数据无堆积,容器中,各个 nsqd 占用 CPU < %3,内存 < 80MB(docker stats 数据)

注:

  • Datakit 往 DataWay 打数据启用了 gzip 压缩,避免内网带宽影响,故会消耗部分 DataWay CPU 资源
  • 关闭了 InfluxDB 写入,屏蔽 InfluxDB 写入性能的影响

针对阿里云顶配 influx 400k/s 的点数写入性能,当前的配置,需要平行 4-8 套(减去 DataWay/Redis 等消耗,按照正常运行 70% 的 CPU 占用来估算)出来才能平稳支撑顶配 Influx 的运行。