Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
172 changes: 172 additions & 0 deletions docs/zh/14-reference/01-components/13-license-center/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
---
title: License-Center 参考手册
sidebar_label: License-Center
toc_max_heading_level: 4
---

License Center 是一个用于管理 TDengine TSDB / IDMP 授权的 Web 服务,包含中心侧的 ELS 管理端和本地侧的 CLS 管理端。本文以当前本地已部署的 CLS 为例,介绍离线授权的完整操作流程。

## 前置条件

### 部署安装

解压安装包:

```bash
license-center-cls-0.1.0-linux-amd64.tar.gz
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

“解压安装包”这段的 bash 代码块里只有压缩包文件名,不是可执行命令;按现有文档惯例这里应给出实际解压命令(例如 tar -zxvf ...),否则读者容易误解为直接执行文件名。

Suggested change
license-center-cls-0.1.0-linux-amd64.tar.gz
tar -zxvf license-center-cls-0.1.0-linux-amd64.tar.gz

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The text mentions extracting the package, but only the filename is shown. It is recommended to provide the actual command.

tar -zxvf license-center-cls-0.1.0-linux-amd64.tar.gz

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where can the user download the package?

```

解压后即可看到部署相关脚本:

```bash
scripts/
├── install.sh
├── start.sh
├── status.sh
├── stop.sh
└── uninstall.sh
```

执行 install.sh,start.sh 后即可启动服务。

### 配置信息

默认配置文件在 `/etc/taoscls/taoscls.toml`:

```toml
[local]
listen = "0.0.0.0"
http_port = 6072
rpc_port = 6073

[els]
host = "192.168.2.158"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls use a common ip

port = 8094
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

8094 seems not in the port range.

enable = true

[database]
path = "/var/lib/taoscls"

[log]
level = "info"
file = "/var/log/taoscls/taoscls.log"
```

参数说明:

- `local.listen`: 表示服务监听的地址,默认 0.0.0.0 表示监听所有网卡地址
- `local.http_port`: 表示开启的 http api 服务端口
- `local.rpc_port`: 表示与 ELS 服务通信端口
- `els.host`: 表示 ELS 服务的地址
- `els.port`: 表示 ELS 服务的端口
- `els.enable`: 表是否开启与 ELS 的通信
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

参数说明里 els.enable 这一行有明显笔误,导致语义不通顺:应为“表示是否开启…”。

Suggested change
- `els.enable`: 表是否开启与 ELS 的通信
- `els.enable`: 表示是否开启与 ELS 的通信

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Typo: '表' should be '表示' to be consistent with the other parameter descriptions.

- `database.path`: 表示数据存放路径
- `log.level`: 表示日志级别
- `log.file`:表示日志路径
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Consistency: Use a half-width colon ':' instead of a full-width colon ':' to match the style of the preceding lines.


### 服务信息

- 已在本地启动 CLS 服务,默认情况下会在本机管理端显示 `CLS ID` 和公钥令牌。
- 浏览器可正常访问:
- CLS:`http://localhost:6072`
- 本文示例中的本地体验账号均为:
- 用户名:`root`
- 密码:`taosdata`

## 本地体验部署与访问

启动完成后,在浏览器中分别打开 CLS 管理端并登录。

![CLS 登录页](./assets/license-center-access-cls-login.png)

## 离线授权操作流程

### 1. 在 ELS 中创建客户
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The user does not need to operate this part, so do not include it.


登录 ELS 后,进入左侧 **客户管理**,点击右上角 **创建客户**。填写客户名称、邮箱、公司等信息后提交。

![进入客户管理](./assets/license-center-els-customer-create-entry.png)

![填写客户信息](./assets/license-center-els-customer-create-form.png)

创建成功后,客户会出现在列表中。

![客户创建完成](./assets/license-center-els-customer-created.png)

### 2. 在 ELS 中注册 CLS

登录 CLS 后,可以在左侧 **本机信息** 页面查看并复制当前设备的 `CLS ID` 与 **公钥令牌 (Base64)**。拿到公钥令牌后,回到 ELS 的 **CLS 管理** 页面,点击 **创建 CLS**,选择刚创建的客户并粘贴公钥令牌,完成注册。

![填写 CLS 注册信息](./assets/license-center-els-cls-register-form.png)

注册成功后,可以在 CLS 列表中看到新建记录以及对应的 `CLS ID`。

![CLS 注册完成](./assets/license-center-els-cls-created.png)

### 3. 在 ELS 中签发许可证

在 **CLS 管理** 或 **许可证管理** 中为目标 CLS 发起签发。当前界面会要求选择许可证类型、有效期、TSDB 配额数量和 IDMP 配额数量,并自动带出授权项。

![填写许可证信息](./assets/license-center-els-license-create-form.png)

签发完成后,许可证会出现在 **许可证管理** 列表中。

![许可证签发完成](./assets/license-center-els-license-created.png)

### 4. 在 ELS 中导出离线令牌

打开刚签发的许可证详情页,在右侧 **离线令牌** 区域点击 **下载令牌**,浏览器会下载文件 `offline-license.token`。

![下载离线令牌](./assets/license-center-els-offline-token-download.png)

### 5. 在 CLS 中导入 `offline-license.token`

回到 CLS 的 **许可证管理** 页面,点击右上角 **离线导入**,选择刚从 ELS 下载的 `offline-license.token`,然后点击 **导入**。

![选择离线令牌文件](./assets/license-center-cls-license-import-dialog.png)

导入成功后,许可证会出现在 CLS 的许可证列表中。

![离线令牌导入完成](./assets/license-center-cls-license-imported.png)

### 6. 在 CLS 中查看配额管理

进入左侧 **配额管理** 页面,可以查看该许可证拆分后的配额和授权项明细,包括许可证 ID、配额 ID、授权项、类别、类型、值和过期时间。

![查看配额管理](./assets/license-center-cls-quota-management.png)

## 后续说明

完成离线授权后,启动 IDMP / TSDB 并开始正常上报心跳,相关集群与使用量信息会逐步出现在 ELS 和 CLS 的 **集群管理** 页面中,便于后续持续查看授权使用情况。

## TSDB 集群配置

### 使用 SQL 配置

TSDB 配置可以使用如下 4 个 SQL 指令配置 CLS 服务相关信息,示例如下:

```bash
ALTER ALL DNODES 'clsEnabled' '1';
ALTER ALL DNODES 'clsRefreshInterval' '15';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The code block contains SQL statements. Using the 'sql' language tag instead of 'bash' will provide better syntax highlighting.

ALTER ALL DNODES 'clsUrl' 'http://192.168.2.158:6072';
ALTER ALL DNODES 'clsLicenseId' 'lic-53467044-2dad-4be2-9280-adacb201a644';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All license IDs and the like, including those in images, need to be blurred.

```
Comment on lines +148 to +153
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SQL 示例使用了 bash 代码块,会导致高亮/复制语义不准确;建议改为 sql,避免读者误以为需要在 shell 里执行。

Copilot uses AI. Check for mistakes.

说明:

`clsEnabled`: 表示是否开启 CLS 许可证功能

`clsRefreshInterval`: 表示与 CLS 服务通信间隔

`clsUrl`: 表示 CLS 服务地址

`clsLicenseId`: 表示要获取的许可证 ID

### 使用 taos-explorer 配置

在 taos-explorer 组件的 系统管理/许可证 页面,点击激活许可证按钮后,可以看到如下配置页面:

![image-20260501002702206](./assets/image-20260501002702206.png)
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

该图片的替代文本是自动生成的文件名(image-20260501002702206),对屏幕阅读器不友好;建议改为描述性 alt 文本(例如“taos-explorer 许可证激活配置页面”),与本文其余图片保持一致。

Suggested change
![image-20260501002702206](./assets/image-20260501002702206.png)
![taos-explorer 许可证激活配置页面](./assets/image-20260501002702206.png)

Copilot uses AI. Check for mistakes.

配置字段含义和 SQL 配置一致。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The image filename 'image-20260501002702206.png' appears to be a default name. Consider renaming the file to something more descriptive like 'license-center-explorer-config.png'.


Loading