部署和维护 / 单机部署
本文主要介绍如何在服务器上直接安装、部署单机版 DataFlux Func。
有关在 k8s 中使用 Helm 安装 DataFlux Func,请参考 部署和维护 / 安装部署 / Helm 部署
1. 下载携带版安装文件
DataFlux Func 支持将所需安装文件下载后,通过 U 盘等移动设备带入无公网环境安装的「携带版」。
下载的「携带版」本身附带了自动安装脚本,执行即可进行安装(详情见下文)
1.1 一键命令下载
对于 Linux、macOS 等系统,推荐使用官方提供的 shell 命令下载「携带版」。
运行以下命令,即可自动下载 DataFlux Func 携带版的所需安装文件,下载脚本会自动根据当前环境选择下载x86_64
或aarch64
架构版本:
注意:安装前请确认系统要求和服务器配置
Bash | |
---|---|
1 |
|
Bash | |
---|---|
1 |
|
GSE 版和旧版
- 有关 GSE 版请参考 部署和维护 / 观测云特别版(GSE)
- 如需要下载并安装 DataFlux Func 1.x、2.x 旧版,请参考 变更记录 / 下载旧版
如需要下载架构与最终安装的服务器架构不相同,可以增加命令命令选项:
架构 | 下载命令 |
---|---|
Intel x86_64 处理器 |
/bin/bash -c "$(curl -fsSL func.guance.com/portable-download)" -- --for=GSE --arch=x86_64 |
ARM aarch64 处理器(即 ARM64v8,如:树莓派等) |
/bin/bash -c "$(curl -fsSL func.guance.com/portable-download)" -- --for=GSE --arch=aarch64 |
架构 | 下载命令 |
---|---|
Intel x86_64 处理器 |
/bin/bash -c "$(curl -fsSL func.guance.com/portable-download)" -- --arch=x86_64 |
ARM aarch64 处理器(即 ARM64v8,如:树莓派等) |
/bin/bash -c "$(curl -fsSL func.guance.com/portable-download)" -- --arch=aarch64 |
命令执行完成后,所有安装文件都保存在自动创建的dataflux-func-portable-{架构}-{版本号}
目录下。
- 对于需要将 DataFlux Func 安装到无公网的服务器时,可以先在本机下载,之后将整个目录通过 U 盘等移动存储设备,或
scp
工具等复制到目标机器中 - 对于需要将 DataFlux Func 安装到可以访问公网的服务器,直接在服务器上下载即可
1.2 手工下载
对于不便使用 shell 命令的系统,可手工下载所需安装文件。
如需要手工下载,以下是所有的文件列表:
# | 内容 | 文件名 | x86_64 架构(GSE 版) | aarch64 架构(GSE 版) |
---|---|---|---|---|
1 | Docker 二进制程序 | docker-20.10.8.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-20.10.8.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 旧版,请参考 变更记录 / 下载旧版
手工下载所有安装文件后,放入同一个目录下即可。
1.3 下载选项
在执行下载脚本时,可以指定下载选项以满足个性化需求,如:
Bash | |
---|---|
1 |
|
有关 GSE 版请参考 部署和维护 / 观测云特别版(GSE)
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 |
|
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_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
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 正常启动后,共有如下服务运行:
名称 | 说明 |
---|---|
dataflux-func_server |
DataFlux Func 的前端服务。 主要用于提供 Web 界面、API 接口等 |
dataflux-func_worker-0 |
监听#0 号队列的 Python 工作单元。 主要处理 DataFlux Func 的内部任务 |
dataflux-func_worker-1-6 |
监听#1~#6 号队列的 Python 工作单元。 主要处理同步任务(授权链接) |
dataflux-func_worker-7 |
监听#7 号队列的 Python 工作单元。 主要处理在 Web 界面中运行脚本的调试任务 |
dataflux-func_worker-8-9 |
监听#1~#6 号队列的 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. 用户信息、授权链接配置、自动触发配置、批处理配置 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/logs/ |
系统日志 |
文件 |
{安装目录}/data/user-config.yaml |
DataFlux Func 系统配置 |
文件 |
/etc/dataflux-func |
DataFlux Func 安装目录记录 用于升级时正确获取当前 DataFlux Func 的安装位置 |
5. 使用外部数据库
在全新安装 DataFlux Func 时,如果需要使用外部数据库(MySQL、Redis),可以在执行安装脚本时,指定禁用内置的 MySQL、Redis,如:
Bash | |
---|---|
1 |
|
安装完成后,在首次运行界面,点击「显示更多配置」,修改 MySQL、Redis 配置即可。
有关 MySQL、Redis 的配置要求,请参考 部署和维护 / 系统要求
如果需要将现有 DataFlux Func 的数据库迁移至外部,请参考 部署和维护 / 日常维护 / 迁移数据库