====== 安裝 InfluxDB Cluster ======
* CentOS 6.x x86_64 環境
* InfluxDB 0.10.x
* Hybrid node :
* infxnode1 : 140.92.143.36
* infxnode2 : 140.92.143.43
* infxnode3 : 140.92.143.86
===== 安裝 InfluxDB =====
* 建立 InfluxDB yum Repos
cat <
* 透過 yum 安裝
su - root
yum install influxdb
chkconfig influxdb on
servvice influxdb start
vi /etc/sysconfig/iptables
:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# InfluxDB
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8083 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8086 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8091 -j ACCEPT
:
service iptables reload
* 透過 http://[ip]:8083/ 就可以看到安裝後的基本操作管理網頁
* 透過 tail -f /var/log/influxdb/influxd.log 可以看到運行紀錄
===== InfluxDB Cluster 設定 =====
* 設定 /etc/hosts
vi /etc/hosts
:
140.92.143.36 infxnode1
140.92.143.43 infxnode2
140.92.143.86 infxnode3
* Node 1 :
vi /etc/influxdb/influxdb.conf
:
[meta]
enabled = true
:
bind-address = "infxnode1:8088"
http-bind-address = "infxnode1:8091"
:
[data]
enabled = true
[http]
:
bind-address = "infxnode1:8086"
rm -rf /var/lib/influxdb/*
service influxdb restart
* Node 2 :
service influxdb stop
vi /etc/influxdb/influxdb.conf
:
[meta]
enabled = true
:
bind-address = "infxnode2:8088"
http-bind-address = "infxnode2:8091"
:
[data]
enabled = true
[http]
:
bind-address = "infxnode2:8086"
vi /etc/default/influxdb
INFLUXD_OPTS="-join infxnode1:8091"
rm -rf /var/lib/influxdb/*
service influxdb start
* Node 3 :
service influxdb stop
vi /etc/influxdb/influxdb.conf
:
[meta]
enabled = true
:
bind-address = "infxnode3:8088"
http-bind-address = "infxnode3:8091"
:
[data]
enabled = true
[http]
:
bind-address = "infxnode3:8086"
vi /etc/default/influxdb
INFLUXD_OPTS="-join infxnode1:8091"
rm -rf /var/lib/influxdb/*
service influxdb start
===== 檢查與使用 =====
* 透過每一台的管理界面 Exp. http://140.92.143.86:8083/ 輸入 **SHOW SERVERS** 就可以看到目前 Cluster 的狀況
data_nodes
id http_addr tcp_addr
1 "infxnode1:8086" "infxnode1:8088"
3 "infxnode3:8086" "infxnode3:8088"
5 "infxnode2:8086" "infxnode2:8088"
meta_nodes
id http_addr tcp_addr
1 "infxnode1:8091" "infxnode1:8088"
2 "infxnode3:8091" "infxnode3:8088"
4 "infxnode2:8091" "infxnode2:8088"
===== 增加一個 Node =====
* 增加一個 Hybrid node :
* infxnode4 : 140.92.143.17
* 更新 node1 ~ node 4 /etc/hosts 內的定義, 設定 /etc/hosts
vi /etc/hosts
:
140.92.143.36 infxnode1
140.92.143.43 infxnode2
140.92.143.86 infxnode3
140.92.143.17 infxnode4
* 再來執行與 node2 ~ node3 的設定相同
===== 移除一個 Node =====
* 移除一個 Hybrid node :
* infxnode3 : 140.92.143.86
* 使用 influx CLI 操作
* 連入 influxdb cluster 其中一台 Exp. infxnode3
influx -database sysmon01 -host infxnode3 -port 8086
show servers
> show servers
name: data_nodes
----------------
id http_addr tcp_addr
3 infxnode3:8086 infxnode3:8088
5 infxnode2:8086 infxnode2:8088
7 localhost:8086 infxnode4:8088
10 infxnode1:8086 infxnode1:8088
11 infxnode5:8086 infxnode5:8088
name: meta_nodes
----------------
id http_addr tcp_addr
1 infxnode1:8091 infxnode1:8088
2 infxnode3:8091 infxnode3:8088
4 infxnode2:8091 infxnode2:8088
6 infxnode4:8091 infxnode4:8088
8 infxnode5:8091 infxnode5:8088
* 看到 indxnode3 在 data server id 是 3
drop data server 3
show servers
name: data_nodes
----------------
id http_addr tcp_addr
5 infxnode2:8086 infxnode2:8088
7 localhost:8086 infxnode4:8088
10 infxnode1:8086 infxnode1:8088
11 infxnode5:8086 infxnode5:8088
name: meta_nodes
----------------
id http_addr tcp_addr
1 infxnode1:8091 infxnode1:8088
2 infxnode3:8091 infxnode3:8088
4 infxnode2:8091 infxnode2:8088
6 infxnode4:8091 infxnode4:8088
8 infxnode5:8091 infxnode5:8088
* 這樣就移除掉 node3
===== 匯出與匯入 =====
* 匯出資料 Exp. 將 sysmon01 透過 infxnode3 匯出到 /root/sysmon01 目錄內
influxd backup -database sysmon01 -host infxnode3:8088 /root/sysmon01
ls -lt /root/sysmon01
[root@influxdb3 sysmon01]# ls -lt /root/sysmon01
總計 25700
-rw-r--r--. 1 root root 4326400 2016-03-22 18:58 sysmon01.default.00013.00
-rw-r--r--. 1 root root 8824320 2016-03-22 18:58 sysmon01.default.00003.00
-rw-r--r--. 1 root root 1161 2016-03-22 18:58 meta.00
* 清空 Influxdb Cluster node 內所有 /var/lib/influxdb/ 內資料檔案
service influxdb stop
rm -rf /var/lib/influxdb/*
* 在重新啟動 Influxdb Cluster
service influxdb start
* 關閉順序 node 5 4 3 2 1(為主要同步點)
* 啟動順訊 node 1(為主要同步點) 2 3 4 5
* 主要同步點各個 node 內 /etc/default/influxdb 設定, 本身不要設定
* 匯入資料 Exp. 將 /root/sysmon01 目錄內 sysmon01 備份資料匯入 infxnode3
influxd restore -database sysmon01 -datadir /var/lib/influxdb/data /root/sysmon01
chown -R influxdb:influxdb /var/lib/influxdb/*
===== 參考網址 =====
* https://influxdata.com/downloads/
* https://docs.influxdata.com/influxdb/v0.10/introduction/installation/#redhat-centos
* https://docs.influxdata.com/influxdb/v0.10/clustering/cluster_setup/
* https://docs.influxdata.com/influxdb/v0.9/guides/clustering/
* https://github.com/influxdata/influxdb/issues/5874
* https://github.com/influxdata/influxdb/issues/1471
* https://docs.influxdata.com/influxdb/v0.10/administration/backup_and_restore/
{{tag>influxdb database time-series}}