TDengine 安装前预配置工具 taospreset:集群部署前的系统环境一键标准化

TDengine 安装前预配置工具 taospreset:集群部署前的系统环境一键标准化 TDengine 安装前预配置工具 taospreset集群部署前的系统环境一键标准化【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine本文围绕 TDengine 官方巡检工具套件中的安装前预配置工具taospreset展开介绍它解决什么问题、完整的命令行参数、配置文件中各配置节的含义以及它与taosprecheck安装前检查、taosinstall安装部署在交付流程中的衔接关系。读完后你将能够在单节点或集群环境中以 local/ssh 两种模式批量完成时区、防火墙、SELinux、内核参数、coredump、Hostname 与域名解析等系统级预配置并理解这些配置项与 TDengine 服务稳定运行的关系。一、背景为什么部署 TDengine 前要做环境预配置TDengine 的安装部署对环境系统有一定的依赖和要求时区一致性影响时序数据的写入与查询口径防火墙与 SELinux 会拦截节点间同步与客户端连接sysctl与limits.conf中的文件描述符上限直接决定高并发写入场景下 taosd 能维持的连接与句柄规模coredump 路径则关系到故障现场的取证。这些配置项如果靠运维人员逐节点手工修改既低效又容易漏配或不一致。taospreset安装前预配置工具就是为此设计的自动化工具它按一份声明式的配置文件在指定节点单节点 local 模式或整个集群 ssh 模式上批量完成预配置并输出结果报告preset_report.md供交付验收。它属于 TDengine 官方巡检工具套件的一环该套件在 巡检工具总览 中统一定义了六个角色工具功能定位taosprecheck安装前检查部署前对 TDengine 安装部署的依赖环境进行安装前检查taospreset安装前配置部署前对 TDengine 安装部署的依赖环境进行安装前预配置taosinstall安装部署指定环境安装部署 TDenginetaosinspect例行巡检基于 TDengine 环境进行例行巡检和告警taosperf基准性能测试TDengine 部署环境执行 IO 和网络的基准性能测试taossubscribe订阅服务功能测试订阅服务功能测试工具典型的交付顺序是先用 taosprecheck 摸底环境问题并拿到配置建议再用taospreset按建议完成预配置最后用 taosinstall 完成集群安装。使用限制与运行前提按照巡检工具总览文档的说明使用前需要确认以下边界条件这些限制对 taospreset 同样适用版本范围巡检工具目前仅支持企业版用户暂不对社区版开放支持的 TDengine 版本为 3.1.x.x 及以上版本。已验证平台Kylin V10、Ubuntu (20.04.2)、CentOS (7.9)、LinxOS (6.0.99)、openEuler (23.09)、Debian12。在其它平台或版本上运行遇到问题时需联系交付人员。运行权限运行工具需要 root 权限如由普通用户运行则需要 sudo 权限。glibc 要求glibc 2.17 及以上x64 架构glibc 2.27 及以上ARM 架构。SSH 前提集群节点之间的 SSH 服务必须启用若无法启用 SSH只能用 local 模式在每个节点上单独运行工具。免密登录注意配置免密登录的环境运行工具的当前节点也需要配置自身免密。二、命令行用法与参数说明工具支持通过help参数查看支持的语法usage: taospreset [-h] [--model {local,ssh}] [--config CONFIG] [--backend] [--disable-kysec] [--result RESULT] [--version] [--log-level {debug,info}] Pre-set for Database installation optional arguments: -h, --help show this help message and exit --model {local,ssh}, -m {local,ssh} connection model, default: local --config CONFIG, -f CONFIG Full path of test config file --backend, -b Run process in backend. default: False --disable-kysec, -d Disable kysec, default: False --result RESULT, -r RESULT Result directory. default: ./ --version, -v Show version --log-level {debug,info}, -l {debug,info} Set log level, default: info (options: debug, info)参数详细说明model预配置工具运行模式分为 local 和 ssh。安装环境的多节点间支持 SSH 通信时可选择 ssh 模式在任意节点上运行预配置工具会依次对所有节点环境完成预配置操作反之节点间不支持 SSH 通信时可选择 local 模式仅对工具运行所在机器完成预配置操作。默认为 local 模式。config预配置工具加载的配置文件其具体配置方式详见下文「配置文件使用说明」章节。不配置 config 参数时配置文件默认路径为工具运行当前目录。backend后台运行预配置工具默认为前台运行。disable-kysec是否关闭 Kylin Security 服务。KySec 是麒麟系统的安全模块框架类似于 SELinux、AppArmor、Trusted Computing 的集合体主要用于增强系统安全性。该参数仅对麒麟系统有意义默认为 False。result安装前配置结果文档的输出路径。不配置 result 参数时默认路径为工具运行当前目录。log-level输出日志级别目前支持 debug 和 info默认为 info。version打印预配置工具版本信息。与同套件的 taosprecheck 相比taospreset 的命令行参数多出一个--disable-kysec因为检查工具只读取环境状态而预配置工具会实际修改系统状态在麒麟系统上除了配置文件中的selinuxinactive之外还可能需要显式禁用 KySec 模块二者是互补的。三、配置文件使用说明配置文件的整体思路是「声明式」你在配置文件中写出目标系统状态工具负责把各节点的实际状态调整到该目标。完整配置示例如下注意原文档示例中dnode3一行的第二个username123456实为笔误应为password123456实际使用时请按正确键名书写# 安装部署 TDengine 的环境信息支持免密登录和 SSH 登录两种方式当环境配置了免密登录后可不用配置 password 信息 [test_env] # 节点间通过 SSH 协议访问 firstep192.168.0.1||fqdntdengine1||usernameroot||password123456||port22 secondep192.168.0.2||fqdntdengine2||usernameroot||password123456||port22 dnode3192.168.0.3||fqdntdengine3||usernameroot||password123456||port22 # 节点间配置免密登录 # firstep192.168.0.1||fqdntdengine1||usernameroot||port22 # secondep192.168.0.2||fqdntdengine2||usernameroot||port22 # dnode3192.168.0.3||fqdntdengine3||usernameroot||port22 # 系统时区工具会按照下面配置修改系统时区 [timezone] tzAsia/Shanghai # 系统服务状态工具会按照下面配置关闭对应的系统服务 [services] firewallinactive selinuxinactive # coredump 配置工具会按照下面配置 coredump 的生成路径 [coredump] kernel.core_pattern/data/taos/core/core-%%e-%%p # /etc/sysctl.conf 中系统参数工具会按照下面配置修改系统参数值 [sys_vars:/etc/sysctl.conf] fs.nr_open2147483584 fs.file-max2147483584 net.ipv4.ip_local_port_range10000 65534 # /etc/security/limits.conf 中系统参数工具会按照下面配置修改系统参数值 [sys_vars:/etc/security/limits.conf] * soft nproc65536 * soft nofile2147483584 * soft stack65536 * hard nproc65536 * hard nofile2147483584 * hard stack65536 root soft nproc65536 root soft nofile2147483584 root soft stack65536 root hard nproc65536 root hard nofile2147483584 root hard stack65536[test_env]集群节点清单与访问方式这是 ssh 模式下的核心配置段逐行列出集群节点节点键名有语义约定firstep、secondep是后续 taosinstall 创建 mnode管理节点的首选节点dnode3、dnode4……是普通数据节点。预配置阶段它们只是「待操作节点列表」但在安装阶段firstEp/secondEp会被 taosinstall 写入 taos.cfg 并用于创建 mnode因此命名要与最终部署拓扑一致。每行节点信息以||分隔IP 地址、fqdn全限定域名、username、password、port。若环境已配置 SSH 免密登录则省略password字段即可如示例中被注释的三行所示。FQDN 与 IP 的映射关系后续会被工具写入各节点的/etc/hosts见下文预配置范围因此这里的 fqdn 必须就是最终要使用的节点域名建议与 taosinstall 配置文件中的节点命名保持一致避免安装阶段二次改名。[timezone]系统时区tzAsia/Shanghai指定工具将修改的系统时区。TDengine 是时序数据库所有读写都带时间戳语义集群各节点时区不一致会导致同一时刻在不同节点上呈现不同的时间口径直接影响流计算、降采样和跨节点查询结果的可解释性。该配置段让工具把集群时区一次性拉齐。[services]关闭的系统服务firewallinactive关闭防火墙服务。TDengine 节点间存在同步mnode/snode/bnode 之间的 RPC 与数据同步客户端也要访问 taosd/taosadapter 端口交付场景中通常选择整体关闭防火墙而非逐端口放行。selinuxinactive关闭 SELinux 服务。SELinux 的强制访问控制可能拦截 taosd 的跨目录读写、coredump 落盘和端口监听等行为。工具只处理配置中声明的服务状态未声明的服务不受影响。在麒麟系统上如需同时禁用 KySec通过命令行--disable-kysec参数控制。[coredump]coredump 生成路径kernel.core_pattern/data/taos/core/core-%%e-%%p通过内核参数指定 core 文件的落盘路径与命名规则路径/data/taos/core/是 coredump 的统一目录%%是 kernel.core_pattern 中的转义写法%%e展开为进程名、%%p展开为进程 PID即 core 文件形如core-taosd-12345便于按进程和 PID 归档。coredump 是数据库故障如 taosd 段错误后做现场分析的关键材料所以工具在配置路径的同时会开启 coredump 相关服务见下文「环境预配置范围」。从仓库源码结构看coredump 行为与 taosd 的 systemd 重启策略是联动设计的startPre.sh 会在每次 taosd 启动前检查ulimit -c当 core 被禁用时把服务单元中的StartLimitBurst调整为 20允许频繁拉起当 core 开启unlimited时调整为 3避免 core 落盘期间反复重启风暴并写入/var/log/taos/.startRecord记录。这说明「配置 coredump 生成目录并开启服务」不只是一条内核参数而是与 taosd 服务启停策略配套的整体行为。[sys_vars:/etc/sysctl.conf]内核级系统参数该段的键名直接写入/etc/sysctl.conffs.nr_open2147483584系统级文件句柄表上限。taosd 单进程要同时维持 WAL 日志、TSM 数据文件、vnode 管理文件和客户端连接句柄上限过低会直接表现为打开文件失败。fs.file-max2147483584内核全局可打开文件数上限需与fs.nr_open匹配否则单进程上限会被全局上限钳制。net.ipv4.ip_local_port_range10000 65534扩大本地端口范围。taosd 作为节点间双向通信服务端节点数多、连接频繁时需要更大的源端口池以避免端口耗尽。[sys_vars:/etc/security/limits.conf]PAM 级资源限制该段写入/etc/security/limits.conf分别覆盖*所有用户和root两类主体nproc65536单用户可创建的最大进程/线程数。taosd 内部按节点职责qnode、vnode、snode 等拉起较多工作线程进程数限制过紧会限制线程池扩展。nofile2147483584单用户可打开的文件描述符数与 sysctl 段的fs.nr_open保持一致形成「内核全局 → 用户进程」两级放行。stack65536单位 KB即 64 MB单线程栈大小上限为递归调用深度较大的解析/计算路径预留空间。以上取值来自官方预配置模板实际环境可结合 taosprecheck 输出的建议值调整但两级sysctl 与 limits必须同步修改才生效。四、环境预配置范围工具按配置文件实际执行的操作范围如下预配置项目详细说明配置系统时区配置系统时区为用户预设定时区关闭防火墙关闭系统的防火墙服务关闭 SElinux 服务关闭系统 SElinux 服务配置系统参数配置用户预设定的系统参数配置 coredump配置 coredump 生成目录并开启服务修改机器 Hostname当机器 Hostname 为默认的 localhost 时更新为配置文件中预设定的 FQDN配置域名解析将配置文件中安装节点的 FQDN 和 IP 配置到/etc/hosts文件几点使用上的观察Hostname 修改是条件触发的只有当节点 Hostname 仍是发行版默认的localhost时才会改写为[test_env]中给定的 FQDN。如果你的环境已手工设置过 hostname工具不会覆盖这降低了误改名的风险但也意味着预配置完成后应核对一次各节点 hostname 是否与test_env声明一致。域名解析覆盖全集群配置阶段会把所有节点的 FQDN→IP 映射写入每个目标节点的/etc/hosts这样即使后续 taosinstall 不传--set-ips集群成员间也已可以按域名互访与总览文档中「配置的 FQDN 和 IP 地址必须提前配置到 /etc/hosts 文件」的运行前提相互呼应。修改项均以配置文件为准时区、服务状态、系统参数、coredump 路径都只调整配置文件中声明的项目未声明项保持原状这使同一份配置文件可以沉淀为某个交付场景的标准「环境基线」。五、结果文件工具运行后会在工具运行当前目录或--result指定的目录下生成preset_report.md文件其中包含预配置工具实际修改的具体项目。交付验收时可以把它与taosprecheck生成的precheck_report.md、precheck_advice.md对照检查报告说明「环境原来是怎样的、建议怎样改」预配置报告说明「工具实际改了什么」二者构成完整的部署前审计链路。六、应用示例在工具所在节点以 local 模式执行安装前预配置配置文件位于工具运行当前目录./taospreset以 SSH 模式在所有节点执行安装前预配置./taospreset -m ssh指定配置文件并以 SSH 模式在所有节点执行安装前预配置./taospreset -m ssh -f /path_to_file/preset.cfg以 SSH 模式在所有节点执行安装前预配置并关闭 Kylin Security 服务麒麟系统./taospreset -m ssh -d以 SSH 模式在所有节点执行安装前预配置开启日志 debug 级别./taospreset -m ssh -l debug七、小结taospreset以一份声明式配置文件加一组简单命令行参数把 TDengine 集群部署前最繁琐的系统级准备时区、防火墙、SELinux/KySec、sysctl 与 limits 资源上限、coredump 路径、Hostname 与 hosts 解析标准化为一次自动化操作并留下preset_report.md作为验收凭证。它与 安装前检查工具 taosprecheck 的「检查—建议」、安装工具 taosinstall 的「安装—升级」前后衔接共同覆盖 TDengine 企业版集群交付中「环境就绪 → 预配置 → 部署」的完整流程。使用时的关键前提企业版环境、root 权限、节点间 SSH 可用以及按firstep/secondep/dnodeN约定正确命名节点为后续 mnode 的自动创建打好基础。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考