跳到主要内容

Anode 管理

本节介绍安装版 TDgpt Anode 的服务启停、模型启停、日志位置、目录结构和基本注册管理方法。

启停 Anode 服务​

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

systemctl start  taosanoded
systemctl stop taosanoded
systemctl status taosanoded

启停时间序列基础模型服务​

提供时序基础模型服务需要占用较大的内存资源。为避免启动过程中资源不足导致失败,暂不提供自动启动时间序列基础模型的功能。若需要体验时序基础模型服务,请手动执行如下命令。

# 启动涛思时序数据基础模型
start-model tdtsfm
# 启动 Time-MoE 基础模型
start-model timemoe
# 停止涛思时序数据基础模型
stop-model tdtsfm
# 停止 Time-MoE 基础模型
stop-model timemoe

上述命令只在安装版本中可用,使用 Docker 镜像和云服务,该命令不可用。更多信息请参考 时序模型服务启动和停止脚本。

当前安装版 start-model / stop-model 脚本会直接使用安装目录下主虚拟环境的 Python: Linux 为 <install_dir>/venv/bin/python3 或 <install_dir>/venv/bin/python。如果主虚拟环境缺失,脚本会直接报错,不再回退到系统 PATH 中的 Python。

目录及配置文件说明​

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

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

配置说明​

配置文件 taosanode.config.py 默认位于 /etc/taos/ 目录下。Anode 的服务使用 Gunicorn 驱动运行,在配置文件中同时具有 Anode 和 Gunicorn 的配置信息。

v3.4.1.0 及之后版本的配置文件示例:

具体内容及配置项说明如下:

# gunicorn_config.py
import multiprocessing

# list address and port
bind = '0.0.0.0:6035'

# Number of worker processes (typically recommended 2 * CPU cores + 1)
workers = 2

# Specify worker type, using default sync worker here
# For IO-intensive applications, consider eventlet or gevent
worker_class = 'sync'

# Number of threads per process (recommended for model deployment)
threads = max(multiprocessing.cpu_count() // 4 + 1, 2)

# Maximum number of requests, worker will restart after reaching limit, helps release memory
max_requests = 1000

# Random jitter added to max_requests to avoid all workers restarting simultaneously
max_requests_jitter = 50

# Timeout settings
timeout = 1200

# keep-alive time
keepalive = 1200

# Log Setting
accesslog = '/var/log/taos/taosanode/access.log'
errorlog = '/var/log/taos/taosanode/error.log'

# log level: debug, info, warning, error, critical
loglevel = 'debug'

# Set process name
proc_name = 'tdgpt_taosanode_app'

# Preload application before forking worker processes. This can improve startup time and save memory
preload_app = True

# [taosanode]
# default app log file
app_log = '/var/log/taos/taosanode/taosanode.app.log'

# model storage directory
model_dir = '/usr/local/taos/taosanode/model/'

# default log level
log_level = 'DEBUG'

# draw the query results
draw_result = False

# moe default service host
tdtsfm_1 = 'http://127.0.0.1:6061/tdtsfm'
timemoe_fc = 'http://127.0.0.1:6062/ds_predict'

提示​

上面的配置文件 taosanode.config.py 只包含了基础配置参数,其他的设置及其说明请参考 Gunicorn 官方文档。

Anode 运行配置主要是以下:

  • app_log:Anode 服务运行产生的日志,用户可以调整其到需要的位置
  • model_dir:针对已有数据集运行完成生成的模型存储位置
  • log_level:app_log 文件的日志级别。可选的配置选项:DEBUG,INFO,CRITICAL,ERROR,WARN;当前默认值为 DEBUG

Anode 基本操作​

用户可通过 TDengine 的命令行工具 taos 进行 Anode 的管理。执行下述命令都需要确保 taos shell 工作正常。相关系统信息也可参见 SHOW ANODES。

创建 Anode​

CREATE ANODE {node_url}

node_url 是提供服务的 Anode 的 URL 字符串。Anode 启动后需要注册到 TDengine 集群中才能提供服务。不建议将 Anode 同时注册到两个集群中。

URL 格式要求

URL 须满足以下所有条件:

  • 协议前缀必须为 http:// 或 https://。不带协议的 host:port 格式及其他协议(如 file://、ftp://)将被拒绝。
  • 默认情况下,解析到私有或内网地址的 URL 被允许。如需拒绝此类地址,在 taos.cfg 中将 anodeAllowInternalUrl 设置为 false 并重启 taosd。受限范围包括:回环地址(127.0.0.0/8、::1)、链路本地地址(169.254.0.0/16、fe80::/10)及 RFC-1918 私有地址段(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)。

示例:

CREATE ANODE 'http://192.168.1.50:6035'

限制 Anode URL 只能使用公网地址

在 TDengine 服务端不应连接内部服务的环境中(例如多租户或云端部署),可在 taos.cfg 中将 anodeAllowInternalUrl 设置为 false 并重启 taosd:

anodeAllowInternalUrl false
参数作用范围默认值说明
anodeAllowInternalUrltaosdtrue允许 CREATE ANODE 使用解析到私有或内网地址的 URL。设置为 false 后将拒绝回环、链路本地及 RFC-1918 地址。可通过 ALTER ALL DNODES 'anodeAllowInternalUrl' '0' 热更新,无需重启。

查看 Anode​

列出集群中所有的数据分析节点,包括其 id、url、status、创建与更新时间等属性。

SHOW ANODES;

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

查看可用分析模型​

SHOW ANODES FULL;

taos> show anodes full;
id | type | algo |
============================================================================
1 | anomaly-detection | grubbs |
1 | anomaly-detection | lof |
1 | anomaly-detection | shesd |
1 | anomaly-detection | ksigma |
1 | anomaly-detection | iqr |
1 | forecast | arima |
1 | forecast | holtwinters |
1 | forecast | tdtsfm_1 |
1 | forecast | timemoe-fc |
Query OK, 9 row(s) in set (0.028750s)

列表中的算法分为异常检测与预测分析两类;具体条目以当前节点实际加载结果为准。常见内置模型如下:

类型模型名称说明
异常检测grubbs基于数学统计学检测模型
异常检测lof基于密度的检测模型
异常检测shesd季节性 ESD 算法模型
异常检测ksigma数学统计学检测模型
异常检测iqr数学统计学检测模型
预测分析arima移动平均自回归预测算法
预测分析holtwinters多次指数平滑预测算法
预测分析tdtsfm_1涛思时序数据基础模型 v1.0 版本
预测分析timemoe-fcTime-MoE 时序基础模型的预测能力

相关算法的具体介绍和使用说明见后续章节。若部署了预训练示例模型或其他自定义模型,也可能出现在 SHOW ANODES FULL 结果中。

刷新分析算法列表缓存​

UPDATE ANODE {anode_id}
UPDATE ALL ANODES

删除 Anode​

DROP ANODE {anode_id}

删除 Anode 只是将 Anode 从 TDengine 集群中移除。Linux 环境下,管理 Anode 的启停仍然需要使用 systemctl 来操作,卸载 Anode 需要使用 rmtaosanode 命令。Windows 环境下,删除 Anode 不会停止本机 Taosanode 服务,也不会卸载本机安装;服务启停请使用安装目录下脚本或 Windows 服务命令,卸载请使用安装包卸载程序。