安装部署

环境准备

使用 TDgpt 的高级时序数据分析功能需要在 TDengine 集群中安装部署 AI node(Anode)。Anode 可以运行在 Linux/Windows/MacOS 等平台上,同时需要 3.10 或以上版本的 Python 环境支持。

部署 Anode 需要 TDengine Enterprise 3.3.4.3 及以后版本,请首先确认搭配 Anode 使用的 TDengine 能够支持 Anode。

安装及卸载

不同操作系统上安装及部署 Anode 有一些差异,主要是卸载操作、安装路径、服务启停等方面。本文以 Linux 系统为例,说明安装部署的流程。 使用 Linux 环境下的安装包 TDengine-enterprise-anode-1.x.x.tar.gz 可进行 Anode 的安装部署工作,命令如下:

1. tar -xzvf TDengine-enterprise-anode-1.0.0.tar.gz
2. cd TDengine-enterprise-anode-1.0.0
3. sudo ./install.sh

对于已经安装的 Anode,执行命令 rmtaosanode 即可完成卸载。 为了避免影响系统已有的 Python 环境,Anode 使用虚拟环境运行。安装 Anode 会在目录 /var/lib/taos/taosanode/venv/ 中创建默认的 Python 虚拟环境,Anode 运行所需要的库均安装在该目录下。为了避免反复安装虚拟环境带来的开销,卸载命令 rmtaosanode 并不会自动删除该虚拟环境,如果您确认不再需要 Python 的虚拟环境,手动删除该目录即可。

启停服务

在 Linux 系统中,安装 Anode 以后会自动创建 taosanoded 服务。可以使用 systemd 来管理 Anode 服务,使用如下命令启动/停止/检查 Anode。

1. systemctl start  taosanoded
2. systemctl stop   taosanoded
3. systemctl status taosanoded

目录及配置说明

安装完成后,Anode 主体目录结构如下:

目录/文件 说明
/usr/local/taos/taosanode/bin 可执行文件目录
/usr/local/taos/taosanode/resource 资源文件目录,链接到文件夹 /var/lib/taos/taosanode/resource/
/usr/local/taos/taosanode/lib 库文件目录
/var/lib/taos/taosanode/model/ 模型文件目录,链接到文件夹 /var/lib/taos/taosanode/model
/var/log/taos/taosanode/ 日志文件目录
/etc/taos/taosanode.ini 配置文件

配置说明

Anode 的服务需要使用 uWSGI 驱动驱动运行,因此 Anode 和 uWSGI 的配置信息共同存放在相同的配置文件 taosanode.ini 中,该配置文件默认位于 /etc/taos/ 目录下。 具体内容及配置项说明如下:

1. [uwsgi]

3. # Anode RESTful service ip:port
4. http = 127.0.0.1:6090

6. # base directory for Anode python files, do NOT modified this
7. chdir = /usr/local/taos/taosanode/lib

9. # initialize Anode python file
10. wsgi-file = /usr/local/taos/taosanode/lib/taos/app.py

12. # pid file
13. pidfile = /usr/local/taos/taosanode/taosanode.pid

15. # conflict with systemctl, so do NOT uncomment this
16. # daemonize = /var/log/taos/taosanode/taosanode.log

18. # log directory
19. logto = /var/log/taos/taosanode/taosanode.log

21. # wWSGI monitor port
22. stats = 127.0.0.1:8387

24. # python virtual environment directory, used by Anode
25. virtualenv = /usr/local/taos/taosanode/venv/

27. [taosanode]
28. # default app log file
29. app-log = /var/log/taos/taosanode/taosanode.app.log

31. # model storage directory
32. model-dir = /usr/local/taos/taosanode/model/

34. # default log level
35. log-level = DEBUG

提示 请勿设置 daemonize 参数,该参数会导致 uWSGI 与 systemctl 冲突,从而导致 Anode 无法正常启动。 上面的示例配置文件 taosanode.ini 只包含了使用 Anode 提供服务的基础配置参数,对于 uWSGI 的其他配置参数的设置及其说明请参考 uWSGIS官方文档。

Anode 运行配置主要是以下:

  • app-log: Anode 服务运行产生的日志,用户可以调整其到需要的位置
  • model-dir: 采用算法针对已经存在的数据集的运行完成生成的模型存储位置
  • log-level: app-log文件的日志级别

Anode 基本操作

对于 Anode 的管理,用户需要通过 TDengine 的命令行接口 taos 进行。因此下述介绍的管理命令都需要先打开 taos, 连接到 TDengine 运行实例。

创建 Anode

1. CREATE ANODE {node_url}

node_url 是提供服务的 Anode 的 IP 和 PORT组成的字符串, 例如:create anode '127.0.0.1:6090'。Anode 启动后还需要注册到 TDengine 集群中才能提供服务。不建议将 Anode 同时注册到两个集群中。

查看 Anode

列出集群中所有的数据分析节点,包括其 FQDN, PORT, STATUS等属性。

1. SHOW ANODES;

3. taos> show anodes;
4. id      |              url               |    status    |       create_time       |       update_time       |
5. ==================================================================================================================
6. 1 | 192.168.0.1:6090             | ready        | 2024-11-28 18:44:27.089 | 2024-11-28 18:44:27.089 |
7. Query OK, 1 row(s) in set (0.037205s)

查看提供的时序数据分析服务

1. SHOW ANODES FULL;

3. taos> show anodes full;
4. id      |            type            |              algo              |
5. ============================================================================
6. 1 | anomaly-detection          | shesd                          |
7. 1 | anomaly-detection          | iqr                            |
8. 1 | anomaly-detection          | ksigma                         |
9. 1 | anomaly-detection          | lof                            |
10. 1 | anomaly-detection          | grubbs                         |
11. 1 | anomaly-detection          | ad_encoder                     |
12. 1 | forecast                   | holtwinters                    |
13. 1 | forecast                   | arima                          |
14. Query OK, 8 row(s) in set (0.008796s)

刷新集群中的分析算法缓存

1. UPDATE ANODE {anode_id}
2. UPDATE ALL ANODES

删除 Anode

1. DROP ANODE {anode_id}

删除 Anode 只是将 Anode 从 TDengine 集群中删除,管理 Anode 的启停仍然需要使用 systemctl 命令。卸载 Anode 则需要使用上面提到的 rmtaosanode 命令。