TDengine 安装前预配置工具 taospreset 完全指南:一键完成集群环境就绪
【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine
taospreset是 TDengine 运维工具集中负责"环境就绪"的预配置工具:在正式安装 TDengine 之前,它可以对单台主机或集群中的全部主机完成时区、防火墙、SELinux、内核参数、coredump、主机名与域名解析等系统级预配置。本文将以 英文官方文档 与 中文官方文档 为主体,结合工具集总览中的平台与前置要求,完整讲解该工具的命令行参数、配置文件格式、预配置范围与实际用法,帮助你在安装 TDengine 前将环境一次性调整到可部署状态。
工具定位:安装链路中的"预配置"环节
在 TDengine 的部署准备链路中,官方提供的检查工具集包含多个成员,其中与 taospreset 直接相关的有:
| 工具 | 职责 |
|---|---|
| taosprecheck | 安装前检查:主机与集群是否满足安装前提 |
| taospreset | 安装前预配置:应用安装所需的操作系统级设置 |
| taosinstall | 安装或升级:在单机或集群上安装/升级 TDengine |
| taosinspect | 运行期巡检:例行检查环境与 TDengine 健康状况 |
完整的工具列表与说明见 Inspection Tools 总览。
从职责划分看,taosprecheck负责"发现问题",taospreset负责"解决问题",taosinstall负责"落地安装"。三者在部署流程中形成检查 → 预配置 → 安装的递进关系,而 taospreset 正是介于检查与安装之间的关键一步。
适用前提
根据 Inspection Tools 总览 的说明,使用 taospreset 需要注意以下适用前提与限制:
- 许可证:该工具集目前仅对 TDengine Enterprise(企业版)用户开放;
- 版本要求:需要 TDengine v3.1 或更高版本;
- 运行权限:需要以
root身份运行,或使用具有sudo权限的账号; - SSH 互通:若要在多节点集群上批量预配置,需要节点间开启 SSH;否则只能在每个节点上以 local 模式分别运行;
- 平台验证范围:工具集已在 Kylin V10、Ubuntu 20.04.2、CentOS 7.9、LinxOS 6.0.99、openEuler 23.09、Debian 12 上验证;在其他平台或版本上使用前请联系交付人员确认。
命令行用法与参数详解
taospreset 支持通过-h/--help查看完整语法,其命令行接口如下:
usage: taospreset [-h] [--model {local,ssh}] [--config CONFIG] [--backend] [--disable-kysec] [--result RESULT] [--version] [--log-level {debug,info}]各参数的含义与默认行为如下表所示:
| 选项 | 说明 | 默认值 |
|---|---|---|
-m,--model | 预配置运行模式:local(仅配置当前主机)或ssh(通过 SSH 依次配置所有配置文件中定义的主机) | local |
-f,--config | 配置文件的全路径;不指定时默认从工具运行当前目录加载 | 当前目录 |
-b,--backend | 后台运行预配置工具,默认为前台运行 | 前台 |
-d,--disable-kysec | 关闭 Kylin Linux 上的 KySec 安全框架 | False |
-r,--result | 预配置结果报告的输出目录;不指定时输出到工具运行当前目录 | 当前目录 |
-l,--log-level | 日志级别:debug或info | info |
-v,--version | 打印工具版本信息 | - |
两种运行模式的选择
- ssh 模式:当多节点环境之间支持 SSH 通信时,在任意一个节点上运行
taospreset -m ssh,工具会依次对所有配置文件中的节点完成预配置操作。该模式适合标准的集群部署场景,只需在一台机器上发起即可。 - local 模式:当节点间不支持 SSH 通信时,使用
taospreset(默认即为 local 模式),工具仅对运行所在的这台机器执行预配置。此时需要登录每个节点分别执行。
KySec 与麒麟系统安全框架
--disable-kysec参数用于关闭 Kylin Security(KySec)服务。KySec 是麒麟系统的安全模块框架,功能上类似于 SELinux、AppArmor、Trusted Computing 的集合体,主要用于增强系统安全性。在麒麟(Kylin)操作系统上部署 TDengine 时,如果 KySec 对 TDengine 所需的进程、文件或端口访问形成限制,可通过该参数在预配置阶段一并关闭。
配置文件详解
taospreset 的配置文件格式与taosprecheck(安装前检查工具,见 01-taosprecheck.md)共享。也就是说,同一份环境描述配置既可以用于检查,也可以用于预配置,减少了部署脚本中维护两份配置的成本。配置文件采用 INI 风格,通过[section]分段组织,段内每一项对应一类预配置动作。
以下是一份完整的配置示例(覆盖节点信息、时区、服务状态、coredump 与系统参数):
# 安装部署 TDengine 的环境信息,支持免密登录和 SSH 登录两种方式; # 当环境配置了免密登录后,可以不配置 password 信息 [test_env] # 节点间通过 SSH 协议访问 firstep=192.168.0.1||fqdn=tdengine1||username=root||password=123456||port=22 secondep=192.168.0.2||fqdn=tdengine2||username=root||password=123456||port=22 dnode3=192.168.0.3||fqdn=tdengine3||username=root||password=123456||port=22 # 节点间配置免密登录(省略 password 字段) # firstep=192.168.0.1||fqdn=tdengine1||username=root||port=22 # secondep=192.168.0.2||fqdn=tdengine2||username=root||port=22 # dnode3=192.168.0.3||fqdn=tdengine3||username=root||port=22 # 系统时区:工具会按照下面的配置修改系统时区 [timezone] tz=Asia/Shanghai # 系统服务状态:工具会按照下面的配置关闭对应的系统服务 [services] firewall=inactive selinux=inactive # coredump 配置:工具会按照下面的配置设置 coredump 的生成路径 [coredump] kernel.core_pattern=/data/taos/core/core-%%e-%%p # /etc/sysctl.conf 中的系统参数:工具会按配置修改 [sys_vars:/etc/sysctl.conf] fs.nr_open=2147483584 fs.file-max=2147483584 net.ipv4.ip_local_port_range=10000 65534 # /etc/security/limits.conf 中的资源限制:工具会按配置修改 [sys_vars:/etc/security/limits.conf] * soft nproc=65536 * soft nofile=2147483584 * soft stack=65536 * hard nproc=65536 * hard nofile=2147483584 * hard stack=65536 root soft nproc=65536 root soft nofile=2147483584 root soft stack=65536 root hard nproc=65536 root hard nofile=2147483584 root hard stack=65536各配置段的作用
[test_env]:定义集群中各节点的主机信息。每行通过||分隔多个字段,包括节点 IP(键名firstep/secondep/dnode3等仅为区分序号)、fqdn(节点主机名)、username(SSH 登录用户)、password(SSH 登录密码,可省略)、port(SSH 端口)。配置了免密登录后即可省略password字段。[timezone]:设置系统时区,工具会据此修改各节点的系统时区,确保集群内所有节点使用一致的时区,这是避免时序数据写入与查询出现时间偏差的基础。[services]:声明需要关闭的系统服务及其目标状态。典型场景是firewall=inactive(关闭防火墙)与selinux=inactive(关闭 SELinux),以避免这些安全组件拦截 TDengine 的端口监听与节点间通信。[coredump]:配置内核 coredump 生成路径,如kernel.core_pattern=/data/taos/core/core-%%e-%%p。其中%%e表示可执行文件名、%%p表示进程 PID,在 INI 文件中需以双百分号转义;工具会按此配置 coredump 目录并开启服务,便于日后定位 taosd 崩溃问题。[sys_vars:/etc/sysctl.conf]:写入/etc/sysctl.conf的内核参数。示例中fs.nr_open与fs.file-max被调高到2147483584,net.ipv4.ip_local_port_range扩展为10000 65534,这些参数为高并发连接与海量文件句柄留出了充足余量。[sys_vars:/etc/security/limits.conf]:写入/etc/security/limits.conf的用户资源限制,包括nproc(进程数)、nofile(打开文件数)、stack(栈大小)的 soft/hard 上限,并同时为*(所有用户)和root设置,避免 taosd 在运行期因资源限制被中断。
注意:配置文件中的 coredump 与 sys_vars 参数均可根据实际环境调整;若集群规模较大或文件句柄需求更高,应按真实容量规划这些取值。
环境预配置范围
根据官方文档,taospreset 在安装前会对每个目标节点完成以下预配置项目:
| 预配置项目 | 详细说明 |
|---|---|
| 配置系统时区 | 将系统时区配置为用户预设定的时区 |
| 关闭防火墙 | 关闭系统的防火墙服务 |
| 关闭 SELinux 服务 | 关闭系统的 SELinux 服务 |
| 配置系统参数 | 应用用户预设定的系统参数(写入/etc/sysctl.conf与/etc/security/limits.conf) |
| 配置 coredump | 配置 coredump 生成目录并开启服务 |
| 修改机器 Hostname | 当机器 Hostname 为默认的localhost时,更新为配置文件中预设定的 FQDN |
| 配置域名解析 | 将配置文件中安装节点的 FQDN 与 IP 写入/etc/hosts文件 |
这七项覆盖了 TDengine 集群部署中最容易出问题的环境因素:主机名不一致会导致 dnode 之间无法正确识别身份,/etc/hosts缺少映射会导致 FQDN 解析失败,防火墙与 SELinux 未关闭会拦截数据端口,coredump 未配置会给崩溃诊断带来困难。通过一次预配置即可统一消除这些隐患。
结果文件
taospreset运行完成后,会在结果目录(默认是工具运行当前目录,可用-r指定)下生成preset_report.md文件。该文件记录了本次预配置工具实际修改的具体项目,便于部署人员核对哪些环境项被变更、是否与预期一致,也可作为交付与审计的留痕依据。
应用示例
以下为官方文档给出的典型使用方式:
# 配置当前主机(local 模式) ./taospreset # 通过 SSH 配置所有配置文件中的主机 ./taospreset -m ssh # 使用指定配置文件,以 SSH 模式配置所有主机 ./taospreset -m ssh -f /path/to/preset.cfg # 以 SSH 模式配置所有主机,同时关闭 Kylin 系统的 KySec 服务 ./taospreset -m ssh -d # 以 SSH 模式配置所有主机,并开启 debug 级别日志 ./taospreset -m ssh -l debug示例解析:
./taospreset等价于-m local,仅预配置当前节点,适用于单机部署或节点间无 SSH 互通的场景;-m ssh会自动读取运行当前目录下的配置文件,依次对所有[test_env]中定义的主机执行预配置,适用于标准集群部署;-f /path/to/preset.cfg显式指定配置文件的完整路径,便于把配置与工具分离管理;-d与-l debug可组合使用,前者用于麒麟系统的安全框架关闭,后者用于排查批量预配置过程中的异常细节。
与 taosprecheck 组合的推荐流程
由于两者共享配置文件格式,推荐的部署前流程是:
- 使用同一份配置文件先运行 taosprecheck 检查环境(生成
precheck_report.md与precheck_advice.md); - 根据检查结果调整配置并运行
taospreset完成环境预配置; - 重新运行 taosprecheck 确认问题项已消除;
- 再执行安装步骤(如
taosinstall),从而保证安装从一开始就处于干净、一致的环境中。
小结
taospreset是 TDengine 部署链路中"环境就绪"的最后一公里:它以一份与 taosprecheck 共享的 INI 配置文件为输入,通过local/ssh两种模式,将时区、防火墙、SELinux、内核与资源限制参数、coredump、主机名与域名解析一次性配置到位,并以preset_report.md留痕。对于 Enterprise 用户而言,将 taosprecheck(检查)与 taospreset(预配置)配合使用,可以有效降低多节点集群部署前的环境准备工作量,从源头规避因系统设置不一致引发的安装与运行问题。更完整的工具清单、平台支持范围与前置要求,可参见 Inspection Tools 总览。
【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考