TDengine 运维——巡检工具(定期检查)
背景
TDengine 在运行一段时间后需要针对运行环境和 TDengine 本身的运行状态进行定期巡检,本文档旨在说明如何使用巡检工具对 TDengine 的运行环境进行自动化检查。
安装工具使用方法
工具支持通过 help 参数查看支持的语法
Usage: taosinspect [OPTIONS]Check Database deployment environmentOptions:-m, --model [local|ssh] connection model, default: local-f, --config TEXT Full path of test config file [required]-r, --result TEXT Full path of result directory [required]-b, --backend BOOLEAN Run process in backend. default: False-cn, --check-nginx BOOLEAN Whether check nginx's config, default: False-v, --version Show version--help Show this message and exit.
参数详细说明
model
:安装工具运行模式,分为 local 和 ssh。安装环境的多节点间支持 SSH 通信,可选择 ssh 模式,在任意节点上运行安装工具,会依次对所有节点环境完成安装操作。反之,节点间不支持 SSH 通信时,可选择 local 模式,仅对工具运行所在机器完成安装操作,默认为 local 模式。config
:安装工具加载的配置文件,其具体配置方式详见 配置文件使用说明 章节。不配置 config 参数时配置文件默认值为/etc/taos/inspect.cfg。result
:巡检运行结束后结果文件和相关日志文件的存储目录,默认是用户在 taos.cfg 中配置的 logDir 对应目录。backend
:后台运行安装工具,选择 True 后安装工具在自动在后台运行,默认为 False。check-nginx
:是否检测负载均衡 nginx 的配置文件,默认值为 False。version
:打印安装工具版本信息。
配置文件使用说明
########################################################
# #
# Configuration #
# #
######################################################### 安装部署TDengine的环境信息,支持免密登录和SSH登录两种方式,当环境配置了免密登录后不用配置password信息。
# 除此外还支持从TDengine自动获取集群信息,该模式下不需配置集群节点的ip和FQDN,仅需要配置连接各节点的用户信息(免密时不用配置password信息)
# 配置方式1、2和3不可配置
[test_env]
# 配置方式1: 通过TDengine获取集群信息
username=root
password=123456
port=22# 配置方式2: 节点间通过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||username=123456||port=22# 配置方式3: 节点间配置免密登录
# 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# TDegine的Restful连接信息
[database]
username=root
password=taosdata
port=6030
rest_port=6041# Nginx服务所在服务器的连接信息
[nginx]
ip=192.168.0.100
username=root
password=123456
port=22# oem版本的版本名称,默认不使用
# [oem]
# version=prodb# /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=1048576
* soft stack=65536
* hard nproc=65536
* hard nofile=1048576
* hard stack=65536
root soft nproc=65536
root soft nofile=1048576
root soft stack=65536
root hard nproc=65536
root hard nofile=1048576
root hard stack=65536# 预安装软件列表
[app_list]
app1=screen
app2=tmux
app3=gdb
app4=fio
app5=iperf,iperf3
app6=sysstat
app7=net-tools
app8=jansson
app9=snappy
app10=ntp,chrony
app11=tree
app12=wget# 巡检覆盖的TDengine服务范围
[td_services]
ts1=taosd
ts2=taosadapter
ts3=taoskeeper
ts4=taosx
ts5=taos-explorer# 可忽略的TDengine错误日志
[skip_error_strs]
str1=failed to get monitor info
str2=Table does not exist
str3=failed to send
str4=Fail to get table info
巡检范围
磁盘巡检范围
No | 巡检项目 | 详细说明 | 告警规则 |
---|---|---|---|
1 | 磁盘基本信息 | 磁盘类型和磁盘空间 | 无 |
2 | 磁盘挂载信息 | 通过 lsblk 查询的磁盘挂载信息 | 无 |
3 | 数据库数据目录使用情况 | 数据目录的挂载路径,文件系统,存储类型,已用空间,可用空间和空间使用率 | 磁盘已用空间低于 15% |
4 | 数据库数据目录 Inode 情况 | 数据目录对应的 idnode 已用空间,可用空间和空间使用率 | 无 |
系统巡检范围
No | 巡检项目 | 详细说明 | 告警规则 |
---|---|---|---|
1 | 系统基本信息 | 系统名称、系统启动时间、防火墙和 SELinux 服务状态 | 防火墙或 SElinux 服务未关闭 |
2 | 域名解析配置 | FQDN 和 IP 信息是否配置到/etc/hosts 文件 | 缺少任一 FQDN 的域名解析 |
3 | 预安装软件 | 指定的原装软件是否已安装,若安装记录其版本 | 无 |
4 | 系统参数配置 | 检查系统参数值是否与配置文件中指定系统参数的配置一致 | 无 |
5 | 系统内存错误 | 收集系统内核错误日志信息 | 存在内核错误日志 |
6 | SWAPNESS 配置 | SWAPNESS 配置状态及其配置值大小 | SWAPNESS 配置值大于 10 |
7 | Coredump 配置 | coredump 路径是否配置 | 1. coredump 未配置;2. coredump 挂载目录为系统根目录;3. coredump 文件个数大于 0 |
数据库巡检范围
No | 巡检项目 | 详细说明 | 告警规则 |
---|---|---|---|
1 | 数据库版本 | taosd、taos、taosKeeper、taosAdapter、taosX 和 taos-explorer 的版本信息 | 服务端和客户端的版本不一致 |
2 | taosd 进行打开文件数 | taosd 进行打开文件数大小 | 文件数量跟预设值不一致 |
3 | 数据库服务状态 | 服务当前运行状态 | 任一服务运行状态异常 |
4 | 数据库服务详情 | 服务自启动配置、启动时间、持续运行时间、内存占用空间和 CPU 使用率 | CPU 使用率超过 80% 持续时间超过 30 分钟 |
5 | 数据库参数配置 | 数据库所有参数信息 | 无 |
6 | 数据库错误日志 | 统计 taosd、taos 和 taosAdapter 的错误日志数量 | 有任意错误日志 |
7 | 数据库 dnode 信息 | 每个 Dnode 分配的 vnodes 数量,dnode 状态,dnode 启动时间和最近一次重启时间 | dnode 存活数量小于集群 dnode 的总和 |
8 | 数据库 mnode 信息 | 每个 mnode 的角色,mnode 状态,mnode 启动时间和最近一次重启时间 | mnode 存活数量小于集群 dnode 的总和 |
9 | 数据库 vnode 信息 | 每个 vnode 所在 dnodeId、vgroupId、db 名称、当前状态、启动时间和 restored 状态 | 任一 vnode 的 restored 状态部位 True |
10 | 数据库用户信息 | 数据库用户的相关配置和权限 | 1. Root 用户的默认密码未修改;2. 未配置监控专用的数据库用户;3. 普通数据库用户未定义 |
11 | 数据库权限信息 | 数据库 Instance 的权限信息 | 1. 测点使用数超过授权数的 80%;2. 数据库授权到期时间距现在少于 90 天 |
12 | 数据库慢查询 | 最近 30 天慢查询数量 | 最近 30 天有慢查询记录 |
13 | taosx 数据目录 | taosx 数据目录 | taosX 数据目录是默认系统根目录 |
库表巡检范围
No | 巡检项目 | 详细说明 | 告警规则 |
---|---|---|---|
1 | 库表占用空间 | 数据库本地占用磁盘空间 | 无 |
2 | 库表概要统计 | 数据库数量、超级表数量、子表数量、普通表数量、流数量、topic 数量和订阅数量。数据库本地占用磁盘空间 | 无 |
3 | 测点统计 | 每个数据库已用测点数 | 测点使用数超过授权数的 80% |
4 | vgroup 分布信息 | 每个数据库的 vgroup 数量,每个 dnode 的 vgroup 数量 | 无 |
5 | vgroup 详细信息 | 每个数据库对应 vgroup 的 Leader 和 Follower 分布情况以及 vgroups 详情 | 无 |
6 | vnode 详细信息 | 每个数据库对应 vnode 的角色、FQDN、数据目录、占用磁盘空间、role_time、start_time 和 restored 状态 | 1. 目录下 SMA 或 WAL 文件占用磁盘空间超过 DATA 文件大小;2. vnode 数量大于 CPU 核数 * 2 |
7 | 数据库副本数 | 每个数据库的副本数量 | 集群副本数小于 3 |
8 | 数据库 Schema 定义 | 每个数据库的 Schema 定义 | 无 |
9 | 超级表 Schema 定义 | 每个超级表的 Schema 定义 | 无 |
10 | 超级表详细信息 | 每个超级表以及对应子表数量 | 数据库中没有任何超级表 |
11 | 流计算信息 | 流 Schema 定义、流计算详情和任务详情 | 无 |
12 | 订阅主题信息 | 主题 schema 定义、主题详情 | 无 |
13 | 订阅消费者信息 | 消费者详情 | 无 |
14 | 订阅信息 | 订阅详情 | 无 |
Nginx 配置巡检(可选)
No | 巡检项目 | 详细说明 | 告警规则 |
---|---|---|---|
1 | Nginx 配置 | 各节点的 hostanme 和 ip 是否正确配置到 Nginx 配置文件 | 配置文件中 FQDN 配置信息缺失或错误 |
结果文件
巡检工具运行后会在工具运行用户在 taos.cfg 中配置的 logDir 目录下生成三类文件,包含了巡检报告 inspect_report.md,巡检结构化数据 inspect.json,数据库和超级表初始化文件 stabel_schemas.md、各节点 taos、taosd 和 taosKeeper 对应的错误日志文件和各服务对应的配置文件。最后会将出错误日志文件以外的其他所有文件压缩为 results.zip
应用示例
在工具所在节点执行巡检任务
./taosinspect -m local
在集群所有节点执行巡检任务
./taosinspect -m ssh
指定配置文件并在集群所有节点执行巡检任务
./taosinspect -m ssh -f /path_to_file/install.cfg
在集群所有节点执行巡检任务,包括检查 nginx 服务配置文件
./taosinspect -m ssh -f /path_to_file/install.cfg -cn true
访问官网
更多内容欢迎访问 TDengine 官网
相关文章:

TDengine 运维——巡检工具(定期检查)
背景 TDengine 在运行一段时间后需要针对运行环境和 TDengine 本身的运行状态进行定期巡检,本文档旨在说明如何使用巡检工具对 TDengine 的运行环境进行自动化检查。 安装工具使用方法 工具支持通过 help 参数查看支持的语法 Usage: taosinspect [OPTIONS]Check…...
8.7 基于EAP-AKA的订阅转移
8.7 基于EAP-AKA的订阅转移 以下场景描述如下情况: • 主ODSA设备应用程序被允许用于该类型主设备,且已获得服务提供商(SP)授权。 • 终端用户在存有活跃订阅的旧主设备上发起订阅转移请求,且可访问eSIM数据。 • 由于…...

qwen 2.5 并行计算机制:依靠 PyTorch 和 Transformers 库的分布式能力
qwen 2.5 并行计算机制:依靠 PyTorch 和 Transformers 库的分布式能力 完整可运行代码: import torch import torch.nn.functional as F from transformers...
调整数据集的方法
我们对worldquant中的数据, 对数据频率怎么算 在 WorldQuant 平台中,数据更新频率是影响量化策略有效性、回测准确性和实盘交易表现的核心因素之一。它决定了数据的时效性和连续性,直接关系到策略能否捕捉市场动态、应对突发事件或适应不同…...
TCP 四次挥手
引言:优雅的告别 在网络通信中,建立连接需要三次握手,而终止连接则需要四次挥手。这种设计体现了 TCP 协议的可靠性和完整性原则。本文将用通俗易懂的方式,深入解析四次挥手的原理、状态转换和实际应用,帮助您掌握这一…...

MSTNet:用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法|文献速递-深度学习医疗AI最新文献
Title 题目 MSTNet: Multi-scale spatial-aware transformer with multi-instance learning for diabetic retinopathy classification MSTNet:用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法 01 文献速递介绍 糖尿病视网膜病变&#…...

docker运行程序Killed异常排查
问题描述 我最近开发了一个C 多线程程序,测试没有问题,封装docker测试也没有问题,然后提交给客户了,然后在他那边测试有问题,不定时、不定位置异常中断,以前一直认为只要封装了docker就万事大吉࿰…...
【数学 逆序对 构造】P12386 [蓝桥杯 2023 省 Python B] 混乱的数组|普及+
本文涉及知识点 数学 构造 P12386 [蓝桥杯 2023 省 Python B] 混乱的数组 题目描述 给定一个正整数 x x x,请找出一个尽可能短的仅含正整数的数组 A A A 使得 A A A 中恰好有 x x x 对 i , j i, j i,j 满足 i < j i < j i<j 且 A i > A j A_…...

Excel 批量下载PDF、批量下载考勤图片——仙盟创梦IDE
在办公场景中,借助应用软件实现 Excel 批量处理考勤图片、电子文档与 PDF,具有诸多显著优势。 从考勤图片处理来看,通过 Excel 批量操作,能快速提取图片中的考勤信息,如员工打卡时间、面部识别数据等,节省…...

PCIe-Error Detection(一)
下表为PCIe协议中给出的错误: 一、可纠正错误(Correctable Errors,8种) 检错机制 错误名称检测层级触发条件Receiver ErrorPhysical接收端均衡器(EQ)监测到…...

向量空间的练习题目
1.考虑 中的向量x1 和x2 求每一向量的长度 令x3x1x2,求x3的长度,它的长度与x1和x2的和有什么关系? 2.重复练习1,取向量 3.令C为复数集合,定义C上的加法为 (abi)(cdi)(ac)(bd)i 并定义标量乘法为对所有实数a (abi) a bi 证明&…...

Leetcode 2123. 使矩阵中的 1 互不相邻的最小操作数
1.题目基本信息 1.1.题目描述 给你一个 下标从 0 开始 的矩阵 grid。每次操作,你可以把 grid 中的 一个 1 变成 0 。 如果一个矩阵中,没有 1 与其它的 1 四连通(也就是说所有 1 在上下左右四个方向上不能与其他 1 相邻)&#x…...

MySQL高可用集群
https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-innodb-cluster.html 1 什么是MySQL高可用集群 MySQL高可用集群:MySQL InnoDB ClusterInnoDB Cluster是MySQL官方实现高可用读写分离的架构方案,包含以下组件 MySQL Group Replication:简…...

day14 leetcode-hot100-27(链表6)
21. 合并两个有序链表 - 力扣(LeetCode) 1. 暴力法 思路 创建一个空节点,用来组装这两个链表,谁小谁就是下一个节点。 知识 创建空节点:ListNode n1 new ListNode(-1); 具体代码 /*** Definition for singly-l…...

YOLOv5 :训练自己的数据集
- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/rnFa-IeY93EpjVu0yzzjkw) 中的学习记录博客** - **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)** 我们接着上一篇文章配置完YOLOv5需要的环境后&#…...

flutter项目迁移空安全
重中之重 备份好项目文件,甚至连已经加载好的flutter库也可以备份。环境包升级 2.1 不要直接换成flutter:3.0以上的版本,这样做既有基本的库兼容问题,又有空安全下的语法问题(整个项目中需要增加 late、?、!的语法错误,一片报错的…...
vue element日期范围选择器只能选择指定天数内的
<el-date-pickerv-model"dateRange"type"daterange"range-separator"至"start-placeholder"开始日期"end-placeholder"结束日期"format"yyyy-MM-dd"value-format"yyyy-MM-dd"clearable:picker-optio…...
从 AMQP 到 RabbitMQ:核心组件设计与工作原理(二)
五、RabbitMQ 工作原理全揭秘 在深入了解了 RabbitMQ 的核心组件之后,接下来让我们深入探究 RabbitMQ 的工作原理,揭开其在消息生产、投递、消费以及可靠性保障等方面的神秘面纱。 5.1 消息生产与投递流程 建立连接与信道:生产者首先通过 …...

MySql(十二)
目录 MySql约束 1.添加主键约束 语法格式 1)创建一个带主键的表 查看表结构 2)创建表的时候指定主键名称 查看表结构 3)创建一个表然后,然后再使用alter为列添加主键 查看表结构 4)为表添加数据 1---正常数据 2---主键…...

51c视觉~3D~合集3
我自己的原文哦~ https://blog.51cto.com/whaosoft/13954440 #SceneTracker 在4D时空中追踪万物!国防科大提出首个长时场景流估计方法 本篇分享 TPAMI 2025 论文SceneTracker: Long-term Scene Flow Estimation Network,国防科大提出首…...
windows11安装编译QtMvvm
windows11安装编译QtMvvm 1 从github下载代码2 官方的Download/Installtion3 自行构建编译QtMvvm遇到的问题3.1 `qmake`问题执行命令报错原因分析qmake报错:找不到编译器 cl解决方案3.2 `make qmake_all`问题执行命令报错原因分析make命令未识别解决方案3.3 缺少`perl`问题执行…...

【2025年电工杯数学建模竞赛A题】光伏电站发电功率日前预测问题+完整思路+paper+源码
本人7年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我 本题主要涉及数据预测,数据分析,机器学习,时间序列等知识 1.问题背景与问题描述 2.解题思路分析 …...

OpenCv高阶(十九)——dlib关键点定位
文章目录 一、什么是人脸关键点定位?二、关键点模型的下载及关键信息的理解三、dlib关键点定位的简单实现(1)导入必要的库(2)从指定路径读取图像文件(3)创建dlib的正面人脸检测器对象࿰…...

BUUCTF之[ACTF2020 新生赛]BackupFile
打开环境就一句话 找出源文件! 结合题目名字:BackupFile 先用dirsearct扫描网站文件 发现一个index.php.bak ,拼接url下载 打开发现php代码 <?php include_once "flag.php";if(isset($_GET[key])) {$key $_GET[key];if(!is_numeric($key)) {exit…...

头歌之动手学人工智能-Pytorch 之autograd
目录 第1关:Variable 任务描述 编程要求 测试说明 没有伟大的愿望,就没有伟大的天才。——巴尔扎克开始你的任务吧,祝你成功! 第2关:Variable 属性 任务描述 编程要求 测试说明 真正的科学家应当是个幻想家&a…...
OIer常用的软件
前言 现在许多软件的官网多不好找,所以我今天就将常用的一些软件官网地址翻了出来,并简单介绍了他的用法。 正文 1.DEV-C DEV-C 用途:c编译软件,是OIer的生涯之路的必备软件 2.Katex KATex 用途:展现公式的软件&…...
Centos7.x内网环境Jenkins前端打包环境配置
Centos7.x内网环境Jenkins前端打包环境配置 参考地址: https://www.cnblogs.com/guangdelw/p/18763336 https://2048.csdn.net/682c1be8606a8318e857d687.html 前言:环境描述和目标 最近公司新接了一个项目,要求是:需要再桌面…...

Kafka集成Flume/Spark/Flink(大数据)/SpringBoot
Kafka集成Flume Flume生产者 ③、安装Flume,上传apache-flume的压缩包.tar.gz到Linux系统的software,并解压到/opt/module目录下,并修改其名称为flume Flume消费者 Kafka集成Spark 生产者 object SparkKafkaProducer{def main(args:Array[S…...

Scratch节日 | 拯救屈原 | 端午节
端午节快乐! 这款特别为端午节打造的Scratch游戏 《拯救屈原》,将带你走进古代中国,感受历史与文化的魅力! 🏮 游戏介绍 扮演勇敢的探险者,穿越时空回到古代,解锁谜题,完成任务&…...

rabbitmq Direct交换机简介
在实际开发中,需求可能变得复杂,如消息的收发和处理。以支付系统为例,成功支付后需要改变订单状态并通知用户,而失败则不需要。为处理这种情况,提出了使用Direct交换机,它可以根据规则将消息路由到指定队列…...