文档首页 / 授权与许可

授权与许可

环境级授权的模型、获取环境信息与导入授权的步骤、查看授权信息、授权状态与过期行为、试用限制,以及常见错误的原因。

概述

Sight Report 与 Sight Wall 采用环境级授权:授权对应的是一个部署环境,而不是某一个进程或某一台机器。授权内容保存在配置库中,集群里任意一个节点导入一次,其余节点自动生效,无需逐台导入。产品替换 jar、重启、容器重建都不影响已保存的授权。

授权按产品签发。授权中的产品码必须与运行的产品一致:Sight Report 为 sight-report,Sight Wall 为 sight-wall。

授权的限制方式是「限运行,不限创建」:可以任意新建报表、大屏,受限的是在统计窗口内被运行访问的并发 IP 数与不同对象数,见 运行配额与机器绑定。

未导入授权时为试用状态,功能可用,但限制并发访问 IP 数,见下文「试用限制」。

功能入口

「系统 > 注册管理」页(页面标题为「产品注册」)。仅管理员可见。页面右上角有「获取环境信息」按钮,以及「注册」(已注册后为「重新注册」)按钮。

操作步骤

导入授权

  1. 以管理员身份登录,打开「系统 > 注册管理」。
  2. 点击右上角「获取环境信息」,弹出「环境信息」对话框。点击「复制」,或点击「下载为文件」,保存这段内容。
  3. 把环境信息发送给服务商,说明使用的产品、期望的授权范围(有效期、并发访问 IP 数、运行数量、节点数等)。
  4. 收到授权文件后,回到该页面,点击「注册」,选择授权文件上传。提示「注册成功」即导入完成,页面会刷新显示授权信息。
  5. 集群环境中,其他节点最迟约 60 秒内自动同步,不需要在每个节点上重复操作。

如需更新授权(续期、扩容),用同样的方法重新导入新的授权文件,「注册」按钮此时显示为「重新注册」。

提示:内网多为 http 部署,浏览器会把 http 页面发起的文件下载判为不安全下载,所以「获取环境信息」不直接触发下载,而是先把内容显示出来供复制,「下载为文件」仅作备选。

导入授权的六个步骤,从获取环境信息到集群节点自动同步

无界面的导入方式

配置库里还没有授权时,程序启动时会按以下顺序尝试自动注册:

  1. 环境变量 MR_LICENSE_CODE:授权内容。
  2. 环境变量 MR_LICENSE_FILE:授权文件路径。
  3. 工作目录下的 report-license.txt(Sight Wall 也是这个文件名)。

校验通过后写入配置库,之后即使去掉环境变量或文件也不受影响。校验失败时只记录日志,不入库。这种方式适合容器或离线环境的零接触交付。配置库里已有授权时,不会读取这些来源。

查看授权信息

「系统 > 注册管理」页在已注册后显示:

字段 说明
产品版本 当前运行的软件版本
使用单位 授权的使用单位名称
到期日期 授权到期日期;永久授权显示为 Unlimited
合同日期 合同日期
服务商 签发授权的服务商
授权版本 授权中记录的版本,仅展示,不参与校验
授权日期 授权签发日期
并发访问 允许的并发访问 IP 数上限,以及当前窗口内的已用数;未限制时显示「不限」
运行数量 表格报表、单据模板、仪表盘、大屏各自的上限与当前已用数;未限制的维度显示「不限」

管理员也可调用接口 GET /api/license/info 获取同样的信息(需管理员登录),返回中还含以下字段:

字段 说明
status 综合状态,取值见下节
statusReason 状态原因
daysToExpire 距到期天数;永久授权为极大值,试用为 -1,已过期为负数
expiringSoon 距到期 30 天以内为 true
clockTampered 系统时钟明显早于历史记录(相差超过 48 小时)时为 true,仅提示
nodeMax 授权的集群节点数上限,0 为不限
topology 授权的部署拓扑
bindMode、bindStatus、bindGraceDaysLeft 机器绑定状态,见 运行配额与机器绑定
usage 运行配额用量

系统 > 注册管理:产品注册与授权信息(示例数据)

授权状态

状态(status) 含义 影响
licensed 已授权且在有效期内 正常使用,受授权中的配额约束
trial 未注册,或授权解析失败后回落 按试用限制运行
expired 授权已过有效期 报表运行被拒绝,提示 LICENSE_EXPIRED
env_mismatch 授权与当前环境不匹配 授权不生效,回到试用状态
invalid_signature 授权签名无效或缺失 授权不生效,回到试用状态
no_db 配置库不可达或环境身份尚未初始化 暂以试用运行,配置库恢复后自动引导
env_secret_missing 环境标识丢失 授权不生效,需重新申请,见下文
machine_mismatch 机器绑定失配且已过宽限期 报表运行被拒绝,见 运行配额与机器绑定
node_limit_exceeded 集群节点数超过授权上限 新加入的节点被拒绝加入集群,已在集群内的节点不受影响
cloud_blocked 厂商云激活被吊销或冲突(该功能默认关闭) 报表运行被拒绝

过期与超限的行为

  • 过期:授权过了有效期后,状态变为 expired,报表运行时会被拒绝(LICENSE_EXPIRED)。判断过期时使用「系统时间与历史最高时间的较大值」,把系统时钟调慢不能让已过期的授权恢复。距到期 30 天以内,expiringSoon 为 true,可据此续期。
  • 运行配额超限:只拒绝新进入统计窗口的对象或 IP,已在窗口内的照常运行。接口返回 HTTP 403,业务码 42902。详见 运行配额与机器绑定。
  • 节点数超限:拒绝新节点加入,而不是让整个环境失效。

试用限制

未注册时,每个产品按客户端 IP 计数:默认在 1 小时(3600000 毫秒)的窗口内最多允许 2 个不同 IP 访问。超限时接口返回 HTTP 403,业务码 42901,提示「当前为试用版本,访问 IP 数已达上限,请稍后再试或联系我们升级正式版本。」

注册管理页在试用状态下提示「允许 2 个 IP 并发使用,生产环境请使用正式授权」。阈值与窗口可用配置项调整,见 配置项参考。

环境变化后的授权

授权与部署环境绑定:授权中记录了环境标识,导入时会与当前环境比对,不一致则拒绝。环境标识由程序在配置库中自动生成和保存,用户不需要维护,也不需要拷贝文件。

场景 结果
替换 jar、重启、升级 授权不变
集群增加节点(连同一个配置库) 自动共享同一环境标识,授权自动生效
从较早版本升级,程序目录里有历史文件 env-secret 首次启动读取它并收进配置库,授权不变
换了一个新的配置库 生成新的环境标识,原授权不再适用,需要重新获取环境信息并申请新授权
把整套部署或整个库拷到另一台机器 若授权带机器绑定,则机器不匹配,见 运行配额与机器绑定

环境变化后原授权不再适用时,页面提示:「部署环境已发生变化,原授权不再适用。请在「授权」页重新下载环境信息,向服务商申请新的授权文件后导入。」这里的「授权」页即「系统 > 注册管理」。

备份恢复不会恢复授权信息,见 备份与恢复。

常见错误

导入授权失败时,页面提示「注册失败,请检查授权文件」,具体原因见日志或接口返回的错误码:

错误码 原因 处理
LICENSE_ENV_MISMATCH 授权不是为当前环境签发的,或环境已变化 重新获取环境信息并申请授权
LICENSE_PRODUCT_MISMATCH 授权的产品与当前产品不一致,如把 Sight Wall 的授权导入 Sight Report 使用对应产品的授权
LICENSE_SIGNATURE_INVALID / LICENSE_SIGNATURE_REQUIRED 签名无效或缺失 使用服务商签发的原始授权文件,不要修改内容
LICENSE_VERSION_UNSUPPORTED 授权格式版本不受支持 联系服务商重新签发
LICENSE_CODE_EMPTY 授权内容为空 检查文件内容
LICENSE_PARSE_ERROR 授权内容无法解析 检查文件是否完整、是否被编辑器改动
LICENSE_ENV_NOT_READY 环境身份尚未初始化,通常是配置库不可用或迁移未完成 确认配置库可连接、服务已完成启动后重试

注意:导入一份校验失败的授权后,页面上的授权状态可能变为对应的失败状态。重新导入正确的授权文件即可;重启服务也会重新加载配置库中已保存的授权。

相关文档

联系我们

请填写您的信息,我们将在 1 个工作日内与您联系。