1. 简介
本文以电动汽车监控为例,详细介绍通过MQTT,轻松采集电动汽车电门开度、驱动电机功率、空调功率、车速、SOC、电池电压/电流等监控指标,将数据写入 TDengine TSDB 时序数据库,然后通过 TDengine IDMP,利用 AI 自动生成可视化面板和实时分析,帮助您几分钟就构建一套稳定、高效的服务器监控解决方案。
在这个方案中,TDengine TSDB + TDengine IDMP 的组合能够为您带来四大好处:
- 轻松完成数据导入:TDengine IDMP 与 TDengine TSDB 无缝集成,当监控数据写入 TSDB 后,能够快速导入 IDMP 并以树形结构的方式展现被监控的电动汽车,IT 资产一目了然。
- 无问智推,数据自己说话:不用在 TDengine 侧做任何配置,不用脚本,不用提问,IDMP 会基于采集的数据,自动判断为 IT 监测场景,自动为您推荐面板和实时预警,服务器的运行状态尽在掌控之中。
- 智能问数,随问随答:不用 SQL,不用任何脚本语言,你只要用自然语言说出感兴趣的数据分析或监测面板,IDMP 将会自动帮您创建,把数据可视化与分析的使用门槛降为 0;
- 如果添加新的被监测的电动汽车,只要配置好 MQTT, 在 TDengine 侧不用做任何设置和操作,电动汽车就被自动的加入到监测的对象中,最大程度节省人力。
2. 环境准备
2.1 基础环境
本次 TDengine TSDB 和 IDMP 演示使用 docker 形式进行部署,MQTT 作为演示环境数据源。
具体数据流如下:

2.2 前提条件
- Docker(20.10+) Docker
- Docker Compose(v2.0+) Docker Compose
3. 配置指南
3.1 快速启动服务
- 克隆 tdengine-idmp-deployment 仓库
git clone https://github.com/taosdata/tdengine-idmp-deployment.git
- 使用 Docker Compose 启动 TDengine IDMP,TDengine TSDB,MQTT 服务
cd tdengine-idmp-deployment/examples/electric_vehicle
docker compose up -d
- 确认服务均已启动
docker compose ps

- 至此,所有服务已成功启动。您可以在浏览器输入
http://localhost:6042
访问 IDMP 服务,输入http://localhost:6060
访问 TSDB 服务。更多细节请参见 官网文档。
说明:TDengine IDMP 服务默认使用 TDengine TSDB 作为其数据源,IDMP 实例会自动创建到上述 TSDB 的连接。
3.2 创建数据写入任务并进行模拟数据写入
3.2.1 创建数据库
- 浏览器访输入
http://localhost:6060
进入 Explorer 界面,在注册页完成注册 - 点击【数据浏览器】,在数据浏览器页面点击【创建数据库】。
- 设置数据库名称为
ev
,完成 DB 创建。

3.2.2 创建数据写入任务
- 点击【数据写入】标签,进入任务配置页面,点击 【导入任务】。

- 选择
tdengine-idmp-deployment/examples/electric_vehicle/ev-task.json
文件,在弹出的导入任务对话框中,选择当前任务,选择数据库ev
,点击【确定】。

- 点击启动任务按钮,启动当前任务

- 任务启动成功后,状态显示【运行中】

3.2.2 生成模拟数据
- 进入
ev-mqtt
容器
docker compose exec -it ev-mqtt /bin/sh
- 启动数据模拟器,发送模拟数据
~ # ./mqtt_pub --schema ev-history.toml --interval 0ms
client_id: mqtt_pub_tool_91ZTZU424w
client_id: mqtt_pub_tool_xbLu82Nolb
client_id: mqtt_pub_tool_X5SdYp8CDb
client_id: mqtt_pub_tool_4Oe00ePc65
client_id: mqtt_pub_tool_RI06X0JbUi
client_id: mqtt_pub_tool_GhHh2ZMp4G
client_id: mqtt_pub_tool_p4F2TdW3X1
client_id: mqtt_pub_tool_8WND7eY2GY
client_id: mqtt_pub_tool_580cvLtSPd
client_id: mqtt_pub_tool_40kd6ebBB6
client_id: mqtt_pub_tool_SP4KjAMa5U
client_id: mqtt_pub_tool_aABIknMB1N
published 10066, speed: 28680/s, avg speed: 402640/s
published 114348, speed: 20957/s, avg speed: 22860/s
published 216489, speed: 20436/s, avg speed: 21647/s
published 300894, speed: 16851/s, avg speed: 20046/s
- 进入
http://localhost:6060
【数据浏览器】页面,看到电动汽车模拟数据已经生成

3.3 初始化 IDMP、体验AI分析
3.3.1 从 TDengine TSDB 导入资产模型与数据
TDengine TSDB 设计之初就考虑了静态标签支持树状结构,层级之间用“.”进行分割。
在本示例中,location 静态标签列被用于存放树状层级关系。
- 浏览器进入
http://localhost:6042
,在注册页完成注册激活 - 点击用户头像,进入【管理后台】

- 点击【连接】 标签下面的 【TDengine】,点击右侧三个点菜单,选择“数据导入”。

- 从下拉框中选择数据库
ev
,将标签location
在资产模型中设为路径
;其余列全部设为“属性”,将location
字段重命名为Electric Vehicle
,点击“完成”进行导入。(此处重命名仅仅为了后续展示时的美观)

- 点击【下一个超级表】,点击【忽略】,忽略掉除了【electric_vehicle】外的其它超级表。此处可以给字段进行重命名,在这里我们使用字段的本名进行演示。

- 点击【完成】,开始导入数据。

- 进入【元素浏览器】页面,在左侧资源浏览器中选中
Electric Vehicle
,在右侧选择【通用】

3.3.2 体验 AI 生成面板
- 在左侧资源浏览器中,点击
Electric Vehicle
> 北京 > 东城 -> 东华门街道 -> ev-17
元素,通过上方路径导航菜单选择【面板】,跳转至该元素的 AI 推荐面板页面。 - 等待 AI 生成面板推荐后,您可根据需求进行选择,例如:“过去1天每小时的电池电压不平衡度”,在您感兴趣的面板右上方的菜单中,点击【生成】按钮。等待面板生成后,可以【查看】该面板。

- 面板生成后,您还可以在该面板的详情页面中选择【高级】,查看 AI 创建面板时使用的 SQL 语句:
SELECT _wstart,AVG(`cell_max_voltage` - `cell_min_voltage`) AS `EV_Equipment_Battery_Voltage_Imbalance` FROM `idmp`.`vt_ev-17_569050` WHERE _c0 >= now-1d and _c0 <= now INTERVAL(1h) SLIDING(1h) ;
- 点击【保存】,即可在下方面板列表中查看
ev-17
元素下对应的面板。

3.3.3 体验 AI 分析
- 在左侧资源浏览器中,点击
Electric Vehicle > 北京 > 东城 -> 东华门街道 -> ev-17
元素,通过上方路径导航菜单选择【分析】,跳转至该元素的 AI 推荐分析页面。 - 等待 AI 生成分析问题推荐后,您可以根据需求进行选择,例如:“electric_vehicle:ev-17的soc低于20%时,发出次要报警,计算当时平均battery_current,状态窗口”,点击您感兴趣的问题链接,以进入分析编辑页面,点击页面最下方的【保存】。

- 退回到分析列表中,即可查看对应的分析。
3.4 停止服务
如果想要停止当前服务,输入以下命令
➤ docker compose down
[+] Running 4/4
✔ Container ev-mqtt Removed 0.2s
✔ Container tdengine-idmp Removed 10.4s
✔ Container tdengine-tsdb Removed 0.4s
✔ Network electric_vehicle_taos_net Removed
4. 更多
除了容器化部署方式以外,TDengine 还支持 tar 包安装方式,同时还提供云服务。详见:https://idmpdocs.taosdata.com/get-started/
5. 小结
本文以步骤分解的方式,介绍了如何使用 TDengine TSDB + TDengine IDMP 快速搭建一个基于 MQTT 上报数据的 电动汽车监控系统,无需专门的IT技能,搭建过程简洁而高效。日后,如果有新的车辆需要被纳入到监控系统中,无需创建元素,IDMP将自动侦测到新接入的车辆、纳入监控。
搭建整个监控系统的工作几乎都在 MQTT 数据源的准备,无需编写复杂的 SQL 语句,无需脚本和其他配置,无需学习 Grafana,无需了解多少电动汽车知识,即可轻松掌握电动汽车的运行状态,实时监控和分析电动汽车的状态并采取相应措施。