配置环境变量
本节主要介绍 ECSM 相关的环境变量,以及 Windows、Linux、SylixOS 和 EdgerOS 环境下配置环境变量的方法。
环境变量列表
环境变量 | 说明 | 默认值 |
---|---|---|
STORAGE_PATH | 保存日志、镜像、数据库文件的绝对路径,请注意区分不同系统的连接符,例如在 Windows 系统中连接符是反斜杠(\),而在 Unix / Linux 系统中是正斜杠(/) | /home/user/data |
ASSETS_PATH | 前端资源的绝对路径,请注意区分不同系统的连接符 | /home/user/public |
REGISTRY_PORT | 镜像仓库服务端口,ECSM 镜像仓库可作为单独的镜像仓库服务 | 3000 |
WEB_PORT | HTTP API 服务端口,此端口用于与前端进行通信 | 3001 |
CONFIG_PORT | 配置中心服务端口 | 3002 |
POSITION_PORT | 位置服务端口,位置服务对外提供 VSOA 服务查询功能 | 3004 |
FILE_LEVEL | 日志文件等级,可配置为 trace、info、debug、warn、error、fatal 和 off。各等级顺序为 trace < debug < info < warn < error < fatal < off,根据配置控制日志文件记录的内容 | info |
CONSOLE_LEVEL | 日志输出等级,可配置为 trace、info、debug、warn、error、fatal 和 off。各等级吮吸为 trace < debug < info < warn < error < fatal < off,根据配置控制日志控制台输出的内容 | info |
TIME_FORMAT | 时间格式,详情可参见 Day.js | 'YYYY-MM-DD HH:mm:ss.SSS' |
MIGRATION_INFO | 数据库版本,ECSM 数据库升级时使用,通过配置信息控制目标数据库版本,例如 MIGRATION_INFO = ecsmdb_migrate_20230420112523。数据库版本文件存放位置为 “lib/model/schemas/versions” | - |
MAX_LOGS | 日志最大保存数,例如 10 代表保存 10 个,10 d 代表保存 10 天 | 11 |
LOG_SIZE | 日志文件大小,单位可以为 K、MB 和 GB | 6 MB |
ECSM_ID | ECSM 服务的唯一标识,当使用多个 ECSM 管理同一个节点时,必须配置为唯一且不可重复的值 | ecsm-default-test |
TRANSACTION_EXPIRY | 与前端建立 socket.io 事务通信时的超时时间,单位为 ms | 500001 |
KILL_TIMEOUT | ECSM 崩溃时退出程序的延迟时间,即进程出错时,杀掉进程的超时时间,单位为 ms | 10001 |
DC_HEARTBEAT_TIMEOUT | 心跳过滤时可容忍的最大心跳延迟时间,调度时心跳时间大于此值的节点会被过滤,单位为 ms | 10001 |
DC_PING_LATENCY_MAX | PING 延迟过滤时可容忍的最大平均延迟,调度时 PING 的平均延迟大于此值的节点会被过滤,单位为 ms | 800 |
DC_NODE_INSTANCES_LIMIT | 实例数量过滤时节点上最大可部署的容器数量,即调度时目标节点上已有的容器数量限制 | 1000 |
NODE_PING_DETECTION_TIMEOUT | 节点延迟探测超时时间,单位为 ms | 3000 |
NODE_PING_DETECTION_INTERVAL | 节点延迟探测间隔时间,单位为 ms | 1000 |
NODE_PING_LATENCY_QUEUE_SIZE | 节点延迟探测历史数据队列大小,最后的评估值为该队列数据的均值 | 3 |
QUEUE_TIMEOUT | 镜像仓库同步和镜像下载时任务队列超时时间,单位为 ms, 请勿随意修改 | 600001 |
CONTAINER_CHECK_MAX_TIME | 容器状态上报最大超时时间,如果超过当前值未上报则会将容器状态置为 null,单位为 ms | 6001 |
CONTAINER_DEPLOYMENT_MAX_TIME | 部署任务的最大超时时间,单位为 ms | 300000 |
DYNAMIC_REPLICA_KEEPER_TIME | 动态服务故障恢复任务的执行周期,单位为 ms | 30001 |
CONTAINER_UPDATE_CYCLE | 容器状态检查任务的执行周期,单位为 ms | 3001 |
HTTP_TIMEOUT | 镜像仓库服务的 HTTP 获取超时时间,单位为 ms | 5001 |
VSOA_PING_TIMEOUT | 初始化 VSOA 连接时的 PING 超时时间,单位为 ms | 3001 |
VSOA_PING_CYCLE | 初始化 VSOA 连接时的 PING 周期,单位为 ms | 5001 |
VSOA_PING_LOST | VSOA 断开连接的超时次数,超时该次数之后 VSOA 会断开连接 | 3 |
VSOA_RECONNECT_TIME | VSOA 连接断开后下一次的重连时间,单位为 ms | 5001 |
RUN_CONTAINER_TIMEOUT | 向 ECSD 运行容器时的超时时间,单位为 ms | 300001 |
VSOA_CALL_TIMEOUT | 向 ECSD VSOA 调用的默认超时时间,单位为 ms | 60001 |
DOWNLOAD_IMAGE_TIMEOUT | 向 ECSD 下载镜像的超时时间,单位为 ms | 3001 |
CREATE_CONTAINER_TIMEOUT | 向 ECSD 创建容器时的超时时间,单位为 ms | 3000 |
DEPLOY_RETRY_NUMBER | 部署失败后的重试次数 | 4 |
DYNAMIC_REPLICA_KEEPER_TIME | 镜像下载进度的轮询时间,单位为 ms | 200 |
REDEPLOY_DELAY | 部署失败后的下一次重新部署的延迟时间,单位为 ms | 3001 |
CREATION_POLL_INTERVAL | 故障迁移时,判定容器心跳不健康的最大超时时间,单位为 ms | 10001 |
CREATE_STATUS_SLEEP_TIME | 检测容器创建进度的周期,单位为 ms | 200 |
VSOA_SER_HEALTH_CHECK_TIMEOUT | 注册中心判定服务不健康的最大超时时间,单位为 ms | 8000 |
CRON_INTERVAL_INSPECT_CREATE_CONTAINER_QUEUE | 部署队列的检测时间,单位为 ms | 200 |
DEPLOY_CONCURRENT_TASK_LIMIT | 可以同时部署任务的节点数量 | 10 |
DEPLOY_CONCURRENT_TASK_NODE_LIMIT | 单节点上可以同时部署的任务数量 | 5 |
CONTROL_CONTAINER_TIMEOUT | 控制容器状态时的超时时间,单位为 ms | 3000 |
CONTAINER_OVERTIME | 若超过该时间容器状态与预期状态不一致,则会开始恢复状态 | 60000 |
REUSED_INSYANCE_DB_DELAY | 镜像复用时,更新数据库的延迟时间,单位为 ms | 50 |
CREATION_POLL_TIMEOUT | 检测创建容器进度的超时时间,单位为 ms | 30000 |
CREATE_IMAGE_WARM_UP_TIMEOUT | 镜像预热的超时时间,单位为 ms | 10000 |
LIST_IMAGE_WARM_UP_TIMEOUT | 镜像预热列表的超时时间,单位为 ms | 10000 |
DELETE_IMAGE_WARM_UP_TIMEOUT | 删除镜像预热的超时时间,单位为 ms | 10000 |
VSOA_FAILURE_RESTART_MAX_TIMES | 微服务失败尝试重启的最大次数 | 5 |
VSOA_FAILURE_RESTART_PERIOD | 微服务失败重启的最小时间周期,用于控制重启执行频率,单位为 ms | 5000 |
ECSD_EXPECT_VERSION | ECSD 预期版本 | >=0.5.8 |
SQL_LOGGER_LEVEL | 将 SQL 日志打印在什么级别,默认关闭 | off |
CONTAINER_DEPLOYMENT_TIMEOUT | 部署任务的最大超时时间,单位为 ms | 10001 |
REDEPLOY_DELAY | 部署失败后下一次重新部署的延迟时间,单位为 ms | 3001 |
STATUS_CONTROL_TIMEOUT | 若超过该时间容器状态与预期状态不一致,则会开始恢复状态 | 60000 |
STATUS_RECOVERY_COUNT_LIMIT | 容器状态恢复次数 | 3 |
ECSM_REGISTRY_HOST | ECSM 镜像仓库的主机地址 | 127.0.0.1 |
DELETED_DATA_RETENTION_PERIOD | 在数据库保留软删除数据的时间,单位为"天",到期后会执行硬删除, 默认为 7 天 | 7 |
CLEANUP_DB_PATTERN | 清理数据库软删除数据的任务周期,格式为 "%Y-%m-%dT%H:%M:%S",例如 CLEANUP_DB_PATTERN = "0 0 3 * * *" 表示每 3 天清理一次 | "0 0 3 * * *" |
CONTAINER_ENABLE_GC | 是否开启垃圾容器 GC,删除或更新服务时会产生垃圾容器。当设置为 0 时表示关闭,非 0 表示开启 | 1 |
POSITION_END_POINT | 位置服务的的 IP 地址和端口号 | 127.0.0.1:3004 |
POSITION_PASSWORD | 位置服务 Position Server 的密码 | - |
POSITION_PING_INTERVAL | 位置服务的 PING 循环时间 | 5000 |
POSITION_PING_TIMEOUT | 位置服务的 PING 超时时间 | 3000 |
POSITION_PING_LOST | 位置服务的 PING 循环次数 | 5 |
CONTAINER_RESET_TIMEOUT | 控制容器同步接口的超时时间(单位为 ms)。超过此时间容器数据未上报,则视成为容器失效。此处以默认 3000 毫秒为例,定义超时时间为 9000 毫秒,即容忍最多 3 次未上报 | 9000 |
CONTAINER_FULL_DATA_SYNC_PATTERN | 基于 ECSD 的增量数据上报,ECSM 每间隔此时间会使用全量数据对增量数据进行修正,这会影响容器超时失效后的指标数据恢复。格式为 "%Y-%m-%dT%H:%M:%S",例如 "*/10 * * * * *" 表示每 10 个月天修正一次 | "*/10 * * * * *" |
CONTROL_CONTAINER_SYNC_TIMEOUT | 控制容器同步接口的超时时间 | 10000 |
CONTROL_CONTAINER_ASYNC_TIMEOUT | 控制容器异步接口的超时时间 | 3000 |
VSOA_CALL_SYNC_CONCURRENT_LIMIT | VSOA 批量调用同步接口并发控制 | 10 |
ECMP_HTTP_ENDPOINT | ECMP 与 ECSM 进行 HTTP 通讯的 IP 地址和端口号 | 127.0.0.1:19008 |
ECMP_ENDPOINT | 软件工厂 ECMP 的 IP 地址 | - |
ECMP_POS_POINT | ECMP 位置服务的 IP 地址和端口号 | 127.0.0.1:19015 |
EQUIPMENTID | 软件工厂为 ECSM 生成的 ID,对应集群编号 | - |
ECMP_DATA_TIMEOUT | ECMP 数据确认机制超时时间,单位为 ms | 10000 |
TELNET_TIMEOUT | Telnet 连接超时时间,单位为 ms | 5000 |
UPLOAD_LIMIT | 上传文件分片大小的最大限制为 64 MB | 64 |
环境变量配置方法
ECSM 支持在运行 Windows、Linux、SylixOS 和 EdgerOS 操作系统的计算机上安装部署。不同系统下的环境变量设置方法不同,下面将详细介绍各系统的环境变量配置方法。
SylixOS 环境变量配置
通过远程连接工具(如 WindTerm)连接安装 ECSM 的计算机,并按提示输入用户名与密码。
执行如下命令,进入环境变量配置文件
.env
所在目录。其中 INSTALLATION_DIR 为 部署 ECSM 时指定的安装位置,如“/apps”。cd /$INSTALLATION_DIR/ecsm-package/ecsm-1.3.2-sylixos
选择如下两种方式之一配置环境变量。
修改
.env.platform
文件执行如下命令,打开并编辑环境变量配置文件,可参考 环境变量列表 配置需要的变量信息。配置完成后,按 ECS 键,并输入 :wq 以保存并退出。
vi .env.platform
执行
javascript install.js -a
使配置生效。javascript install.js -a
写入环境变量
执行
env
查看当前环境变量配置,并按需修改环境变量值,此处以修改日志文件等级变量 FILE_LEVEL=info 为例进行介绍。env FILE_LEVEL=info varsave
完成环境变量配置后,重启计算机以使配置生效。
Linux 环境变量配置
通过远程连接工具(如 WindTerm)连接安装 ECSM 的计算机,并按提示输入用户名与密码。
执行如下命令,进入 部署 ECSM 时,存放 ECSM 安装包的文件路径,例如“/tmp/ecsm-1.3.2-linux”。
cd /tmp/ecsm-1.3.2-linux
按需执行如下命令,打开并编辑对应的环境变量配置文件,可参考 环境变量列表 配置需要的变量信息。
vi .env.platform // 编辑 ECSM 核心模块环境变量配置文件 vi .env.position // 编辑 ECSM Position 模块环境变量配置文件 vi .env.ui // 编辑 ECSM 前端 UI 模块环境变量配置文件
配置完成后,按 ECS 键,并输入 :wq 保存退出。
执行如下命令,重新部署修改的 ECSM 模块使配置的环境变量生效,需确保 install.sh 具有可执行(x)权限。
./install.sh
Windows 环境变量配置
双击电脑桌面的 ECSM 快捷图标,在 ECSM 顶部菜单栏中,单击帮助 > 环境变量,在本地资源管理器中打开 ecsm-app 文件夹。
在 ecsm-app 文件夹中,打开
config.yaml
文件,参考 环境变量列表 添加需要的环境变量,建议 ECSM_REGISTRY_HOST 和 POSITION_END_POINT 必须配置。ECSM_REGISTRY_HOST: ${当前计算机 IP 地址} POSITION_END_POINT: ${当前计算机 IP 地址}:3004
配置完成后,保存文件并重启 ECSM,即可使配置的环境变量生效。
EdgerOS 环境变量配置
获取 ECSM 安装包,通过解压工具(如 7-Zip)打开安装包。下面以安装 ecsm-v1.3.0-rc.1-edgeros-noarch.eap 为例进行介绍。
进入 program 文件夹,选中
.env
文件,单击右键选择编辑,在在.env
文件中参考 环境变量列表 配置需要的环境变量信息。配置完成后,保存并关闭文件,在如下弹出框中单击确定,然后关闭压缩工具,完成环境变量配置。
配置完成后,参考 部署至 EdgerOS 环境 重新部署 ECSM 应用,使配置的环境变量生效。