TDengine TDgpt 部署实战:Linux/Windows 安装、服务管理、模型调度与故障排查全指南
TDengine TDgpt 部署实战Linux/Windows 安装、服务管理、模型调度与故障排查全指南【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDgptTaosanode是 TDengine 内置的时序数据分析平台负责对外提供时序预测、异常检测、相关性分析等 RESTful 智能分析能力并内置 tdtsfm、TimeMoE、Chronos、Moirai、TimesFM、MOMENT 等时序基础模型服务。本文基于 tools/tdgpt/INSTALL.md 展开并结合仓库内的安装脚本、服务管理脚本与配置文件源码完整讲解系统要求、Linux/Windows 安装步骤、服务生命周期管理、核心配置项、模型调度机制以及常见故障排查方法。读完本文你将能够独立完成 TDgpt 的部署、调优与运维并理解其背后由 Python 脚本与 systemd/WinSW 共同支撑的服务架构。系统要求支持平台LinuxUbuntu 18.04、CentOS 7 或其他 Linux 发行版仓库内 install.sh 对 Ubuntu/Debian/Kylin、CentOS/Fedora 均有分支处理且要求系统使用 systemd 管理开机服务WindowsWindows Server 2016 或 Windows 10/11Python 版本必须使用Python 3.10、3.11 或 3.12。安装脚本 install.sh 中的check_python3_env函数会严格校验主版本为 3、次版本号匹配10|11|12不满足条件会直接退出安装流程。硬件建议CPU4 核及以上内存8GB 及以上磁盘20GB 以上用于存放模型与数据网络端口TDgpt 采用主服务 模型服务的多进程架构主服务负责接收 RESTful 请求各模型服务监听独立端口端口用途6035主 taosanode 服务默认bind 0.0.0.0:60356061tdtsfm 模型服务6062timemoe 模型服务6063-6066可选模型服务chronos、moirai、timesfm、moment6067-6070预留的附加模型服务端口这些端口映射与 cfg/taosanode.config.py 中models字典的定义完全一致是部署时配置防火墙的权威依据。Linux 安装前置准备安装 Python 3.10如未安装# Ubuntu/Debian sudo apt-get update sudo apt-get install python3.10 python3.10-venv python3.10-dev # CentOS/RHEL sudo yum install python310 python310-devel确保拥有用于系统级安装的 sudo 权限。安装步骤解压安装包tar -xzf tdgpt-linux-x.x.x.tar.gz cd tdgpt-linux-x.x.x运行安装脚本# 标准安装 bash install.sh # 离线安装安装包内已包含 wheel 时 bash install.sh -o # 自定义安装目录 bash install.sh -d /opt/tdgpt安装脚本支持的参数来源 install.sh-d [install dir]指定安装目录默认安装到/usr/local/taos/taosanode-a安装所有模型虚拟环境会额外安装 TSFM 依赖-o离线模式跳过重建已有虚拟环境PIP_INDEX_URL环境变量指定 pip 镜像源例如PIP_INDEX_URLhttps://pypi.tuna.tsinghua.edu.cn/simple bash install.sh安装脚本的核心行为源码层面可验证安装目录组织主程序在/usr/local/taos/taosanode/数据在/var/lib/taos/taosanode/data/日志在/var/log/taos/taosanode/模型在data/model/虚拟环境在data/venv/见 install.sh安装时通过 requirements_ess.txt 安装基础依赖关键版本约束包括transformers4.40.1、torch2.4.1CPU 版用于 x86_64完整版用于 aarch64、keras3.15.0、gluonts0.17.0、lightning2.5.6、accelerate0.34.2等安装脚本会自动创建 systemd 服务单元见下文Linux 服务管理并在/usr/bin下建立start-model、stop-model、start-tdtsfm、stop-tdtsfm、start-time-moe、stop-time-moe等符号链接见 install.sh容器环境检测到/.dockerenv或 kubepods cgroup不会注册 systemd 服务需要手动启动见 install.sh。验证安装# 检查服务状态 python /usr/local/taos/taosanode/bin/taosanode_service.py status # 检查模型状态 python /usr/local/taos/taosanode/bin/taosanode_service.py model-statusLinux 服务管理使用 systemd推荐安装脚本会自动创建 systemd 服务。仓库内 cfg/taosanoded.service 给出了该服务的完整单元定义其中值得注意的关键配置ExecStart使用 gunicorn 加载taosanode.config.pyLimitNOFILE1048576放宽文件描述符上限、TimeoutStopSec120s给模型进程留出优雅退出时间、Restartalways配合StartLimitBurst6与StartLimitInterval60s限制 60 秒内最多重启 6 次。# 启动服务 sudo systemctl start taosanode # 停止服务 sudo systemctl stop taosanode # 重启服务 sudo systemctl restart taosanode # 查看状态 sudo systemctl status taosanode # 设置开机自启 sudo systemctl enable taosanode # 取消开机自启 sudo systemctl disable taosanode # 实时查看日志 sudo journalctl -u taosanode -f直接使用 Python 脚本# 启动服务 python /usr/local/taos/taosanode/bin/taosanode_service.py start # 停止服务 python /usr/local/taos/taosanode/bin/taosanode_service.py stop # 查看状态 python /usr/local/taos/taosanode/bin/taosanode_service.py status注README 中早期的 taosanode 版本以taosanoded作为服务名README.md最新安装文档与脚本以taosanode服务名 taosanode_service.py统一管理器为准具体以实际安装版本输出的systemctl list-units | grep taosanode为准。Linux 卸载# 运行卸载脚本 bash /usr/local/taos/taosanode/uninstall.sh # 或手动移除 sudo rm -rf /usr/local/taos/taosanode sudo systemctl disable taosanode安装脚本还会在/usr/bin/rmtaosanode建立指向卸载脚本的符号链接见 install.sh因此也可以直接执行rmtaosanode完成卸载。Windows 安装前置准备安装 Python 3.10从 python.org 下载安装勾选 Add Python to PATH用python --version验证。管理员权限注册 Windows 服务需要管理员权限请以管理员身份运行命令提示符。安装步骤运行安装向导.exe安装包右键安装包选择以管理员身份运行按向导提示完成安装。Windows 安装向导支持以下配置项Python 包模式在线或离线Python 包源官方 PyPI、清华源、阿里源或自定义源可选 TensorFlow CPU 支持仅在在线模式下提供模型安装来源跳过、在线下载或离线包导入模型下载端点官方 Hugging Face、HF 镜像或自定义端点Windows 服务注册模型启用顺序TDtsfm v1.0、TimeMoE、Moirai、Chronos、TimesFM、MOMENT。向导默认行为在线安装 Python 包安装 TensorFlow CPU 支持暂不安装模型注册 Windows 服务。模型准备细节来自原文档务必留意离线 Python 包模式不会询问 TensorFlow因为打包的离线运行时已包含离线模型导入会自动扫描install_dir\model\目录并导入其中所有已打包的模型归档离线模式还提供一个可选的离线模型包输入项该归档可包含全部离线模型离线模式不要求逐个选择模型向导只显示一个离线导入页面升级安装时向导会先停止既有 Taosanode 服务及同安装目录下运行的所有模型服务再替换打包文件start-model.bat不带参数时默认等于allstart-model.bat all与model-start all会在运行时检查模型目录目录存在的模型自动启动缺失的模型跳过并给出提示在线模型安装只创建被选中模型的虚拟环境离线模型安装不会在 setup 阶段额外创建模型虚拟环境在线模式默认选中的模型是Moirai Small与MOMENT Base。或手动解压 ZIP 包解压到目标位置如C:\TDengine\taosanode以管理员身份打开命令提示符进入安装目录执行install.bat。验证安装python C:\TDengine\taosanode\bin\taosanode_service.py statusWindows 服务管理方式一Windows 服务推荐需要管理员权限。底层使用 WinSW 包装器taosanode-winsw.exe实现相关 XML 配置见 packaging/installer/taosanode-service.xml。# 注册为 Windows 服务 python C:\TDengine\taosanode\bin\taosanode_service.py install-service # 启动服务 net start Taosanode # 或: python C:\TDengine\taosanode\bin\taosanode_service.py start-service # 停止服务 net stop Taosanode # 或: python C:\TDengine\taosanode\bin\taosanode_service.py stop-service # 查询服务状态 sc query Taosanode # 卸载服务 python C:\TDengine\taosanode\bin\taosanode_service.py uninstall-service方式二批处理脚本前台模式:: 启动服务前台 C:\TDengine\taosanode\bin\start-taosanode.bat :: 停止服务 C:\TDengine\taosanode\bin\stop-taosanode.bat :: 查看状态 C:\TDengine\taosanode\bin\status-taosanode.bat方式三直接使用 Python 脚本:: 启动 python C:\TDengine\taosanode\bin\taosanode_service.py start :: 停止 python C:\TDengine\taosanode\bin\taosanode_service.py stop :: 状态 python C:\TDengine\taosanode\bin\taosanode_service.py statusWindows 防火墙配置遇到连接问题时可放行 TDgpt 端口:: 自动放行端口管理员身份运行 netsh advfirewall firewall add rule nameTDGPT dirin actionallow protocolTCP localport6035,6061-6070 profileany :: 或手动操作 :: 1. 打开高级安全 Windows Defender 防火墙 :: 2. 点击入站规则→新建规则 :: 3. 选择端口→TCP→ 特定本地端口6035,6061-6070 :: 4. 允许连接Windows 卸载:: 运行卸载脚本 C:\TDengine\taosanode\uninstall.bat :: 或手动卸载 :: 1. 先卸载 Windows 服务如已注册 :: python C:\TDengine\taosanode\bin\taosanode_service.py uninstall-service :: 2. 删除安装目录 :: rmdir /s /q C:\TDengine\taosanode统一服务管理命令无论 Linux 还是 Windows安装后都会提供一个统一的跨平台服务管理脚本taosanode_service.py源码见 script/taosanode_service.py。该脚本是理解整个运维体系的钥匙其命令全集如下对应源码main()中的 argparse 定义# Linux python /usr/local/taos/taosanode/bin/taosanode_service.py start|stop|status # Windows python C:\TDengine\taosanode\bin\taosanode_service.py start|stop|status # 模型管理跨平台 python install_dir/bin/taosanode_service.py model-start model|all python install_dir/bin/taosanode_service.py model-stop model|all python install_dir/bin/taosanode_service.py model-status # 附加命令 python install_dir/bin/taosanode_service.py wait-ready # 轮询 /status 直到服务就绪 python install_dir/bin/taosanode_service.py install-service # 注册 Windows 服务 python install_dir/bin/taosanode_service.py uninstall-service # 卸载 Windows 服务 python install_dir/bin/taosanode_service.py start-service # 启动 Windows 服务 python install_dir/bin/taosanode_service.py stop-service # 停止 Windows 服务从源码实现看几个值得注意的机制跨平台进程管理ProcessManager通过 PID 文件管理主服务与每个模型服务模型 PID 存放于data/pids/model.pidLinux 用os.kill(pid, 0)探活Windows 用tasklist精确解析 PID 并校验进程命令行特征避免误判优雅停止stop先发送 SIGTERMWindows 为taskkill等待 2 秒进程仍在运行则强制结束模型停止等待 3 秒启动前诊断start支持--full-preflight会预先执行from taosanalytics.app import app导入探针启动失败时还会通过 AST 静态分析taosanalytics.app的依赖链对 waitress、numpy、pandas、flask、torch、tensorflow、keras 等逐一做导入探测把失败根因如ModuleNotFoundError、DLL load failed、端口占用 WinError 10048/10013写入taosanode-startup-diagnostics.json与日志健康检查wait-ready通过轮询http://127.0.0.1:6035/status的 HTTP 200 响应判断就绪可作为脚本编排时的同步点。配置详解配置文件位置Linux/usr/local/taos/taosanode/cfg/taosanode.config.py安装脚本同时会将其软链到/etc/taos/taosanode.config.py见 install.shWindowsC:\TDengine\taosanode\cfg\taosanode.config.py该文件同时充当 gunicornLinux与 waitressWindows的配置来源。程序侧通过 taosanalytics/conf.py 中的Configure单例在运行时加载并解析它。服务绑定与并发# 监听地址和端口 bind 0.0.0.0:6035 # worker 进程数gunicorn workers 2 # worker 类型默认同步 worker_class sync # 每进程线程数面向模型部署场景自动按 CPU 核数推算 threads max(multiprocessing.cpu_count() // 4 1, 2) # 单个 worker 处理请求上限达到后重启以释放内存 max_requests 1000 max_requests_jitter 50 # 随机抖动避免所有 worker 同时重启 # 超时与保活单位秒 timeout 1200 keepalive 1200 # 启动前预加载应用提升启动速度、节省内存 preload_app True # 进程名与 PID 文件 proc_name tdgpt_taosanode_app pidfile install_dir/taosanode.pid # 主虚拟环境与 Python 路径 virtualenv install_dir/venvs/venv pythonpath install_dir/lib/taosanalytics # WSGI 应用入口 wsgi_app app:app日志配置# 日志级别: DEBUG, INFO, WARNING, ERROR, CRITICAL log_level DEBUG # 应用日志文件 app_log /var/log/taos/taosanode/taosanode.app.log # Linux app_log c:/TDengine/taosanode/log/taosanode.app.log # Windows # gunicorn 访问/错误日志仅 Linux 生效 accesslog log_dir/access.log errorlog log_dir/error.log # waitress 日志仅 Windows 生效 waitresslog log_dir/taosanode-service.logconf.py中的Configure.reload()会解析log_level字符串并映射为 Python logging 级别DEBUG/INFO/WARN/ERROR/CRITICAL因此修改log_level后无需改动代码即可切换日志详细度。模型配置# 模型存储目录 model_dir /usr/local/taos/taosanode/model/ # Linux model_dir c:/TDengine/taosanode/model/ # Windows # 动态模型目录运行期间可热加载/热卸载无需重启服务 dynamic_model_dir model_dir/dynamic # 模型定义完整清单见 cfg/taosanode.config.py models { tdtsfm: { script: tdtsfm-server.py, default_model: None, ip: 127.0.0.1, port: 6061, endpoint: /tdtsfm, algo_name: tdtsfm_1, 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, # 必选模型 }, chronos: { script: chronos-server.py, default_model: amazon/chronos-bolt-base, ip: 127.0.0.1, port: 6063, endpoint: /ds_predict, required: False, # 可选模型 }, moirai: { script: moirai-server.py, default_model: Salesforce/moirai-moe-1.0-R-small, ip: 127.0.0.1, port: 6064, endpoint: /ds_predict, required: False, }, timesfm: { script: timesfm-server.py, default_model: google/timesfm-2.5-200m-pytorch, ip: 127.0.0.1, port: 6065, endpoint: /ds_predict, required: False, }, moment: { script: moment-server.py, default_model: AutonLab/MOMENT-1-base, ip: 127.0.0.1, port: 6066, endpoint: /imputation, required: False, }, }从源码可以确认两个关键机制端口 端点是服务 URL 的唯一事实来源conf.py的reload()会自动根据每个模型的ip、port、endpoint推导出http://127.0.0.1:portendpoint形式的内网服务地址并以algo_name如tdtsfm_1、timemoe-fc作为配置键暴露给上层算法使用避免了手工维护 URL 常量见 conf.py可选模型的容错启动ModelService.start()会先检查model_dir/model_name目录是否存在目录缺失的可选模型会被直接跳过并记录日志只有requiredTrue的模型缺失才被视为异常见 taosanode_service.py。Windows Waitress 配置# Waitress 服务器配置仅 Windows 生效 waitress_config { threads: 4, # 工作线程数 channel_timeout: 1200, # 通道超时秒 connection_limit: 1000, # 最大连接数 cleanup_interval: 30, # 清理间隔秒 log_socket_errors: True # 记录 socket 错误 }Windows 下启动时服务管理器会把bind拆分为 host/port并将waitress_config逐项传给waitress.serve()见 taosanode_service.py若主虚拟环境缺少 waitress脚本会自动尝试pip install waitress。修改配置用文本编辑器修改配置文件重启服务使配置生效# Linux sudo systemctl restart taosanode # Windows net stop Taosanode net start Taosanode模型管理支持的模型模型是否必选端口说明tdtsfm是6061TDengine 时序基础模型Time Series Foundation Modeltimemoe是6062时序混合专家模型Time Series Mixture of Expertschronos否6063Amazon Chronosmoirai否6064Salesforce Moiraitimesfm否6065Google TimesFMmoment否6066AutonLab MOMENT各模型的真实启动脚本位于 taosanalytics/tsfmservice 目录下tdtsfm-server.py、timemoe-server.py、chronos-server.py、moirai-server.py、timesfm-server.py、moment-server.py与models配置中script字段一一对应。启动模型# 启动全部模型含必选 tdtsfm、timemoe缺目录的可选模型自动跳过 python install_dir/bin/taosanode_service.py model-start all # 启动指定模型 python install_dir/bin/taosanode_service.py model-start chronos # 查看模型状态 python install_dir/bin/taosanode_service.py model-status从源码看model-start all使用ThreadPoolExecutor(max_workers3)并发启动模型并在结束时输出汇总表Started、Skipped (missing model directory)、Failed三类状态一目了然见 taosanode_service.py。模型进程的标准输出/错误会被重定向到log_dir/model_model_name.log采用 10MB 大小、5 份备份的滚动策略。Linux 环境下安装脚本会在/usr/bin下创建start-model、start-model-from-remote等快捷命令start-model.sh本质上是taosanode_service.py model-start的包装器见 start-model.sh支持-c config_file指定配置文件。停止模型# 停止全部模型 python install_dir/bin/taosanode_service.py model-stop all # 停止指定模型 python install_dir/bin/taosanode_service.py model-stop chronos故障排查服务无法启动Linux# 查看 systemd 日志 sudo journalctl -u taosanode -n 50 # 直接前台运行以查看 Python 报错 python /usr/local/taos/taosanode/bin/taosanode_service.py startWindows:: 查看启动日志 type C:\TDengine\taosanode\log\taosanode_startup.log :: 直接运行以查看报错 python C:\TDengine\taosanode\bin\taosanode_service.py start结合源码补充两个排查要点若启动失败属于依赖导入类ModuleNotFoundError、ImportError、Windows 下DLL load failed等服务脚本会自动执行一轮依赖探针诊断并写入taosanode-service.log与taosanode-startup-diagnostics.json直接查看日志即可定位到具体缺失的 Python 包Windows 下若报0xc0000005访问冲突或libiomp5md.dll相关错误通常是原生扩展库如 torch 相关 DLL与 Python 版本不匹配建议检查 Python 3.10/3.11/3.12 的架构与安装来源。端口被占用# Linux: 查找占用 6035 端口的进程 sudo lsof -i :6035 # Windows: 查找占用 6035 端口的进程 netstat -ano | findstr :6035 # 结束进程 # Linux: sudo kill -9 PID # Windows: taskkill /PID PID /F服务脚本会把端口占用归类为bind类失败errno EADDRINUSE/EACCESWindows WinError 10048/10013并在日志中明确提示。模型无法启动检查模型目录是否存在# Linux ls -la /usr/local/taos/taosanode/model/ # Windows dir C:\TDengine\taosanode\model\查看模型日志# Linux tail -f /var/log/taos/taosanode/taosanode_service_tdtsfm.log # Windows type C:\TDengine\taosanode\log\taosanode_service_tdtsfm.log验证 Python 依赖python -m pip list | grep -E torch|transformers提示安装脚本通过 requirements_tsfm.txt 为可选时序基础模型安装依赖并对momentfm0.1.4使用--no-deps安装以避免引入 numba/llvmlite 依赖冲突若可选模型依赖损坏可考虑重跑install.sh -a重建统一虚拟环境。连接被拒绝检查服务是否在运行python install_dir/bin/taosanode_service.py status检查防火墙设置# Linux sudo ufw status sudo ufw allow 6035/tcp # Windows netsh advfirewall firewall show rule nameTDGPT检查监听地址# Linux sudo netstat -tlnp | grep 6035 # Windows netstat -ano | findstr :6035注意配置文件中bind 0.0.0.0:6035表示监听所有网卡若改为127.0.0.1:6035则仅本机可访问跨节点调用会连接失败。FAQQ: 如何确认服务是否在运行A: 执行python install_dir/bin/taosanode_service.py status该命令会读取 PID 文件并做进程存活校验输出服务名、状态、PID 与监听地址。Q: 能否运行多个实例A: 不建议。服务按单实例设计。确有需要可修改配置中的bind端口后分目录部署但需自行规避 PID 文件、日志目录与模型端口冲突。Q: 如何查看日志Linuxtail -f /var/log/taos/taosanode/taosanode.app.logWindowstype C:\TDengine\taosanode\log\taosanode.app.log模型日志log_dir/model_model_name.log滚动10MB × 5 份服务管理日志log_dir/taosanode-service.logQ: 如何更新配置A: 编辑配置文件后重启服务即可生效。日志级别、监听地址、模型定义等均在启动时重新加载。Q: 需要重装怎么办卸载当前版本Linux 执行uninstall.sh或rmtaosanodeWindows 执行uninstall.bat删除安装目录运行新版安装包。Q: 如何开启调试日志A: 将配置文件中log_level改为DEBUG并重启服务。注意 Linux 下 gunicorn 的loglevel与应用的log_level是两套开关排查 Web 层问题可同时将loglevel debug。Q: 能否使用自定义 Python 虚拟环境A: 可以。修改配置中的virtualenv指向自己的虚拟环境即可Windows 下可选 TSFM 模型还有独立的timesfm_venv、moirai_venv、chronos_venv、momentfm_venv配置项默认都指向主虚拟环境。Q: 如何备份配置# Linux cp /usr/local/taos/taosanode/cfg/taosanode.config.py ~/taosanode.config.backup.py # Windows copy C:\TDengine\taosanode\cfg\taosanode.config.py C:\backup\taosanode.config.backup.py深入理解一条命令背后的完整链路以 Linux 上执行systemctl start taosanode为例整个调用链是理解 TDgpt 运维的捷径systemd 加载 cfg/taosanoded.service以/var/lib/taos/taosanode/venv/bin/gunicorn -c /usr/local/taos/taosanode/cfg/taosanode.config.py拉起主服务gunicorn 解析taosanode.config.py预加载app:app即 taosanalytics/app.py 中导出的 Flask 应用按workers/threads分叉 worker 进程应用启动时conf.py 读取配置并自动推导各模型服务的内网 URLhttp://127.0.0.1:6061/tdtsfm等模型服务由taosanode_service.py model-start all或start-model快捷命令拉起每个模型是一个独立进程监听各自端口日志滚动写入model_name.log数据查询经 SQL 触发时算法层按algo_name找到对应模型 URL 发起内部 HTTP 调用完成推理。若你需要对模型行为、RESTful API 或算法细节做进一步探索可继续阅读仓库内 tools/tdgpt/README.md、taosanalytics 源码与 tests 测试用例安装与打包流程可参考 packaging/README.md 与 script/release.sh。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →