1 Ubuntu下安裝配置TDEngine
1.1 服務(wù)器主機(jī)安裝TDEngine
Ubuntu下配置很簡(jiǎn)單蟀拷,詳見官方文檔[1]
[SPAserver] $ sudo apt-get update
[SPAserver] $ apt-cache policy tdengine
[SPAserver] $ sudo apt-get install tdengine
# 啟動(dòng)TDEngine
[SPAserver] $ systemctl start taosd
# 查看TDEngine狀態(tài)
[SPAserver] $ systemctl status taosd
1.2 TDEngine服務(wù)器主機(jī)配置FQDN
FQDN(Fully Qualified Domain Name)即域名胶坠,F(xiàn)QDN = Hostname + DomainName
1、配置hostname
# 查看當(dāng)前hostname
[SPAserver] $ hostname -f
ubuntu
# 修改hostname
[SPAserver] $ sudo nvim /etc/hostname
# 將文件內(nèi)的ubuntu改為自己想要的hostname后保存退出,我修改為tdmain
2疾党、配置FQDN
# 查看本機(jī)ip
[SPAserver] $ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.93.132 netmask 255.255.255.0 broadcast 172.16.93.255
inet6 fe80::9e9b:fb70:779f:1fe7 prefixlen 64 scopeid 0x20<link>
......
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
......
[SPAserver] $ sudo nvim /etc/hosts
# 一下為hosts文件信息间狂,在最后一行加入 172.16.93.132 tdmain.server.com tdmain
# 即 ip fqdn hostname
127.0.0.1 localhost
127.0.1.1 ubuntu
......
172.16.93.132 tdmain.server.com tdmain
# 更新hostname使域名生效
[SPAserver] $ sudo hostname -F /etc/hostname
# 重新查看hostname
[SPAserver] $ sudo hostname -f
tdmain.server.com
[SPAserver] $ sudo hostname
tdmain
此配置并未部署TDEngine集群坦康,為單個(gè)主機(jī)竣付,如果配置集群需要將其他TDEngine節(jié)點(diǎn)主機(jī)的FQDN也加入hosts文件中(如果已經(jīng)申請(qǐng)了公網(wǎng)的域名則不需要)。
3滞欠、配置服務(wù)器TDEngine配置文件
[SPAserver] $ sudo nvim /etc/taos/taos.cfg
# first fully qualified domain name (FQDN) for TDengine system
firstEp tdmain.server.com:6030
# local fully qualified domain name (FQDN)
fqdn tdmain.server.com
# first port number for the connection (12 continuous UDP/TCP port number are used)
serverPort 6030
# log file's directory
logDir /var/log/taos
# data file's directory
dataDir /var/lib/taos
# temporary file's directory
tempDir /tmp/
隨后重啟服務(wù)古胆。
1.3 客戶端安裝配置TDEngine連接客戶端
詳見官方的建立連接,下載對(duì)應(yīng)的客戶端連接包筛璧,我的版本是2.4.0.20逸绎。解壓后進(jìn)入目錄,運(yùn)行腳本并配置
[SPAclient] $ ./install_client.sh
# 修改客戶端hosts文件將服務(wù)器的ip添加
[SPAclient] $ sudo nvim /etc/hosts
# 最后一行添加域名解析 ip server_domain
127.0.0.1 localhost
127.0.1.1 ubuntu
......
172.16.93.132 tdmain.server.com
[SPAclient] $ sudo nvim /etc/taos/taos.cfg
# 僅需修改firstEp項(xiàng)
firstEp tdmain.server.com:6030
[SPAclient] $ taos
# 發(fā)現(xiàn)成功連接上服務(wù)器數(shù)據(jù)庫(kù)
taos>
踩坑點(diǎn)
1夭谤、在服務(wù)器修改hostname之后重啟TDEngine發(fā)現(xiàn)啟動(dòng)失敗
[SPAserver] $ sudo systemctl start taosd
[SPAserver] $ sudo systemctl status taosd
● taosd.service - TDengine server service
Loaded: loaded (/etc/systemd/system/taosd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2022-05-18 01:44:49 PDT; 4s ago
Process: 2338 ExecStartPre=/usr/local/taos/bin/startPre.sh (code=exited, status=0/SUCCESS)
Process: 2344 ExecStart=/usr/bin/taosd (code=exited, status=1/FAILURE)
Main PID: 2344 (code=exited, status=1/FAILURE)
May 18 01:44:49 tdmain systemd[1]: taosd.service: Scheduled restart job, restart counter is at 3.
May 18 01:44:49 tdmain systemd[1]: Stopped TDengine server service.
May 18 01:44:49 tdmain systemd[1]: taosd.service: Start request repeated too quickly.
May 18 01:44:49 tdmain systemd[1]: taosd.service: Failed with result 'exit-code'.
May 18 01:44:49 tdmain systemd[1]: Failed to start TDengine server service.
官方文檔的集群部署中提示:
因?yàn)?FQDN 的信息會(huì)寫進(jìn)文件棺牧,如果之前沒有配置或者更改 FQDN,且啟動(dòng)了 TDengine朗儒。請(qǐng)一定在確保數(shù)據(jù)無用或者備份的前提下颊乘,清理一下之前的數(shù)據(jù)(rm -rf /var/lib/taos/*);
[SPAserver] $ sudo rm -rf /var/lib/taos/*
[SPAserver] $ sudo systemctl start taosd
2 配置服務(wù)器fwknop保護(hù)數(shù)據(jù)庫(kù)端口
fwknop的服務(wù)器端與客戶端安裝配置及測(cè)試詳見我的上一篇博客http://www.reibang.com/p/190daacf9e6b
2.1 服務(wù)器配置iptables規(guī)則
客戶端進(jìn)行數(shù)據(jù)庫(kù)連接醉锄,使用wireshark進(jìn)行抓包乏悄,結(jié)果如下:
發(fā)現(xiàn)其建立連接使用UDP協(xié)議,連接服務(wù)器的6030端口榆鼠,因此服務(wù)器端配置如下規(guī)則:
[SPAserver] $ sudo iptables -I INPUT 1 -i ens33 -p udp --dport 6030 -j DROP
[SPAserver] $ sudo iptables -I INPUT 1 -i ens33 -p udp --dport 6030 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
此時(shí)客戶端發(fā)起連接發(fā)現(xiàn)連接失敻侔帧:
2.2 客戶端生成秘鑰實(shí)現(xiàn)敲門
# 其中客戶端ip為172.16.93.131亥鸠,服務(wù)器端ip為172.16.93.132
[SPAclient] $ fwknop -A udp/6030 -a 172.16.93.131 -D 172.16.93.132 -p 62201 -P udp --key-gen --use-hmac --save-rc-stanza
# 生成文件~/.fwknoprc妆够,并根據(jù)此文件配置服務(wù)器的fwknop規(guī)則
[SPAserver] $ sudo vim /etc/fwknop/access.conf
# 替換其中的 KEY_BASE64 和 HMAC_KEY_BASE64
# 服務(wù)器端啟動(dòng)fwknopd
[SPAserver] $ sudo fwknopd start
# 客戶端發(fā)送敲門數(shù)據(jù)包
[SPAclient] $ fwknop -n 172.16.93.132
# 發(fā)送敲門數(shù)據(jù)包后再連接服務(wù)器的TDEngine數(shù)據(jù)庫(kù)
[SPAclient] $ taos
敲門后連接結(jié)果如下圖:
3 遷移至公網(wǎng)服務(wù)器(服務(wù)器ip用server_ip代替)
1、服務(wù)器的TDEngine和fwknop配置同第一節(jié)和上一篇博客负蚊。
2神妹、現(xiàn)在大多的云服務(wù)器都配有安全組策略,因此需要開放安全組6030-6042端口的tcp和udp協(xié)議(TDEngine端口)家妆,并且開放安全組62201端口的udp協(xié)議(fwknop監(jiān)聽端口鸵荠,如果修改過fwknop配置則根據(jù)自己情況更改)。
3伤极、客戶端配置服務(wù)器FQDN蛹找,我這里配置的域名是HWCtd.server.com,因此在/etc/hosts
文件中添加server_ip HWCtd.server.com
哨坪,其中server_ip用自己的服務(wù)器公網(wǎng)ip代替庸疾,在/etc/taos/taos.cfg
中修改firstEp HWCtd.server.com:6030
。
4当编、客戶端生成敲門配置文件届慈,并配置服務(wù)器fwknopd:
[SPAclient] $ fwknop -A udp/6030 -R -D server_ip -p 62201 -P udp --key-gen --use-hmac --save-rc-stanza
# 生成文件~/.fwknoprc,次命令中沒有規(guī)定客戶端的ip,但使用了-R參數(shù)金顿,其作用
# 是讓fwknop客戶端通過公網(wǎng)服務(wù)器讀取客戶端所屬公網(wǎng)IP臊泌,因此使用此配置文件
# 進(jìn)行敲門時(shí),服務(wù)器會(huì)自動(dòng)將客戶端的公網(wǎng)ip設(shè)為準(zhǔn)入ip揍拆,而無需客戶端自己設(shè)置
# SPA包中的準(zhǔn)入ip渠概,其中的server_ip為服務(wù)器公網(wǎng)ip或者服務(wù)器域名
[SPAserver] $ sudo vim /etc/fwknop/access.conf
# 根據(jù)客戶端的配置文件,替換access.conf中的 KEY_BASE64 和 HMAC_KEY_BASE64
5嫂拴、根據(jù)第二節(jié)中配置服務(wù)器的iptables高氮,并且啟動(dòng)fwknopd進(jìn)程,即可實(shí)現(xiàn)端口保護(hù)和通過敲門安全訪問TDEngine數(shù)據(jù)庫(kù)顷牌。
踩坑點(diǎn)
1剪芍、我租的華為云服務(wù)器默認(rèn)的是arm64架構(gòu)的處理器,因此安裝TDEngine需要使用源碼編譯窟蓝。下載地址中查找aarch64罪裹,尋找自己需要的版本下載,我下載的是TDengine-server-2.4.0.20-Linux-aarch64.tar.gz运挫。