TDgpt(taosanode)安装部署与运维指南:为 TDengine 构建时序数据分析平台
发布时间:2026/9/15 2:45:49 锦皓数字建站
安装部署与运维指南:为 TDengine 构建时序数据分析平台`)
TDgpttaosanode安装部署与运维指南为 TDengine 构建时序数据分析平台【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDgpt 是 TDengine 仓库中基于 Python 实现的时序数据分析平台服务名 taosanode/anode它以独立进程提供 RESTful 服务为 TDengine 集群补充预测、异常检测、数据补齐、相关性分析、回归与分类等机器学习分析能力。本文以 tools/tdgpt/README.md 为骨架结合仓库中的安装脚本、systemd 单元文件、配置文件与算法源码完整讲解从环境准备、打包、安装、配置、启停到模型与 RESTful 接口使用的全过程。读完本文你将能够在 Linux/Windows 上独立完成 TDgpt 的部署与日常运维并理解其服务注册、模型加载与配置解析的底层机制。1. TDgpt 是什么按 tools/tdgpt/README.md 的定位TDgpt 是 TDengine 的“analytic platform”分析平台安装后以taosanode服务名taosanoded形式运行。它不直接存储时序数据而是以独立 HTTP 服务的方式提供分析能力供 TDengine 的 SQL 层或其他客户端通过 REST API 调用。从仓库源码可以确认其技术形态纯 Python 实现核心代码位于 tools/tdgpt/taosanalytics/入口 WSGI 应用为 app.py 中的app:appFlask 应用因此无需编译构建。算法按目录组织并自动注册service_registry.py 会在启动时扫描algo/ad异常检测、algo/fc预测、algo/imputat数据补齐、algo/correl相关性分析以及自定义算法目录把算法类实例注册进服务注册表供/forecast、/anomaly-detect等接口按algo参数动态调用。内置经典与深度时序算法预测类包含 holtwinters、arima、ets、ces、theta、prophet、gpt、chronos、moirai、timesfm、timemoe 等见 tools/tdgpt/taosanalytics/algo/fc/异常检测类包含 ksigma、grubbs、iqr、lof、pyod、shesd 等见 tools/tdgpt/taosanalytics/algo/ad/此外还有基于 MOMENT 的数据补齐algo/imputat/和 DTW、TLCC 相关性算法algo/correl/。说明README 中提到 RESTful 服务由uWSGI驱动实际从 cfg/taosanoded.service 与 taosanode_service.py 看Linux 下由gunicorn承载systemd 单元中ExecStart调用 gunicornWindows 下由waitress承载本文后续配置说明以源码实际为准。2. 环境准备Prerequisites按 README 的要求开发与测试环境需要Python 3.10.12INSTALL.md 则进一步明确支持Python 3.10 / 3.11 / 3.12。安装脚本 script/install.sh 中的check_python3_env()也会强制校验 Python 与 pip 的 3.10/3.11/3.12 版本不满足会直接退出。2.1 Ubuntu/Debian 安装 Python 3.10sudo apt-get install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.10 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 sudo update-alternatives --config python3 sudo apt install python3.10-venv sudo apt install python3.10-dev2.2 安装 pip 3.10curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10将 pip 用户目录加入 PATH写入~/.bashrc或~/.bash_profileexport PATH$PATH:~/.local/bin2.3 系统与硬件建议根据 INSTALL.mdLinuxUbuntu 18.04、CentOS 7 或其他发行版WindowsWindows Server 2016 或 Windows 10/11。硬件建议 CPU 4 核以上、内存 8GB 以上、磁盘 20GB 以上用于模型与数据。端口6035taosanode 主服务、6061tdtsfm 模型服务、6062timemoe 模型服务、6063–6066chronos / moirai / timesfm / moment 可选模型服务、6067–6070 预留。3. 构建Building由于 TDgpt 全部由 Python 实现解释型语言无需编译。README 明确说明 “There is no need to build the taosanode”。所谓“构建”实际只发生在两个环节打包生成可分发的 tar.gz 安装包见第 4 节安装时创建 Python 虚拟环境并安装依赖见第 5 节依赖清单见 requirements.txt聚合文件与 requirements_ess.txt核心依赖固定transformers4.40.1、torch2.4.1x86 平台 CPU 版、keras3.15.0等、requirements_docker.txt。4. 打包Packaging在仓库tools/tdgpt目录下执行打包脚本 script/release.sh必须显式指定版本edition与版本号versioncd script ./release.sh -e community -v 3.3.7.0脚本参数与源码getopts对应参数含义示例-e版本类型community或enterprise-e community-vTDgpt 版本号会写入taosanalytics/__init__.py的__version__-v 3.3.7.0-m模型文件目录包含tdtsfm.tar.gz、timemoe.tar.gz等-m /path/to/models-a将可选模型chronos、moment-large、moirai、timesfm一并打包-a打包完成后的产物位于release目录命名规则为tdengine-tdgpt-oss|enterprise-version-platform-arch.tar.gzls -lht release -rw-rw-r-- 1 root root 74K Feb 21 17:04 tdengine-tdgpt-oss-3.3.7.0-linux-x64.tar.gz从 release.sh 的源码可以看到打包内容的构成cfg/taosanode.config.py、cfg/taosanoded.service、lib/整个taosanalytics算法库被打成package.tar.gz、bin/start/stop 脚本与taosanode_service.py、requirements*.txt以及model/目录下的模型包。x86_64对应x64aarch64/arm64对应arm64。5. 安装Installing5.1 标准安装流程进入release目录解压并执行安装脚本# 进入 release 目录并解压 cd ./release tar -zxvf ./tdengine-tdgpt-oss-3.3.7.0.alpha-linux-x64.tar.gz # 进入解压后的目录 cd tdengine-tdgpt-oss-3.3.7.0.alpha-linux-x64 # 执行安装脚本 ./install.sh安装脚本 script/install.sh 支持以下参数参数含义-d dir自定义安装目录默认/usr/local/taos/taosanode-a安装所有模型的虚拟环境依赖TSFM 依赖-o离线模式跳过重建已存在的虚拟环境-h显示帮助安装脚本还会读取可选环境变量PIP_INDEX_URL指定 pip 镜像源例如PIP_INDEX_URLhttps://pypi.tuna.tsinghua.edu.cn/simple ./install.sh5.2 安装过程做什么根据 install.sh 的installProduct()流程安装主要完成以下工作建立目录结构主程序目录/usr/local/taos/taosanodebin/lib/cfg、数据目录/var/lib/taos/taosanode、日志目录/var/log/taos/taosanode、全局配置目录/etc/taos。安装配置将taosanode.config.py写入/etc/taos/taosanode.config.py并在安装目录的cfg下建立符号链接配置文件中的路径占位符会被替换为实际安装路径。安装模型默认解压tdtsfm.tar.gz与timemoe.tar.gz到/var/lib/taos/taosanode/model加-a时再解压 chronos、moment-large、moirai、timesfm。注册服务优先使用 systemd检测到 systemd 时其次回退 sysvinit同时创建/usr/bin/rmtaosanode、start-model、stop-model、start-tdtsfm等命令链接。创建 Python 虚拟环境默认在/var/lib/taos/taosanode/venv并用pip安装 requirements_ess.txt 中的核心依赖-a模式下额外安装 requirements_tsfm.txt 及momentfm。容器环境检测is_container()检测到 Docker/Kubernetes 环境时会跳过 systemd 服务注册。注意README 提到安装后服务不会自动启动需要手动执行systemctl start taosanoded。安装脚本同样不会自动拉起服务仅完成注册。5.3 验证安装# 查看服务状态 python /usr/local/taos/taosanode/bin/taosanode_service.py status # 查看模型状态 python /usr/local/taos/taosanode/bin/taosanode_service.py model-status5.4 systemd 服务单元安装后生成的 systemd 单元对应仓库中的 cfg/taosanoded.service[Unit] DescriptionTaosAnode Service Afternetwork-online.target Wantsnetwork-online.target [Service] Typesimple EnvironmentTDGPT_CONF/etc/taos/taosanode.config.py EnvironmentPATH/var/lib/taos/taosanode/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ExecStart/var/lib/taos/taosanode/venv/bin/gunicorn -c /usr/local/taos/taosanode/cfg/taosanode.config.py ExecStop/bin/kill -s TERM $MAINPID KillModeprocess TimeoutStartSec0 TimeoutStopSec120s LimitNOFILE1048576 LimitNPROCinfinity LimitCOREinfinity Restartalways StartLimitBurst6 StartLimitInterval60s [Install] WantedBymulti-user.target要点解读TDGPT_CONF环境变量指定配置文件路径app.py 初始化时优先读取该变量os.environ.get(TDGPT_CONF)否则使用默认路径。ExecStart直接使用 gunicorn以-c指向配置KillModeprocess保证只终止主进程Restartalways配合StartLimitBurst6实现自动重启与限流。高LimitNOFILE是为承载大量 RESTful 并发请求预留。5.5 Windows 安装按 INSTALL.md 的说明Windows 下有两种安装方式安装向导推荐以管理员身份运行.exe安装包对应 packaging/installer/tdgpt.iss 定义的 Inno Setup 工程向导支持选择 Python 包安装模式在线/离线、pip 源官方 PyPI/清华/阿里云/自定义、是否安装 TensorFlow CPU 支持、模型来源跳过/在线下载/离线包导入、是否注册 Windows 服务等。ZIP 手动安装解压到如C:\TDengine\taosanode以管理员身份打开命令提示符运行install.bat。Windows 服务管理管理员权限:: 安装为 Windows 服务 python C:\TDengine\taosanode\bin\taosanode_service.py install-service :: 启动 / 停止 / 查询 net start Taosanode net stop Taosanode sc query Taosanode :: 卸载服务 python C:\TDengine\taosanode\bin\taosanode_service.py uninstall-service若连接异常需在防火墙放行端口netsh advfirewall firewall add rule nameTDGPT dirin actionallow protocolTCP localport6035,6061-6070 profileany6. 配置详解6.1 配置文件位置Linux/etc/taos/taosanode.config.py/usr/local/taos/taosanode/cfg/taosanode.config.py为其符号链接WindowsC:\TDengine\taosanode\cfg\taosanode.config.py仓库中的模板为 cfg/taosanode.config.py。这是一个 Python 配置文件直接由 conf.py 的Configure.reload()通过importlib动态加载因此文件中的 Python 表达式如路径拼接、multiprocessing.cpu_count()都是合法的。6.2 服务监听与并发参数# 监听地址与端口 bind 0.0.0.0:6035 # worker 进程数通常建议 2 * CPU 核数 1 workers 2 # worker 类型默认 syncIO 密集场景可考虑 eventlet/gevent worker_class sync # 每个进程的线程数模型部署场景推荐 threads max(multiprocessing.cpu_count() // 4 1, 2) # 达到请求上限后 worker 自动重启帮助释放内存 max_requests 1000 max_requests_jitter 50 # 随机抖动避免所有 worker 同时重启 # 超时与 keep-alive模型推理耗时较长默认给到 1200 秒 timeout 1200 keepalive 1200注意bind中的 host 与 port 会被 conf.py 解析并写入host/port配置项get_server_bind()返回供 Flask 开发服务器与前端查询使用。6.3 日志配置# Linux 下 gunicorn 访问/错误日志 accesslog _os.path.join(log_dir, access.log) errorlog _os.path.join(log_dir, error.log) # 仅 Windows 生效waitress 日志 waitresslog _os.path.join(log_dir, taosanode-service.log) # gunicorn 日志级别debug / info / warning / error / critical loglevel debug # taosanode 应用日志跨平台 app_log _os.path.join(log_dir, taosanode.app.log) # 应用日志级别支持 DEBUG / INFO / WARNING / ERROR / CRITICAL log_level DEBUGlog_level会由 conf.py 映射为 Python logging 常量app_log的目录与文件名会被拆分为log_dir/log_file供AppLogger使用log.py。Linux 默认日志目录为/var/log/taos/taosanode/。6.4 进程与 WSGI 配置# 进程名与 pid 文件 proc_name tdgpt_taosanode_app pidfile _os.path.join(base_dir, taosanode.pid) # 虚拟环境目录 virtualenv _os.path.join(base_dir, venvs, venv) # taosanalytics 算法库路径 pythonpath _os.path.join(base_dir, lib, taosanalytics) # WSGI 应用app.py 中的 app 对象 wsgi_app app:app # fork worker 前预加载应用加快启动并节省内存 preload_app True6.5 模型与数据目录配置# 模型存储目录 model_dir _os.path.join(base_dir, model) # 动态模型目录运行期可动态加载/移除模型无需重启服务 dynamic_model_dir _os.path.join(model_dir, dynamic) # 是否绘制查询结果matplotlib 保存图片到 img_dir draw_result False img_dir _os.path.join(base_dir, img, )关于dynamic_model_dir从 service_registry.py 的sync_dynamic_services()可以看到服务注册表会在每次查询服务时扫描该目录支持两种布局——旧格式根目录直接放model_name.json和新格式model_name/model_name.json子目录并以algo字段决定生成哪类动态服务预测/异常检测/回归/分类{model_name}.pkl为模型权重文件。配置文件被删除时对应动态服务会从内存移除孤立的 pkl 文件会被清理。6.6 模型服务定义cfg/taosanode.config.py 中的models字典集中定义所有模型服务taosanode_service.py 的Config._load_config()也会读取同一结构models { tdtsfm: { script: tdtsfm-server.py, # 模型服务启动脚本 default_model: None, # 默认加载的预训练模型 ip: 127.0.0.1, port: 6061, # 模型服务端口 endpoint: /tdtsfm, # 模型服务端点 algo_name: tdtsfm_1, # 对 SQL/API 暴露的算法名 required: True, # 是否必须存在缺失报错 }, timemoe: { script: timemoe-server.py, default_model: Maple728/TimeMoE-200M, ip: 127.0.0.1, port: 6062, endpoint: /ds_predict, algo_name: timemoe-fc, required: True, }, moirai: { script: moirai-server.py, default_model: Salesforce/moirai-moe-1.0-R-small, port: 6064, endpoint: /ds_predict, required: False }, chronos: { script: chronos-server.py, default_model: amazon/chronos-bolt-base, port: 6063, endpoint: /ds_predict, required: False }, timesfm: { script: timesfm-server.py, default_model: google/timesfm-2.5-200m-pytorch, port: 6065, endpoint: /ds_predict, required: False }, moment: { script: moment-server.py, default_model: AutonLab/MOMENT-1-base, port: 6066, endpoint: /imputation, required: False }, }关键机制来自 conf.py 的reload()portendpoint是模型服务 URL 的唯一事实来源启动时自动推导出http://127.0.0.1:portendpoint并以algo_name如tdtsfm_1、timemoe-fc作为配置键注入运行时配置供预测/补齐等算法通过该 URL 调用外部模型服务。Windows 下 waitress 服务参数waitress_configthreads4工作线程数、channel_timeout1200、connection_limit1000、cleanup_interval30、log_socket_errorsTrue。6.7 修改配置后生效修改配置文件后必须重启服务# Linux sudo systemctl restart taosanoded # Windows net stop Taosanode net start Taosanode7. 运行与管理Running7.1 服务启停systemctl start/stop/restart taosanoded.service也可直接使用跨平台管理脚本 taosanode_service.py# 启动 / 停止 / 状态 python install_dir/bin/taosanode_service.py start python install_dir/bin/taosanode_service.py stop python install_dir/bin/taosanode_service.py status该脚本同时支持 Windows内部使用 waitress 与 WinSW/winsw 服务包装和 Linux并通过 PID 文件主服务taosanode.pid模型服务data/pids/model.pid管理进程生命周期Windows 下还会用tasklist/PowerShell 校验 PID 是否确属 taosanode 进程避免误判。7.2 模型服务管理模型服务tdtsfm、timemoe、chronos、moirai、timesfm、moment由各模型的 server 脚本独立拉起脚本位于 taosanalytics/tsfmservice/如tdtsfm-server.py、timemoe-server.py。# 启动指定模型 python install_dir/bin/taosanode_service.py model-start tdtsfm # 启动全部模型含可选模型 python install_dir/bin/taosanode_service.py model-start all # 停止 / 查看状态 python install_dir/bin/taosanode_service.py model-stop all python install_dir/bin/taosanode_service.py model-status模型速查表模型是否必须端口说明默认模型tdtsfm是6061时序基础模型TDgpt 自研-timemoe是6062Mixture-of-Experts 时序预测Maple728/TimeMoE-200Mchronos否6063Amazon Chronos 预测amazon/chronos-bolt-basemoirai否6064Salesforce Moirai 预测Salesforce/moirai-moe-1.0-R-smalltimesfm否6065Google TimesFM 预测google/timesfm-2.5-200m-pytorchmoment否6066MOMENT 数据补齐AutonLab/MOMENT-1-base安装后必须至少启动tdtsfm与timemoerequired: True否则依赖它们的预测功能不可用可选模型按需启动。7.3 卸载Linux 下执行命令rmtaosanode安装时在/usr/bin创建的符号链接指向bin/uninstall.shrmtaosanode注意该脚本不会删除 Python 虚拟环境需要手动清理/var/lib/taos/taosanode/venv。Windows 下运行C:\TDengine\taosanode\uninstall.bat或先uninstall-service再删除安装目录。8. RESTful 服务接口TDgpt 主服务在 6035 端口提供 RESTful API路由定义见 taosanalytics/app.py接口方法功能/GET返回版本号taosanalytics._ANODE_VER/statusGET服务健康检查返回{protocol: 1.0, status: ready}/listGET列出全部已注册算法服务预测/异常检测/补齐/相关性/回归/分类/modelsGET列出可用模型/anomaly-detectPOST异常检测默认算法ksigma/forecastPOST时序预测默认算法holtwinters/imputationPOST数据补齐/correlationPOST相关性分析/regressionPOST回归分析/tool/batch、/api/v1/analysis/batchPOST批量分析两路由指向同一处理逻辑兼容新旧调用方/deploy、/undeployPOST动态模型的部署/卸载加载到内存或释放/api/v1/analysis/pearsonrPOSTPearson 相关系数/api/v1/analysis/profile-searchPOST时序画像搜索/api/v1/analysis/associationPOST关联规则挖掘apriori以预测为例请求核心字段包括algo算法名、forecast_rows预测行数、start/every起始时间与步长、conf/return_conf置信度、prec精度、tz时区处理逻辑见 handlers/forecast.py 与 algo/forecast.py。异常检测请求则返回res异常窗口、mask异常掩码等字段见 handlers/anomaly.py。所有算法都经由ServiceRegistryservice_registry.py按名称动态获取若指定算法不存在则回退到默认算法如预测回退holtwinters。9. 测试Testing仓库自带基于 pytest 的测试套件位于 tools/tdgpt/tests/覆盖算法正确性forecast_test.py、anomaly_test.py、correlation_test.py、apriori_test.py、pyod_validation_test.pyREST 接口restful_api_test.py服务与进程管理taosanode_service_test.py、process_manager_test.py、model_service_test.py、service_registry_sync_test.py安装与配置install_test.py、config_test.py模型下载model_downloader_test.py、hf_download_test.py、deepar_deployment_test.py。README 说明测试与 CI/CD 由 GitHub Actions 的 workflow 驱动本地可用 pytest 直接运行对应用例安装依赖见 requirements.txt 中的Flask-Testing0.8.1等。10. 故障排查Troubleshooting综合 INSTALL.md 的排查建议服务无法启动Linux# 查看 systemd 日志 sudo journalctl -u taosanoded -n 50 # 前台运行直接观察报错 python /usr/local/taos/taosanode/bin/taosanode_service.py start端口被占用# Linux sudo lsof -i :6035 sudo kill -9 PID # Windows netstat -ano | findstr :6035 taskkill /PID PID /F模型无法启动确认模型目录存在ls -la /usr/local/taos/taosanode/model/查看模型日志tail -f /var/log/taos/taosanode/taosanode_service_tdtsfm.log校验 Python 依赖python -m pip list | grep -E torch|transformers。连接被拒绝检查服务状态python install_dir/bin/taosanode_service.py status检查防火墙Linuxsudo ufw allow 6035/tcpWindows 确认TDGPT防火墙规则存在检查监听地址sudo netstat -tlnp | grep 6035确认bind是否为0.0.0.0而非仅回环地址。启用调试日志在配置文件中设置log_level DEBUG后重启服务taosanode_service.py会以 10MB 轮转、保留 5 份的方式写日志到taosanode-service.log。11. 常见问题FAQ如何确认服务运行中执行python install_dir/bin/taosanode_service.py status或访问GET /status。能否多实例运行不建议。服务按单实例设计如需多实例请通过修改bind使用不同端口。如何查看日志Linuxtail -f /var/log/taos/taosanode/taosanode.app.logWindowstype C:\TDengine\taosanode\log\taosanode.app.log。如何更新配置编辑配置文件后重启服务Linuxsystemctl restart taosanodedWindows 重开Taosanode服务。如何重新安装先卸载Linuxrmtaosanode/ Windowsuninstall.bat删除安装目录再运行新安装包。能否使用自定义虚拟环境可以修改配置中的virtualenvWindows 下亦支持timesfm_venv、moirai_venv、chronos_venv、momentfm_venv分别为不同模型指定独立 venv指向已有环境。如何备份配置直接复制配置文件即可cp /etc/taos/taosanode.config.py ~/taosanode.config.backup.py。12. 参考资源安装与使用详细指南tools/tdgpt/INSTALL.md英文、tools/tdgpt/INSTALL-CN.md中文核心配置文件模板tools/tdgpt/cfg/taosanode.config.pysystemd 服务单元tools/tdgpt/cfg/taosanoded.service打包脚本tools/tdgpt/script/release.sh安装脚本tools/tdgpt/script/install.sh跨平台服务管理脚本tools/tdgpt/script/taosanode_service.pyREST 路由入口tools/tdgpt/taosanalytics/app.py配置解析tools/tdgpt/taosanalytics/conf.py算法服务注册机制tools/tdgpt/taosanalytics/service_registry.py内置算法目录algo/fc、algo/ad、algo/imputat、algo/correl测试用例tools/tdgpt/tests/依赖清单requirements.txt、requirements_ess.txt【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。