Centos7下安裝InfluxDB教程


1.安裝

復制代碼
(1) 創建安裝目錄
mkdir /usr/local/influxdb/

(2) 將 influxdb-1.7.10.x86_64.rpm復制到安裝目錄下

(3) 安裝
cd /usr/local/influxdb/
yum localinstall influxdb-1.7.10.x86_64.rpm

(4) 環境准備
mkdir -p /data/influxdb
chmod -R 777 /data
復制代碼

 或者:

  # wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm

  # sudo yum localinstall influxdb-1.7.8.x86_64.rpm

包文件路徑

復制代碼
/usr/bin下
influxd    influxdb服務器
influx      influxdb命令行客戶端
influx_inspect  查看工具
influx_stress  壓力測試工具
influx_tsm  數據庫轉換工具(將數據庫從b1或bz1格式轉換為tsm1格式)

/var/lib/influxdb/下
data  存放最終存儲的數據,文件以.tsm結尾
meta  存放數據庫元數據
wal  存放預寫日志文件

/var/log/influxdb下
influxd.log  日志文件

/etc/influxdb下
influxdb.conf  配置文件

/var/run/influxdb/
influxd.pid  PID文件
復制代碼

修改配置文件

復制代碼
(1)    備份配置文件
cp /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.default

(2)    修改配置
vi /etc/influxdb/influxdb.conf
找到如下配置並修改或取消注釋:
[meta]
dir = "/data/influxdb/meta"
[data]
dir = "/data/influxdb/data"
wal-dir = "/data/influxdb/wal"
復制代碼

 常用命令

啟動服務    systemctl start influxd
停止服務    systemctl stop influxd
重啟服務    systemctl restart influxd

 檢查是否已啟動influxdb數據庫

ps aux | grep influx;

 

2.啟動
#啟動
sudo systemctl start influxdb

#配置開機啟動
sudo systemctl enable influxdb

3.防火牆配置
#開放端口
# firewall-cmd --add-port=8086/tcp --permanent

#重載防火牆配置
# firewall-cmd --reload

4.啟動cli命令
[root@localhost grafana]# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
>

5.配置用戶和數據庫
創建用戶
> CREATE USER dolphin WITH PASSWORD 'dolphininfluxpwd' WITH ALL PRIVILEGES

查詢用戶
> SHOW USERS
user admin
---- -----
influx true
dolphin true
>

創建數據庫
> CREATE DATABASE dolphin

查詢數據庫
> SHOW DATABASES
name: databases
name
----
_internal
dolphin
>

6.插入數據與查詢數據
1.database
數據庫,和mysql的數據庫相比,沒有太大的歧義

2.measurement
對比的是mysql中的table,從實際體驗來看,兩個之間最明顯的區別在於沒有單獨的創建measurement的方法,直接新增一條數據時,若measurement不存在,則直接創建並插入一條數據

3.Point
這個對比的是mysql中的record,在influxDB中,表示每個表中,某個時刻,滿足某個條件的filed數據(簡單來說就是 timestamp + tag + filed)的組成一個point

timestamp : 時間戳,ns單位,每個記錄都必然有這個屬性,沒有顯示添加時,默認給一個。(納秒,1s=1000ms 1ms=1000us 1us=1000ns)
tag: 標簽,kv結構,在database中, tag + measurement 一起構建索引
參與索引創建,因此適合作為查詢的過濾條件
tag的數據量不要太多,最好能有典型的辨別性(和mysql的建立索引的原則差不多)
value為String類型
tag是可選的,在measurement不設置tag也是ok的
field:存儲數據,kv結構
數據類型為: long, String, boolean, float
4. Series
Series: tag key 與tag value的唯一組合

在insert執行語句中,tag與tag、field與field之間用都好進行分割,tag與field之間用空格分割
tag的value都是,String類型,不需要加雙引號
field的String類型數據,需要放在雙引號中,否則會報錯
如果需要顯示添加時間戳,在filed后添加空格,再添加時間戳

格式

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

插入

> USE dolphin
Using database dolphin

插入數據(host是tag,load,usage是filed)
> INSERT cpu,host=192.168.1.1 load=0.1,usage=0.2
> INSERT cpu,host=192.168.1.2 load=0.2,usage=0.3
> INSERT cpu,host=192.168.1.3 load=0.6,usage=0.7

插入相同時間數據(tagkey1,tagkey2是tag,fieldkey1,fieldkey2是filed;tag的value都是,String類型,不需要加雙引號
field的String類型數據,需要放在雙引號中,否則會報錯)
> insert table2,tagkey1=1,tagkey2=a fieldkey1=11,fieldkey2="aa" 1581771014614699790
> insert table2,tagkey1=2,tagkey2=a fieldkey1=11,fieldkey2="aa" 1581771014614699790
> select * from table2
name: table2
time fieldkey1 fieldkey2 tagkey1 tagkey2
---- --------- --------- ------- -------
1581771014614699790 11 aa 1 a
1581771014614699790 11 aa 2 a

查詢數據全部數據
> SELECT * FROM "cpu"
name: cpu
time host load usage
---- ---- ---- -----
1581756324805070467 192.168.1.1 0.1 0.2
1581756335749318117 192.168.1.2 0.2 0.3
1581756346893987133 192.168.1.3 0.6 0.7

# 篩選條件
> SELECT "host","load","usage" FROM "cpu" WHERE "host" = '192.168.1.1'
name: cpu
time host load usage
---- ---- ---- -----
1581756324805070467 192.168.1.1 0.1 0.2

# 范圍
> SELECT "host","load","usage" FROM "cpu" WHERE "usage" > 0.3
name: cpu
time host load usage
---- ---- ---- -----
1581756346893987133 192.168.1.3 0.6 0.7
>

其它
# 創建數據庫
CREATE DATABASE "db_name"
# 顯示所有數據庫
SHOW DATABASES
# 刪除數據庫
DROP DATABASE "db_name"

# 使用數據庫
USE mydb
# 顯示該數據庫中的表
SHOW MEASUREMENTS
# 刪除表
DROP MEASUREMENT "t_name"

7.HTTP API
7.1 創建數據庫
[root@localhost ~]# curl -i -XPOST http://172.16.159.132:8086/query --data-urlencode "q=CREATE DATABASE cctestdb"
HTTP/1.1 200 OK
Content-Type: application/json
Request-Id: 2ac0248e-4fd0-11ea-801e-000c29c94ec8
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.7.8
X-Request-Id: 2ac0248e-4fd0-11ea-801e-000c29c94ec8
Date: Sat, 15 Feb 2020 08:50:07 GMT
Transfer-Encoding: chunked

{"results":[{"statement_id":0}]}
[root@localhost ~]#

7.2 插入數據
#寫入單條
curl -i -XPOST http://172.16.159.132:8086/write?db=cctestdb --data-binary "cpu,host=192.168.1.3 load=0.1,usage=0.33"

curl -i -XPOST http://172.16.159.132:8086/write?db=cctestdb --data-binary "cpu,host=192.168.1.3 load=0.1,usage=0.33 6666666666666666666"

#寫入多條
curl -i -XPOST http://172.16.159.132:8086/write?db=cctestdb --data-binary "cpu,host=192.168.1.2 load=0.1,usage=0.22 1666666666666666661
cpu,host=192.168.1.3 load=0.1,usage=0.33 1666666666666666663
cpu,host=192.168.1.2 load=0.2,usage=0.22 1666666666666666664
cpu,host=192.168.1.3 load=0.2,usage=0.33 1666666666666666665"

7.3查詢數據
[root@localhost ~]# curl -G http://172.16.159.132:8086/query?db=cctestdb --data-urlencode "q=SELECT * FROM \"cpu\""
{"results":[{"statement_id":0,"series":[{"name":"cpu","columns":["time","host","load","usage"],"values":[["2020-02-15T08:52:00.039671928Z","192.168.1.3",0.1,0.33],["2022-10-25T02:57:46.666666661Z","192.168.1.2",0.1,0.22],["2022-10-25T02:57:46.666666661Z","192.168.1.3",0.1,0.33],["2022-10-25T02:57:46.666666662Z","192.168.1.2",0.2,0.22],["2022-10-25T02:57:46.666666662Z","192.168.1.3",0.2,0.33],["2022-10-25T02:57:46.666666663Z","192.168.1.3",0.1,0.33],["2022-10-25T02:57:46.666666664Z","192.168.1.2",0.2,0.22],["2022-10-25T02:57:46.666666665Z","192.168.1.3",0.2,0.33],["2181-04-04T11:51:06.666666666Z","192.168.1.3",0.1,0.33]]}]}]}
[root@localhost ~]#

8.配置http賬號密碼
1 創建賬號

創建用戶
> CREATE USER dolphin WITH PASSWORD 'dolphininfluxpwd' WITH ALL PRIVILEGES

查詢用戶
> SHOW USERS
user admin
---- -----
influx true
dolphin true
>

2 配置`http密碼訪問。 auth-enabled = true
vim /etc/influxdb/influxdb.conf

[http]
auth-enabled = true

3.1cli終端賬號密碼登錄

[root@localhost grafana]# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> auth
username: dolphin
password:
> show databases;
name: databases
name
----
_internal
dolphin
cctestdb
itemdata
>


3.2http賬號密碼登錄,-u dolphin:dolphininfluxpwd

# curl -i -XPOST http://172.16.159.132:8086/write?db=dolphin -u dolphin:dolphininfluxpwd --data-binary "itemdatas,value=100, 1581772819000000000"

參考文檔
《CentOS 7下InfluxDB部署與使用入門》:https://cloud.tencent.com/developer/article/1333874
《influxDB基本概念小結》:https://www.cnblogs.com/yihuihui/p/9374561.html


參考鏈接:https://blog.csdn.net/CleverCode/java/article/details/104329925

參考網址:

https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10.x86_64.rpm

https://s0docs0influxdata0com.icopy.site/influxdb/v1.7

https://www.linuxdaxue.com/influxdb-study-series-manual.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM