ThingsBoard application.yml / 配置参数讲解
原稿给出了配置分类提纲;本文在此基础上,按官网最新 Configuration Reference 整理成可落地的改法 + 分类导读 + 常用变量。
完整参数表极长,请以官网各页为准;本篇帮你知道改哪里、改什么、去哪查。
官方入口(PE 文档站,CE 多数变量名相同):
| 文档 | 链接 |
|---|---|
| 如何修改配置 | How to change config |
| Core / Rule Engine | Core and Rule Engine |
| HTTP Transport | HTTP Transport |
| MQTT Transport | MQTT Transport |
| 其它 | CoAP / LwM2M / SNMP / VC 等见官网 Configuration 目录 |
源码 / 安装包中的主配置文件通常叫 thingsboard.yml(不是 Spring Boot 默认的 application.yml,但写法相同:${ENV:默认值})。
1、先搞清:推荐怎么改配置
官网明确建议:优先用环境变量,尽量少直接改默认 yml,升级时不用反复合并文件。
yml 里一行长这样:
server:
address: "${HTTP_BIND_ADDRESS:0.0.0.0}"
port: "${HTTP_BIND_PORT:8080}"含义:
- 环境变量名:
HTTP_BIND_ADDRESS/HTTP_BIND_PORT - 冒号后面:未设置环境变量时的默认值
1.1 Linux 单体(deb/rpm)
编辑:
sudo nano /usr/share/thingsboard/conf/thingsboard.conf
# /etc/thingsboard/conf 常为上述目录的软链追加:
export HTTP_BIND_PORT=8081
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard
export SPRING_DATASOURCE_PASSWORD=你的密码重启:
sudo systemctl restart thingsboard1.2 Windows 安装包
配置目录:
YOUR_INSTALL_DIR/conf/thingsboard.yml可改默认值,或设置同名系统环境变量后重启 ThingsBoard 服务。
1.3 Docker Compose
在对应服务的 environment(或 .env / env_file)里写变量,例如:
environment:
HTTP_BIND_PORT: "8080"
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
SPRING_DATASOURCE_PASSWORD: postgres
TB_QUEUE_TYPE: kafka
TB_KAFKA_SERVERS: kafka:9092然后:
docker compose up -d专栏示例见:Ubuntu 系统部署 ThingsBoard 4.3.x。
1.4 Kubernetes
在 Deployment / StatefulSet 的 env,或 ConfigMap / Secret 中注入同上环境变量。见:K8s Minikube 部署。
1.5 源码本地跑
IDEA 运行配置里加 Environment variables,或改 application 模块下的 thingsboard.yml(开发方便;提交仓库前注意别带上生产密码)。
2、配置分几块?(对照原稿提纲)
ThingsBoard 不是「一个 yml 搞定所有进程」:
| 进程 / 角色 | 配置主要管什么 | 官网页 |
|---|---|---|
Core + Rule Engine(tb-node / 单体主进程) | HTTP API、库、安全、Actor、队列、缓存、本地内嵌 Transport 等 | Core/RE |
| HTTP Transport(独立微服务时) | 设备 HTTP API 端口、超时、队列对接 | HTTP |
| MQTT Transport | 1883/8883、SSL、限流、队列 | MQTT |
| CoAP / LwM2M / SNMP Transport | 各协议端口与会话 | 官网同目录各页 |
| Version Control | Git 版本控制执行器 | 官网 VC 配置页 |
| logback.xml | 日志级别、文件滚动与体积 | 与 conf 同目录 |
单体安装时:很多 Transport 配置会出现在 Core/RE 的「Local xxx transport」 段;微服务拆开后,则各自进程用自己的配置页。
3、Core / Rule Engine:分类导读 + 常用变量
下列分类名称对应原稿提纲与官网章节;每个分类只列最常用的环境变量,完整列表点开官网 Core/RE 页搜索变量名。
3.1 HTTP server parameters(HTTP 服务器)
| 环境变量 | 默认 | 说明 |
|---|---|---|
HTTP_BIND_ADDRESS | 0.0.0.0 | 监听地址 |
HTTP_BIND_PORT | 8080 | Web UI / REST 端口 |
3.2 Zookeeper connection parameters(Zookeeper)
集群服务发现用。单体默认常关闭。
| 环境变量 | 默认 | 说明 |
|---|---|---|
ZOOKEEPER_ENABLED | false | 是否启用 |
ZOOKEEPER_URL | localhost:2181 | 连接串 |
3.3 Security parameters(安全)
含登录、Claim、OAuth2 回调路径、安全头等。
| 环境变量 | 默认 | 说明 |
|---|---|---|
SECURITY_OAUTH2_LOGIN_PROCESSING_URL | /login/oauth2/code/ | OAuth2 回调路径(与 配置 OAuth2 一致) |
SECURITY_BASIC_ENABLED | false | Basic 认证相关 |
SECURITY_USER_TOKEN_ACCESS_ENABLED | true | 用户 Token 访问 |
3.4 Common database / SQL / Cassandra(数据库)
| 环境变量 | 默认 | 说明 |
|---|---|---|
DATABASE_TS_TYPE | sql | 时序库:sql 或 cassandra(混合库) |
DATABASE_TS_LATEST_TYPE | sql | latest 时序存储类型 |
DATABASE_TS_MAX_INTERVALS | 700 | 单次拉遥测最大拆分区间数 |
SPRING_DATASOURCE_URL | (安装时配置) | PostgreSQL JDBC |
SPRING_DATASOURCE_USERNAME | postgres | 用户名 |
SPRING_DATASOURCE_PASSWORD | 密码,务必改掉默认 |
说明:实体、属性、告警等始终在 PostgreSQL;Cassandra 只可选地承载时序。见官网 Database 架构说明。
3.5 Cache / Caffeine / Redis(缓存)
| 环境变量 | 默认 | 说明 |
|---|---|---|
CACHE_TYPE | (见官网) | caffeine / redis 等 |
REDIS_HOST | localhost | Redis/Valkey 主机 |
REDIS_PORT | 6379 | 端口 |
REDIS_PASSWORD | 密码 | |
REDIS_CONNECTION_TYPE | standalone | standalone / cluster / sentinel |
K8s 脚本里缓存组件常叫 Valkey,变量族仍多为 REDIS_*。
3.6 Queue parameters(队列)
| 环境变量 | 默认 | 说明 |
|---|---|---|
TB_QUEUE_TYPE | 视部署 | in-memory / kafka / rabbitmq 等 |
TB_KAFKA_SERVERS | Kafka bootstrap,如 kafka:9092 |
集群不要用纯内存队列。Docker 示例见部署文方式 B。
3.7 Actor / JS / Transport(本地)/ Edge / Metrics…
原稿还列出:
- Actor system parameters
- JavaScript evaluator parameters
- Transport parameters + Local HTTP/MQTT/CoAP/LwM2M/SNMP
- Edges / Swagger / Event / Service / Metrics
- Local Version Control
- Usage statistics / UI / Audit log / Device connectivity
- Platform integrations / Reports(偏 PE)
- License parameters(PE 许可证;CE 可忽略)
- Spring freemarker / CORS / gzip / 异步超时
这些在 Core and Rule Engine Configuration 左侧目录可逐项展开。日常二开最常动的是:端口、数据源、队列、Redis、TS 类型、安全/OAuth2。
3.8 单体里「Local MQTT」等
未拆 Transport 微服务时,MQTT/HTTP 等监听仍由主进程配置,例如(名称以你版本 yml 为准,官网 Local MQTT 段):
| 环境变量 | 默认 | 说明 |
|---|---|---|
MQTT_BIND_ADDRESS | 0.0.0.0 | MQTT 监听地址 |
MQTT_BIND_PORT | 1883 | MQTT 端口 |
MQTT_SSL_ENABLED | false | 是否开 MQTTS |
MQTT_SSL_BIND_PORT | 8883 | MQTTS 端口 |
4、独立 HTTP Transport 配置(微服务)
进程默认 HTTP 端口与 Core 不同(常见默认 8081),避免和 UI 的 8080 冲突。
| 环境变量 | 默认 | 说明 |
|---|---|---|
HTTP_BIND_ADDRESS | 0.0.0.0 | 绑定地址 |
HTTP_BIND_PORT | 8081 | HTTP Transport 端口 |
HTTP_REQUEST_TIMEOUT | 60000 | 请求超时(ms) |
HTTP_TRANSPORT_MAX_PAYLOAD_SIZE_LIMIT_CONFIGURATION | 见官网 | 按路径限制 payload |
TB_QUEUE_TYPE | 常为 kafka | 与 Core 通信的队列类型 |
TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | 与 Core 的 API 请求主题 |
完整表:HTTP Transport Configuration。
5、独立 MQTT Transport 配置(微服务)
| 环境变量 | 默认 | 说明 |
|---|---|---|
MQTT_BIND_ADDRESS | 0.0.0.0 | 监听地址 |
MQTT_BIND_PORT | 1883 | 明文 MQTT |
MQTT_SSL_ENABLED | false | 启用 SSL |
MQTT_SSL_BIND_PORT | 8883 | MQTTS |
MQTT_SSL_PEM_CERT / MQTT_SSL_PEM_KEY | PEM 证书与密钥 | |
MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT | 100 | 单设备消息队列上限 |
TB_TRANSPORT_IP_RATE_LIMITS_ENABLED | false | IP 限流 |
TB_QUEUE_TYPE | kafka | 队列 |
完整表:MQTT Transport Configuration。
6、CoAP / LwM2M / SNMP / Version Control(提纲)
原稿还列出这些 Transport 与 VC 的共同子类:
- Server Parameters
- Zookeeper
- Cache / Redis
- 协议 Server parameters
- Queue / Service / Metrics / Management
规律与 HTTP/MQTT 相同:协议端口与会话在本进程;队列把数据送到 Core/RE。请到官网 Configuration 目录打开对应页按变量名搜索。
Version Control Server:配合规则链/实体版本控制;与专栏 项目结构 中的 version-control、vc-executor 对应。
7、logback.xml(日志)
原稿:
The configuration file for logging. Allows controlling the log level, the size of log files and the total size/volume of logs.
安装后一般与 thingsboard.yml 同目录(如 /usr/share/thingsboard/conf/logback.xml)。可调:
- 包级别日志(如
org.thingsboard→ DEBUG,排错后改回) - 单个文件大小、滚动个数、总保留量
改完需重启进程。Docker 下也可看容器日志驱动限制(专栏 Compose 示例里有 max-size / max-file)。
8、按场景速查
| 你想… | 优先改 |
|---|---|
| 改 Web 端口 | HTTP_BIND_PORT |
| 连自己的 PostgreSQL | SPRING_DATASOURCE_URL / USERNAME / PASSWORD |
| 时序上 Cassandra | DATABASE_TS_TYPE=cassandra + Cassandra 相关项 |
| 上 Kafka 队列 | TB_QUEUE_TYPE=kafka,TB_KAFKA_SERVERS=... |
| 开 MQTTS | MQTT_SSL_ENABLED + 证书路径 |
| OAuth2 回调路径 | SECURITY_OAUTH2_LOGIN_PROCESSING_URL |
| 独立 HTTP 设备接入端口 | HTTP Transport 的 HTTP_BIND_PORT(常 8081) |
| 少改文件、好升级 | 只 export 环境变量,别大段改 yml |
9、原稿完整分类索引(Core/RE)
便于对照官网目录:
- HTTP server parameters【HTTP 服务器参数】
- Zookeeper connection parameters【Zookeeper 连接参数】
- Cluster stats parameters【集群统计参数】
- Plugins configuration parameters【插件配置参数】
- Security parameters【安全参数】
- Usage statistics parameters【使用统计参数】
- UI parameters【UI 参数】
- Common database parameters【公共数据库参数】
- Cassandra driver configuration parameters【Cassandra 驱动】
- SQL configuration parameters【SQL 配置】
- Actor system parameters【Actor 系统】
- Platform integrations parameters【平台集成】
- Reports parameters【报告】
- Cache parameters【缓存】
- Caffeine parameters【Caffeine】
- Redis connection parameters【Redis】
- Check new version updates parameters【检查新版本】
- Spring freemarker / CORS / 异步超时 / gzip 静态资源
- SQL DAO Configuration
- Audit log / Device connectivity state
- JavaScript evaluator parameters
- Transport + Local HTTP/MQTT/CoAP/LwM2M/SNMP
- Edges / License / Swagger
- Queue / Event / Service / Metrics
- Local Version Control parameters
另:HTTP / MQTT / CoAP / LwM2M / SNMP Transport Parameters、Version Control Server Parameters、logback.xml。
补充(辅)
- CE / PE: 配置页在 PE 文档站较完整;CE 无 License、部分 Reports/Integration 能力,但
HTTP_*、SPRING_DATASOURCE_*、TB_QUEUE_*、MQTT_*等通用。 - 改库密码后必须同步改 ThingsBoard 侧变量,并重启。
- 参数默认值随小版本可能微调,以你安装版本对应的官网页 / 自带 yml 为准。
- 官方参数页每个条目都带环境变量名与默认值,适合全文搜索。
