部署和维护 / 单机部署
本文主要介绍如何在服务器上直接安装、部署单机版 DataFlux Func。
有关在 k8s 中使用 Helm 安装 DataFlux Func,请参考 部署和维护 / 安装部署 / Helm 部署
1. 下载安装包
DataFlux Func 支持将所需安装文件下载后,通过 U 盘等移动设备带入无公网环境安装的「安装包」。
下载的「安装包」本身附带了自动安装脚本、Docker 等,执行即可进行安装(详情见下文)
1.1 一键命令下载
对于 Linux、macOS 等系统,推荐使用官方提供的 shell 命令下载安装包。
运行以下命令,即可自动下载 DataFlux Func 所需安装文件,下载脚本会自动根据当前环境选择下载 x86_64
或 aarch64
架构版本:
安装前请确认系统要求和服务器配置
Bash | |
---|---|
1 |
|
Bash | |
---|---|
1 |
|
GSE 版和旧版
- 有关 GSE 版请参考 部署和维护 / 观测云特别版(GSE)
- 如需要下载旧版 DataFlux Func 1.x、2.x、3.x、5.x,请参考 变更记录 / 下载旧版
如需要下载架构与最终安装的服务器架构不相同,可以增加架构选项指定架构:
Bash | |
---|---|
1 |
|
Bash | |
---|---|
1 |
|
Bash | |
---|---|
1 |
|
Bash | |
---|---|
1 |
|
命令执行完成后,所有安装文件都保存在自动创建的 dataflux-func-portable-{架构}-{版本号}
目录下。
- 对于需要将 DataFlux Func 安装到无公网的服务器时,可以先在本机下载,之后将整个目录通过 U 盘等移动存储设备,或
scp
工具等复制到目标机器中 - 对于需要将 DataFlux Func 安装到可以访问公网的服务器,直接在服务器上下载即可
1.2 手工下载
对于不便使用 shell 命令的系统,可手工下载所需安装文件。
如需要手工下载,以下是所有的文件列表:
# | 内容 | 文件名 | x86_64 架构(GSE 版) | aarch64 架构(GSE 版) |
---|---|---|---|---|
1 | Docker 二进制程序 | docker-24.0.9.tgz |
下载 | 下载 |
2 | DataFlux Func 镜像 | dataflux-func.tar.gz |
下载 | 下载 |
3 | MySQL/MariaDB 镜像 | mysql.tar.gz |
下载 | 下载 |
4 | Redis 镜像 | redis.tar.gz |
下载 | 下载 |
5 | Docker 服务配置文件 | docker.service |
下载 | 下载 |
6 | DataFluxFunc 安装脚本 | run-portable.sh |
下载 | 下载 |
7 | Docker Stack 配置文件模板 | docker-stack.example.yaml |
下载 | 下载 |
8 | 镜像列表 | image-list |
下载 | 下载 |
9 | 版本信息 | version |
下载 | 下载 |
# | 内容 | 文件名 | x86_64 架构(原版) | aarch64 架构(原版) |
---|---|---|---|---|
1 | Docker 二进制程序 | docker-24.0.9.tgz |
下载 | 下载 |
2 | DataFlux Func 镜像 | dataflux-func.tar.gz |
下载 | 下载 |
3 | MySQL/MariaDB 镜像 | mysql.tar.gz |
下载 | 下载 |
4 | Redis 镜像 | redis.tar.gz |
下载 | 下载 |
5 | Docker 服务配置文件 | docker.service |
下载 | 下载 |
6 | DataFluxFunc 安装脚本 | run-portable.sh |
下载 | 下载 |
7 | Docker Stack 配置文件模板 | docker-stack.example.yaml |
下载 | 下载 |
8 | 镜像列表 | image-list |
下载 | 下载 |
9 | 版本信息 | version |
下载 | 下载 |
GSE 版和旧版
- 有关 GSE 版请参考 部署和维护 / 观测云特别版(GSE)
- 如需要下载旧版 DataFlux Func 1.x、2.x、3.x、5.x,请参考 变更记录 / 下载旧版
手工下载所有安装文件后,放入同一个目录下即可。
1.3 下载选项
在执行下载脚本时,可以指定下载选项以满足个性化需求。
示例如下:
注意:在指定的下载选项之前,存在一个 --(两个中横线)
Bash | |
---|---|
1 |
|
支持的下载选项如下:
--arch={架构}
指定架构
下载脚本默认下载与本机相同架构的安装包文件,如果需要下载不同架构的安装文件,可以指定此参数。
可选的架构如下:
架构 | 说明 | 参数示例 |
---|---|---|
Intel | Intel / AMD 64 位处理器 | --arch=x86_64 |
ARM | ARM64v8 处理器 | --arch=aarch64 |
--download-dir={下载目录}
指定下载目录
于 2.6.1 版本新增
本参数适合用于自动化脚本方式部署 DataFlux Func
下载脚本默认会新建 / 清空当前目录下的 dataflux-func-portable-{架构}-{版本号}
目录,并将安装文件下载至此。
如果需要下载到指定的目录,可以指定此参数,如:
Bash | |
---|---|
1 |
|
2. 执行安装
进入在上文中下载的安装包目录,运行一键安装脚本 run-portable.sh
即可:
安装前请确认系统要求和服务器配置
DataFlux Func 不支持 macOS、Windows,请拷贝到 Linux 系统下再运行安装
Bash | |
---|---|
1 |
|
使用自动安装脚本可以实现几分钟内快速安装运行,自动配置的内容如下:
- 运行 MySQL、Redis、DataFlux Func(包含 Server,Worker,Beat)
- 自动创建并将所有数据保存于
/usr/local/dataflux-func/
目录下(包括 MySQL 数据、Redis 数据、DataFlux Func 配置、日志等文件) - 随机生成 MySQL
root
用户密码、系统 Secret,并保存于 DataFlux Func 配置文件中 - Redis 不设密码
- MySQL、Redis 不提供外部访问
执行完成后,可以使用浏览器访问 http://{服务器 IP 地址/域名}:8088
进行初始化操作界面。
如果运行环境性能较差,应当使用 docker ps 命令确认所有组件成功启动后,方可访问(见以下列表)
dataflux-func_server
dataflux-func_worker-0
dataflux-func_worker-1
dataflux-func_worker-2
dataflux-func_worker-3
dataflux-func_worker-5
dataflux-func_worker-6
dataflux-func_beat
dataflux-func_mysql
dataflux-func_redis
dataflux-func_server
dataflux-func_worker-0
dataflux-func_worker-1-6
dataflux-func_worker-7
dataflux-func_worker-8-9
dataflux-func_beat
dataflux-func_mysql
dataflux-func_redis
2.1 安装选项
在执行安装脚本时,可以指定安装选项以满足个性化需求,如:
Bash | |
---|---|
1 |
|
--mini
安装迷你版
针对低配置环境下,需要节约资源时的安装模式。
开启后:
- 仅启动单个 Worker 监听所有队列
- 遇到重负载任务更容易导致队列阻塞和卡顿
- 系统任务和函数任务共享处理队列,相互会受到影响
- 系统要求降低为:
- CPU 核心数 >= 1
- 内存容量 >= 2GB
- 如不使用内置的 MySQL、Redis,系统要求可以进一步降低
--port={端口号}
指定监听端口号
DataFlux Func 默认使用 8088
端口访问,如果此端口被其他程序占用,可以选择其他端口,如:9000
。
--install-dir={安装目录}
指定安装目录
需要安装到与默认路径 /usr/local/dataflux-func
不同的路径下时,可指定此参数
--no-mysql
禁用内置 MySQL
需要使用已有的 MySQL 数据库时,可指定此参数,禁止在本机启动 MySQL。
启用此选项后,需要在安装完成后的配置页面指定正确的 MySQL 连接信息
--no-redis
禁用内置 Redis
需要使用已有的 Redis 数据库时,可指定此参数,禁止在本机启动 Redis。
启用此选项后,需要在安装完成后的配置页面指定正确的 Redis 连接信息
--auto-setup
自动执行配置
于 2.6.0 版本新增
本参数适合用于自动化脚本方式部署 DataFlux Func
启用后,自动进行配置、初始化数据库,不再会有配置页面,如:
Bash | |
---|---|
1 |
|
此外,在开启 --auto-setup
选项后,还可以加入其他 --auto-setup-*
对自动配置进行调整。自动配置的额外选项如下:
自动配置额外选项 | 默认值 | 说明 |
---|---|---|
--auto-setup-admin-username={用户名} |
admin |
指定管理员用户名 |
--auto-setup-admin-password={密码} |
admin |
指定管理员密码 |
--auto-setup-ak-secret={AK Secret} |
自动生成 | 自动创建 AK 且使用指定值作为 AK Secret |
--auto-setup-ak-id={AK ID} |
ak-auto-setup |
自动创建 AK 时的 AK ID (需要配合 --auto-setup-ak-secret 选项使用) |
如需要自动配置并指定管理员密码为AdminPass
,那么完整命令如下:
Bash | |
---|---|
1 |
|
3. 验证安装
DataFlux Func 默认安装完成后,就已经附带了一些示例脚本。
依次执行以下操作,即可验证安装:
- 点击顶部导航条的「脚本编辑器」,在左侧栏依次选择「脚本库」-「示例」-「基础演示」
- 在右侧脚本编辑器顶部,点击「编辑」进入编辑模式,选择「hello_world」函数并点击「执行」按钮执行函数
- 此时,如果在底部「脚本输出」中,能够正常看到函数的返回值
至此,验证安装完毕
3.1 各服务说明
默认情况下,DataFlux Func 正常启动后,共有如下服务运行:
队列 #7, #8, #9 为观测云附属版 Func 专用队列,在独立部署版 Func 中作为预留队列
名称 | 说明 |
---|---|
dataflux-func_server |
DataFlux Func 的前端服务。 主要用于提供 Web 界面、API 接口等 |
dataflux-func_worker-0 |
监听 #0, #4, #7, #8, #9 队列的 Python 工作单元。 主要处理 DataFlux Func 的内部任务(#0 队列)以及其他误入预留队列的任务 |
dataflux-func_worker-1 |
监听 #1 队列的 Python 工作单元。 主要处理一般用途的用户函数任务 |
dataflux-func_worker-2 |
监听 #2 队列的 Python 工作单元。 主要处理自动触发的用户函数任务 |
dataflux-func_worker-3 |
监听 #3 队列的 Python 工作单元。 主要处理批处理的用户函数任务 |
dataflux-func_worker-5 |
监听 #5 号队列的 Python 工作单元。 主要处理在 Web 界面中运行脚本的调试任务 |
dataflux-func_worker-6 |
监听 #6 号队列的 Python 工作单元。 主要处理连接器订阅消息执行的任务 |
dataflux-func_beat |
自动触发任务的触发器,全局只能开启 1 个 |
dataflux-func_mysql |
DataFlux Func 自带的内置 MySQL |
dataflux-func_redis |
DataFlux Func 自带的内置 Redis |
名称 | 说明 |
---|---|
dataflux-func_server |
DataFlux Func 的前端服务。 主要用于提供 Web 界面、API 接口等 |
dataflux-func_worker-0 |
监听 #0 队列的 Python 工作单元。 主要处理 DataFlux Func 的内部任务 |
dataflux-func_worker-1-6 |
监听 #1, #2, #3, #4, #5, #6 队列的 Python 工作单元。 主要处理同步 API(旧版:授权链接) |
dataflux-func_worker-7 |
监听 #7 队列的 Python 工作单元。 主要处理在 Web 界面中运行脚本的调试任务 |
dataflux-func_worker-8-9 |
监听 #8, #9 队列的 Python 工作单元。 主要处理异步任务(自动触发、批处理) |
dataflux-func_beat |
自动触发任务的触发器,全局只能开启 1 个 |
dataflux-func_mysql |
DataFlux Func 自带的内置 MySQL |
dataflux-func_redis |
DataFlux Func 自带的内置 Redis |
3.2 数据保存位置
DataFlux Func 运行需要存储各种不同的数据,大致内容及存储位置如下:
存储 | 保存路径 | 存储内容 |
---|---|---|
MySQL |
{安装目录}/mysql/ |
绝大部分在 UI 操作中产生的数据,包括且不限于: 1. 脚本、连接器配置、环境变量 2. 用户信息、同步 API(旧版:授权链接)、定时任务(旧版:自动触发配置)、异步 API(旧版:批处理) 3. 操作记录、脚本运行记录、导入导出记录等 |
Redis |
{安装目录}/redis/ |
主要用于缓存和队列,包括且不限于: 1. 用户登录信息 2. 脚本运行时建立的各种缓存 3. 脚本执行任务队列 4. Func 自身监控数据等 |
目录 |
{安装目录}/data/ |
主要用于必须以文件形式存在的数据,详见下文 |
目录 |
{安装目录}/data/resources/ |
资源文件夹(即「文件管理器」根目录) |
目录 |
{安装目录}/data/resources/extra-python-packages/ |
PIP 工具安装的第三方包 |
目录 |
{安装目录}/data/resources/script-market/ |
脚本市场下载数据 |
目录 |
{安装目录}/data/sqldump/ |
数据库自动备份 |
目录 |
{安装目录}/data/logs/ |
系统日志 |
文件 |
{安装目录}/data/user-config.yaml |
DataFlux Func 系统配置 |
文件 |
/etc/dataflux-func |
DataFlux Func 安装目录记录 用于升级时正确获取当前 DataFlux Func 的安装位置 |
4. 使用外部数据库
在全新安装 DataFlux Func 时,如果需要使用外部数据库(MySQL、Redis),可以在执行安装脚本时,指定禁用内置的 MySQL、Redis,如:
Bash | |
---|---|
1 |
|
安装完成后,在首次运行界面,点击「显示更多配置」,修改 MySQL、Redis 配置即可。
有关 MySQL、Redis 的配置要求,请参考 部署和维护 / 系统要求
如果需要将现有 DataFlux Func 的数据库迁移至外部,请参考 部署和维护 / 日常维护 / 迁移数据库