背景
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 官網