跳到主要内容

巡检工具

背景

TDengine 在运行一段时间后需要针对运行环境和 TDengine 本身的运行状态进行定期巡检,本文档旨在说明如何使用巡检工具对 TDengine 的运行环境进行自动化检查。

安装工具使用方法

工具支持通过 help 参数查看支持的语法

Usage: taosinspect [OPTIONS]

Check Database deployment environment

Options:
-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系统内存错误收集系统内核错误日志信息存在内核错误日志
6SWAPNESS 配置SWAPNESS 配置状态及其配置值大小SWAPNESS 配置值大于 10
7Coredump 配置coredump 路径是否配置1. coredump 未配置;2. coredump 挂载目录为系统根目录;3. coredump 文件个数大于 0

数据库巡检范围

No巡检项目详细说明告警规则
1数据库版本taosd、taos、taosKeeper、taosAdapter、taosX 和 taos-explorer 的版本信息服务端和客户端的版本不一致
2taosd 进行打开文件数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 天有慢查询记录
13taosx 数据目录taosx 数据目录taosX 数据目录是默认系统根目录

库表巡检范围

No巡检项目详细说明告警规则
1库表占用空间数据库本地占用磁盘空间
2库表概要统计数据库数量、超级表数量、子表数量、普通表数量、流数量、topic 数量和订阅数量。数据库本地占用磁盘空间
3测点统计每个数据库已用测点数测点使用数超过授权数的 80%
4vgroup 分布信息每个数据库的 vgroup 数量,每个 dnode 的 vgroup 数量
5vgroup 详细信息每个数据库对应 vgroup 的 Leader 和 Follower 分布情况以及 vgroups 详情
6vnode 详细信息每个数据库对应 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巡检项目详细说明告警规则
1Nginx 配置各节点的 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
请您留言

客服暂时离开,有问题请留言。

提交