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 的服务器中执行即可,支持Linux
和Docker
两种安装方式。
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
数据)
- DataWay CPU 率 170%,内存 <350MB(
注:
- Datakit 往 DataWay 打数据启用了
gzip
压缩,避免内网带宽影响,故会消耗部分 DataWay CPU 资源 - 关闭了 InfluxDB 写入,屏蔽 InfluxDB 写入性能的影响
针对阿里云顶配 influx 400k/s 的点数写入性能,当前的配置,需要平行 4-8 套(减去 DataWay/Redis 等消耗,按照正常运行 70% 的 CPU 占用来估算)出来才能平稳支撑顶配 Influx 的运行。