拓冰建站拓冰建站
首页 / 资讯中心 / 正文

TDengine License Center(ELS/CLS)授权体系详解:部署、配额槽位与实例接入

TDengine License CenterELS/CLS授权体系详解部署、配额槽位与实例接入【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine本篇技术指南系统讲解 TDengine License Center 的双组件授权架构ELS CLS、配额槽位Slot模型、CLS 部署与在线/离线授权流程以及 TSDB / IDMP 实例通过clsEnabled、clsUrl、clsLicenseId、clsQuotaSlotId等参数接入 CLS 的完整方法。读完后你可以独立完成客户侧 CLS 的安装配置、许可证导入、多实例配额规划与用量核查并能从源码层面理解各配置参数的校验规则与动态生效机制。一、架构总览ELS 与 CLS 的分工License Center 用于管理 TDengine TSDB / IDMP 的授权由两侧组件组成组件全称部署位置作用ELSEnterprise License ServerTDengine 服务商侧签发、续期、吊销许可证管理客户整体额度与审计设定许可证允许的最大槽位数CLSCustomer License Server客户本地或托管环境承接许可证向本地下属的 TSDB / IDMP 实例发放配额并汇总用量在许可证限额内调整各槽位配额典型链路是ELS 管理客户的整体授权与最大槽位数 → 客户环境部署 CLS 并导入/同步许可证 → 多个 TSDB、IDMP 实例连接本地 CLS按配额槽位Slot申请授权并上报心跳与用量。需要注意本文及同目录示例中的许可证 ID、配额 ID、地址等均为演示数据无实际业务意义。相关文档索引位于 License Center 参考手册 同目录文档说明部署与授权安装 CLS、配置、在线/离线导入许可证、TSDB/IDMP 连接 CLS配额与槽位槽位数量与槽位配额的分工、多实例与多许可类型用量查看与可用性实例级用量、与 ELS 同步、CLS 部署形态二、与激活码授权的关系TDengine TSDB 企业版存在两种授权路径可根据规模与运维诉求选择方式适用场景激活码单集群或少量集群、由服务商按机器信息签发激活码License CenterELS CLS需要统一管理多实例配额、在线续期/吊销、在本地查看实例用量例如托管方在一套环境中服务多个下游系统激活码方式的完整流程可参考 激活 TDengine TSDB 企业版以root用户执行SHOW CLUSTER MACHINES;获取机器指纹信息并交予服务商收到激活码后执行ALTER CLUSTER activeCode your-activation-code;随后用SHOW GRANTS\G;查看授权详情含到期时间。若计划由本地 CLS 统一承接多个 TSDB / IDMP 实例则应优先按本文与 配额与槽位、部署与授权 完成安装与接入。三、授权模型要点与配额槽位体系模型要点一个 CLS 可对接多个独立的 TSDB / IDMP 实例一份许可证下可有多个槽位各槽位配额之和不超过该许可证总限额。TSDB 与 IDMP 配额相互独立同一客户可持有多张不同类型或不同有效期的许可证。槽位数量最大槽位数在 ELS 侧设定各槽位的具体配额在 CLS 侧调整且不得超过许可证总限额。CLS 可查看实例连接与用量联网时可向 ELS 同步当前 CLS 为单点服务。核心概念概念说明许可证License由 ELS 签发、CLS 持有的一份授权凭证通常对应一笔订单有类型与起止时间许可证限额单份许可证上的总授权上限该许可证下各槽位配额之和不得超过此上限槽位Slot许可证下的配额单元。一份许可证有固定的槽位数量或最大槽位数每个槽位可配置独立配额供 TSDB / IDMP 实例选用槽位配额某个槽位上的授权项限额如页面上的 TSDB Quota、IDMP Quota 等以 ELS/CLS 配置及配额页展示为准TSDB 与 IDMP 的配额相互独立各自累计用量。多实例时CLS 按实例汇总消耗消耗率可理解为当前用量 / 对应限额。一个 CLS 与多个实例一份软件许可可包含多个槽位。每个槽位有各自的配额实例侧通过clsLicenseId与clsQuotaSlotId指定使用哪张许可证的哪个槽位。各槽位配额之和不超过该许可证的总限额实例需与 CLS 保持通信。这些实例可以部署在不同主机上也可以属于不同客户或不同集群。许可层按许可证与槽位配额管控不区分具体部署拓扑。CLS 与 ELS 分别调整什么调整对象在哪里调整说明槽位数量最大槽位数ELS只有 ELS 能变更 CLS 侧可用的最大槽位数目各槽位的配额CLS在不超过许可证总限额的前提下可在 CLS 上调整每个槽位的配额槽位本身的增删结构超出当前最大槽位数ELSCLS 不能自行增加槽位数量需要更大槽位数时在 ELS 侧调整在线环境下ELS 对最大槽位数等许可结构的变更可同步到 CLS离线环境需按流程重新导入许可证相关材料。实例停用与配额再分配最终用户在软件许可录入页通常填写License Key / ID必填Slot多槽位许可证下用于指定本实例使用的槽位某个实例停用或删除后该实例不再产生运行期用量。若仍有空闲槽位可将新实例配置到空闲槽位也可在 CLS 上调整各槽位配额总和不超过许可证限额把额度从不再使用的槽位挪到仍在使用或新建使用的槽位。若现有最大槽位数不够用需要在 ELS 提高该许可证允许的最大槽位数再在 CLS 侧为新增槽位配置配额并接入实例。多种许可类型与部署规划一张许可证对应一种类型和一套起止时间通常对应一笔订单。同一客户可以持有多张许可证例如试用与正式、不同产品线在 CLS 中分别导入或同步。各实例使用哪张许可证、哪个槽位以实例侧配置为准。部署时建议按可预见的并发实例数在 ELS 侧准备足够的最大槽位数。在 CLS 侧为各槽位分配配额并保证各槽位配额之和不超过许可证总限额。下游实例增减或迁移时优先在 CLS 调整槽位配额或改用空闲槽位只有槽位数量不足时才回到 ELS 调整最大槽位数。四、CLS 部署与配置部署安装安装包示例license-center-cls-1.0.0-linux-amd64.tar.gz解压后可见部署相关脚本scripts/ ├── install.sh ├── start.sh ├── status.sh ├── stop.sh └── uninstall.sh依次执行install.sh、start.sh即可启动服务。配置文件默认配置文件位于/etc/taoscls/taoscls.toml[local] # 服务监听的地址默认 0.0.0.0 表示监听所有网卡地址 listen 0.0.0.0 # 开启 HTTP API 服务端口 http_port 6059 [els] # ELS 服务的地址 host license.taosdata.com # ELS 服务的端口 port 8094 # 是否开启与 ELS 的通信 enable true [database] # 数据存放路径 path /var/lib/taoscls [log] # 日志级别 level info # 日志路径 file /var/log/taoscls/taoscls.log # 滚动日志单个文件大小 max_size 1GB # 滚动日志个数 max_files 3 # 可选的日志时区如果没有设置回退到系统时区 # timezone 08:00配置要点解读[local]http_port默认 6059即 TSDB/IDMP 侧clsUrl需要指向的端口[els]enable false时 CLS 与 ELS 断开通信退化为纯离线模式许可证需手动导入enable true时许可证可自动同步[database]CLS 本地账本许可证、槽位、用量存放路径故障恢复依赖该目录备份[log]滚动日志策略max_size/max_files控制磁盘占用上限。本地访问启动 CLS 后浏览器访问http://localhost:6059按实际监听地址与端口调整。文档示例中的本地体验账号为用户名root密码taosdata五、许可证授权流程离线与在线离线授权获取许可证将 CLS本机信息页面中的公钥令牌交予 TDengine 服务商服务商返回许可证文件offline-license.key。导入许可证在 CLS 的许可证页面点击右上角离线导入选择offline-license.key然后点击导入。导入成功后许可证会出现在列表中。查看配额进入左侧配额页面可查看该许可证拆分后的配额与授权项明细包括许可证 ID、配额 ID、授权项、类别、类型、值和过期时间。槽位数量与各槽位配额的调整方式见 配额与槽位。在线授权在线授权与离线授权的整体流程基本一致区别在于许可证的获取方式若 CLS 已连接 ELS即taoscls.toml中[els].enable true且网络可达ELS 侧授权后许可证将自动同步至 CLS离线模式则需通过文件等方式手动导入。六、TSDB / IDMP 实例连接 CLSTSDB / IDMP 集群可通过配置与 CLS 通信配置成功后可在 CLS 的集群相关页面查看实例信息。通过 taosExplorer在 taosExplorer 的系统管理 / 许可证页面点击激活许可证进入配置页填写 CLS 地址、许可证 ID 与槽位 ID。各字段含义与下文 SQL 参数一致。确定后许可证页面即可看到 CLS 配置信息。通过 SQL示例以文档中的演示数据为例ALTER ALL DNODES clsEnabled 1; ALTER ALL DNODES clsRefreshInterval 15; ALTER ALL DNODES clsUrl http://192.168.2.158:6059; ALTER ALL DNODES clsLicenseId lic-53467044-2dad-4be2-9280-adacb201a644; ALTER ALL DNODES clsQuotaSlotId tsdb-1;参数说明源码层面的取值约束clsEnabled是否开启 CLS 许可证功能布尔项动态生效时触发taosHandleClsEnabledChange处理开关切换clsRefreshInterval与 CLS 通信间隔秒合法范围[10, 86400]越界值会被拒绝clsUrlCLS 服务地址字符串长度受TSDB_GRANT_CLS_URL_LEN上限约束clsLicenseId要使用的许可证 ID字符串长度受TSDB_GRANT_CLS_ID_LEN上限约束clsQuotaSlotId要使用的配额槽位 IDSlot字符串长度受TSDB_GRANT_CLS_ID_LEN上限约束最终用户在许可录入时通常需要填写 License Key / ID必填与 Slot可选按许可证是否拆分槽位而定。多实例场景下不同实例应使用不同的clsQuotaSlotId且各槽位配额之和不超过该许可证的总限额。源码级实现印证上述参数在 TDengine 服务端注册于全局配置系统见 tglobal.cTAOS_CHECK_RETURN(cfgAddBool(pCfg, clsEnabled, tsClsEnabled, CFG_SCOPE_SERVER, CFG_DYN_SERVER, CFG_CATEGORY_GLOBAL, CFG_PRIV_SYSTEM)); TAOS_CHECK_RETURN(cfgAddString(pCfg, clsUrl, tsClsUrl, ...)); TAOS_CHECK_RETURN(cfgAddString(pCfg, clsLicenseId, tsClsLicenseId, ...)); TAOS_CHECK_RETURN(cfgAddString(pCfg, clsQuotaSlotId, tsClsQuotaSlotId, ...)); TAOS_CHECK_RETURN(cfgAddInt32(pCfg, clsRefreshInterval, tsClsRefreshInterval, 10, 86400, ...));从注册参数可以看出所有cls*参数均为CFG_DYN_SERVER动态、服务端且为CFG_PRIV_SYSTEM仅系统权限级别因此支持通过ALTER ALL DNODES在线修改而无需重启但修改者需具备系统级权限如 root。clsRefreshInterval默认 10 秒合法区间 [10, 86400]越界校验逻辑见 tglobal.ctaosCheckClsRefreshIntervalValue越界时报out of range[10, 86400]错误。这与文档示例中使用15秒一致。从源码结构看服务端还维护了clsLastSucTime、clsLastReqTime、clsLastFailReason等内部跟踪项见 tglobal.c用于记录与 CLS 最近一次成功/最近一次请求的时间戳及失败原因便于排查实例与 CLS 的通信问题。动态修改路径同样对这些参数逐项做长度/区间校验见 tglobal.c即ALTER ALL DNODES下发的非法值会在服务端被直接拒绝。对应的单元测试覆盖了区间与动态切换行为cfgTest.cpp 的clsRefreshIntervalAlterRange用例验证了 9 被拒绝、10/86400 通过、86401 被拒绝commonTests.cpp 的clsEnabledTransitionKeepsLastExplicitRefreshInterval用例验证了clsEnabled在 0/1 之间反复切换时显式设置过的clsRefreshInterval会被保留而不回落到默认值。IDMP 配置当前新版本的页面配置仍在完善中。IDMP 侧同样通过许可证 ID 与配额槽位连接 CLS具体界面以产品版本为准。CLS 集群管理与用量查看TSDB / IDMP 完成 CLS 配置后可在 CLS 的集群页面看到对应集群在集群用量页面可查看各授权项用量。在 TSDB / IDMP 完成 CLS 配置后CLS 管理端可查看哪些 TSDB / IDMP 实例集群正在连接 CLS各授权项的当前用量与限额关系集群列表与用量明细页面中的汇总信息。当 CLS 可连接 ELS 时相关信息可向 ELS 同步便于服务商侧审计与续期管理。若需按下游业务客户统计占用通常还需结合自有的客户/租户台账与槽位命名约定许可系统按许可证与槽位计量。七、CLS 部署形态与可用性注意事项当前 CLS 为轻量单点服务产品内未提供内置高可用或自动故障切换。若生产环境需要进程级冗余可自行评估主机备份或冷备等运维方案。实践上可将 CLS 部署在稳定、可监控的主机上并对进程与磁盘做监控调整最大槽位数或同步/导入许可证时宜安排在维护窗口并确认结果多实例场景下避免把 CLS 部署在极不稳定的节点上。CLS 短暂不可用时已接入的 TSDB / IDMP 能继续运行多久取决于具体产品版本与许可证类型以当时版本行为及商务约定为准。接入侧仍应按配置与 CLS 保持通信参见clsRefreshInterval参数。八、小结License Center 是 TDengine 面向多实例、多租户授权场景的集中式许可方案ELS 掌握许可证签发与最大槽位数的控制权CLS 承担本地配额分发、用量汇总与 ELS 同步TSDB / IDMP 实例则以clsLicenseIdclsQuotaSlotId定位到具体授权额度。规划时把握“槽位数量在 ELS、槽位配额在 CLS、额度总和不超过许可证限额”三条边界配合ALTER ALL DNODES clsEnabled 1等五项参数的动态下发clsRefreshInterval取值 10~86400 秒即可完成从部署到接入的完整授权链路。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门