TDEngine2.6时序数据库集群及监控系统安装记录
0.前言
记录淘思数据库3节点集群安装过程(原始版本发布在我的有道云笔记中),主要分为两个部分前面是集群的规划、安装过程及基于restful api测试,后面是基于grafana的集群监控系统规划及安装。参考内容来自淘思数据的官方文档2.6版本。
1. 集群规划
1.1 三节点集群FQDN规划
参考FQDN说明
序号 | hostname(FQDN) | IP | 端口号 | 备注 |
---|---|---|---|---|
1 | node1 | 192.168.26.101 | 6030 | |
2 | node2 | 192.168.26.102 | 6030、6041 | 兼做taosadapter 服务 |
3 | node3 | 192.168.26.103 | 6030、6042 | 兼做协调服务器 |
1.2 集群节点机配置
参考容量规划
2核 8G,100G
ubuntu server 22.04LTS 64位
tdengine 2.6.0.1
双网卡,一个集群私网(192.168.26.101~103),一个nat
2 集群安装部署
2.1准备虚拟机VirtualBox
在主机网络管理器中创建新的Host-Only Ethernet Adapter#2
安装Ubuntu 22.04LTS, iso下载地址 服务器版,启用ssh,镜像更换为http://mirrors.163.com
2.1.1 配置网络地址
安装操作系统后指定ip,或者安装后修改
- netplan 方式,修改配置文件
修改/etc/netplan/目录下的唯一yaml文件,
此处有两块网卡,enp0s8是集群内网私有地址需要配置为
192.168.26网段内的地址,根据FQDN规划配置,下面是node1的ip配置为192.168.26.101/24
sudo vim 00-installer-config.yaml
network:
ethernets:
enp0s3:
dhcp4: true
enp0s8:
addresses:
- 192.168.26.101/24
- 应用修改
$ netplan apply
备注:enp0s3s是虚拟机访问外网地址nat的配置为自动获取ip,不用修改
2.1.2 检查ip是否配置
$ netplan get all
2.2 部署集群
参考文档https://docs.taosdata.com/cluster/deploy
这里每个节点选择apt-get安装方式
2.2.1 节点配置
配置文件参考
默认配置文件位于/etc/taos/taos.cfg, 可以通过taosd -c或者taos -c 指定配置文件位置,c为小写,大写C显示配置
副本数量为3,参考
mnode数量为3,参考
除了fqdn不同,其他配置三个节点完全一致。以下为node1的tdengine修改的配置
// firstEp 是每个数据节点首次启动后连接的第一个数据节点
firstEp node1:6030
secondEp node2:6030
// 必须配置为本数据节点的 FQDN,如果本机只有一个 hostname,可注释掉本项
fqdn node1
// 配置本数据节点的端口号,缺省是 6030
serverPort 6030
# 配置集群中管理节点数量mnode,1~3
numOfMnodes 3
# number of replications, for cluster only
replica 3
// 副本数为偶数的时候,需要配置,请参考《Arbitrator 的使用》的部分
arbitrator node3:6042
2.2.2 部署协调器
选择node3上部署,生产环境最好部署在集群中的独立节点上,防止node3宕机协调器也失效的情况。
进入用户目录
cd ~
下载协调器,注意版本与TDengine一致,这里都是2.6.0.1版本。地址
wget https://www.taosdata.com/assets-download/TDengine-arbitrator-2.6.0.1-Linux-x64.tar.gz
解压文件,替换实际文件名
tar xvzf TDengine-arbitrator-2.6.0.1-Linux-x64.tar.gz
进入TDengine-arbitrator-2.6.0.1目录
cd TDengine-arbitrator-2.6.0.1
执行协调器安装程序
sudo ./install_arbi.sh
启动协调器服务
sudo systemctl start tarbitratord
检查运行状态
sudo systemctl status tarbitratord
在taos客户端(windows64位2.6.0.1版本),安装参考官方文档,注意修改hosts文件配置node1,node2的ip解析,taos.cfg文件配置firstEp,SecondEp连接node1:6030,node2:6030,查看dnodes情况
taos> show dnodes;
2.2.3 集群基准测试
在node1节点上,运行taosdemo
$ taosBenchmark
或 $ taosdemo
测试结果如下:
2.2.4 启用taosadapter
参考文档:taosadapter
2.2.4.1 简单测试
在node2上以命令行方式启动taosadapter的,非官方方式,仅用于测试排错
在客户机tdclient上执行。
用户密码采用默认设置:root:taosdata
如不相同请用base64重新编码
curl -H 'Authorization: Basic cm9vdDp0YW9zZGF0YQ==' -d 'show databases;' node2:6041/rest/sql/test
服务端显示请求内容,最后一行表示post请求
客户端返回内容:
2.2.4.2 Postman测试
-
新建tdengine集合(collection)
设置授权,类型选择Basic Auth,输入集群默认的用户名密码
root taosdata
-
测试show databases命令
tdengine集合下增加请求,方法参考,执行查询数据库命令
POST http://node2:6041/rest/sql/
show databases;
返回结果:看到具备前面测试生成的test数据库
- 测试指定数据库查询
tdengine集合下增加请求,指定数据库(test)查询超级表meters的总记录数
POST http://node2:6041/rest/sql/test
Body中填写,文本格式为raw,text,内容如下
select count(*) from meters;
返回结果:1亿条记录数
- 测试聚合函数查询
tdengine集合下复制上面的请求创建新请求,填写如下内容:
参考查找 groupId 为 2 的所有智能电表过去 24 小时的记录条数,电流的最大值
SELECT count(*), max(current) FROM meters where groupId = 2;
返回结果:
与命令行执行结果对照
相对于原生连接(taosc),Rest连接的查询时间慢10多毫秒。详情参考TDengine连接器建立连接的方式
3 部署TDinsight监控系统
参考文档https://docs.taosdata.com/reference/tdinsight/
3.1 客户机规划
配置:4核8G,300G硬盘
安装Ubuntu 22.04LTS 桌面版64位,下载地址
序号 | hostname(FQDN) | IP | 端口 | 备注 |
---|---|---|---|---|
1 | tdclient | 192.168.26.104 | 3000 | 兼做grafana服务器 |
- 客户端安装 ssh,curl ,wget
sudo apt install ssh curl wget
3.2 部署taos的Linux客户端(可选)
参考文档:安装客户端驱动
版本与服务端一致,这里都是2.6.0.1,
TDengine-client-2.6.0.1-Linux-x64.tar.gz 下载地址
wget https://www.taosdata.com/assets-download/TDengine-client-2.6.0.1-Linux-x64.tar.gz
- 解包安装
tar zxvf TDengine-client-2.6.0.1-Linux-x64.tar.gz &&
cd TDengine-client-2.6.0.1-Linux-x64 &&
sudo ./install_client.sh
- 配置客户端
修改/etc/taos/taos.cfg文件,指定firstEp,SecondEp,这里分别是node1,node2
- 客户端命令行执行测试
输入taos
$ taos
taos> show variables;
3.3 安装grafana
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key |\
sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" |\
sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
3.4 安装grafana TDengine插件
$ sudo ./TDinsight.sh -a http://node2:6041
-
重启动grafana服务
sudo systemctl restart grafana-server
-
插件安装失败,卸载grafana TDengine插件方法
sudo ./TDinsight.sh -R
3.5 grafana异常处理
-
检查grafana错误
显示最近20条错误
sudo journalctl -u grafana-server.service -n
-
如果搞坏grafana,用以下命令重新安装
sudo apt-get --reinstall install grafana
sudo apt reinstall grafana
-
重装无效,重命名db文件(-s参数提升系统权限),再次重新安装grafana 、TDengine插件
sudo -s mv /var/lib/grafanagrafana.db /var/lib/grafanagrafana.db2
-
默认grafana数据目录/var/lib/grafana
3.6 监控结果图
主机浏览器 访问http://tdclient:3000,默认用户密码均为admin,面板介绍参考
-
仪表盘所有内容
-
集群概况
-
模拟集群故障
集群正常运行时,停掉任意节点的taosd服务,模拟节点故障
集群运行正常,
停掉节点node1、node3上的taosd,监控可用看到dnodes,mnodes
及vnodes的数量都下降了。
仪表盘的数据源连接node2:6041,当停掉node2节点的taosd,集群运行正常,但仪表板看到如下结果,监控不可用了
-
window客户端(跨网段)与Linux客户端(同网段)执行查询不同
在正常3节点集群中查询速度相当,但丢失一个节点的表现有差异
select count(*) from test.meters;
window客户端查询速度会下降,为4秒,但是Linux客户端仍跟正常一样。
节点正常时,window客户端查询速度,为0.15秒
4 小结
总体上,得益于淘思数据库文档的简洁流畅,集群安装比较顺利,适合淘思新手快速上手测试,当然具备一定的Linux和sql基本技能。2.6版本的sql功能增强,查询比以前跟方便了