InfluxDB(官方使用说明)
安裝InfluxDB OSS
此頁面提供有關安裝,啟動和配置InfluxDB的說明。
InfluxDB OSS安裝要求
root為了成功完成,需要安裝InfluxDB軟件包或具有管理員權限。
InfluxDB OSS網絡端口
InfluxDB默認使用以下網絡端口:
- TCP端口8086用于通過InfluxDB的HTTP API進行客戶端 - 服務器通信
- TCP端口8088用于RPC服務以進行備份和還原
除了上面的端口,InfluxDB還提供了多個可能需要自定義端口的插件。可以通過配置文件修改所有端口映射,配置文件位于/etc/influxdb/influxdb.conf默認安裝位置。
網絡時間協議(NTP)
InfluxDB使用主機的UTC本地時間為數據分配時間戳并用于協調目的。使用網絡時間協議(NTP)同步主機之間的時間;?如果主機的時鐘與NTP不同步,寫入InfluxDB的數據的時間戳可能不準確。
安裝InfluxDB OSS
對于不想安裝任何軟件并準備使用InfluxDB的用戶,您可能需要查看我們的?托管主機InfluxDB產品。
Ubuntu和DebianRed Hat&CentOSSLES&openSUSEFreeBSD / PC-BSDmacOS
有關如何從文件安裝Debian軟件包的說明,請參閱?下載頁面。
Debian和Ubuntu用戶可以使用apt-get包管理器安裝最新的穩定版本的InfluxDB?。
對于Ubuntu用戶,使用以下命令添加InfluxData存儲庫:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list對于Debian用戶,添加InfluxData存儲庫:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/os-release test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list然后,安裝并啟動InfluxDB服務:
sudo apt-get update && sudo apt-get install influxdb sudo service influxdb start或者,如果您的操作系統使用的是systemd(Ubuntu 15.04 +,Debian 8+):
sudo apt-get update && sudo apt-get install influxdb sudo systemctl unmask influxdb.service sudo systemctl start influxdb配置InfluxDB OSS
系統具有每個配置文件設置的內部默認值。使用該influxd config命令查看默認配置設置。
本地配置文件(/etc/influxdb/influxdb.conf)中的大多數設置都被注釋掉了;?所有注釋掉的設置將由內部默認值確定。本地配置文件中的任何未注釋的設置都會覆蓋內部默認值。請注意,本地配置文件不需要包含每個配置設置。
有兩種方法可以使用您的配置文件啟動InfluxDB:
-
使用以下-config?選項將進程指向正確的配置文件:
influxd -config /etc/influxdb/influxdb.conf -
將環境變量設置為INFLUXDB_CONFIG_PATH配置文件的路徑并啟動該過程。例如:
echo $INFLUXDB_CONFIG_PATH /etc/influxdb/influxdb.confinfluxd
InfluxDB首先檢查-config選項,然后檢查環境變量。
有關更多信息,請參閱配置文檔。
數據和WAL目錄權限
確保存儲數據和預寫日志(WAL)的目錄對于運行該influxd服務的用戶是可寫的。
注意:如果數據和WAL目錄不可寫,則influxd服務將無法啟動。
有關data和wal目錄路徑的信息,請參閱配置InfluxDB文檔的數據設置部分。
在AWS上托管InfluxDB OSS
InfluxDB的硬件要求
我們建議使用兩個SSD卷,一個用于influxdb/wal另一個用于influxdb/data。根據您的負載,每個卷應具有大約1k-3k的預配置IOPS。該influxdb/data卷應該有更多的磁盤空間低IOPS和influxdb/wal容量應該有更少的磁盤空間,具有較高的IOPS。
每臺機器應至少有8G RAM。
我們已經看到了R4類機器的最佳性能,因為它們提供的內存比C3 / C4類和M4類都要多。
配置InfluxDB OSS實例
此示例假定您使用的是兩個SSD卷并且已正確裝入它們。此示例還假定每個卷都安裝在/mnt/influx和/mnt/db。有關如何執行此操作的詳細信息,請參閱有關如何向您的實例添加卷的Amazon文檔。
配置文件
您必須為每個InfluxDB實例更新配置文件。
...[meta]dir = "/mnt/db/meta"......[data]dir = "/mnt/db/data"... wal-dir = "/mnt/influx/wal"......[hinted-handoff]... dir = "/mnt/db/hh"...InfluxDB OSS權限
在InfluxDB數據和配置中使用非標準目錄時,還要確保正確設置文件系統權限:
chown influxdb:influxdb /mnt/influx chown influxdb:influxdb /mnt/db----------------------------------------------------------
---------------------------------------------------------- ---------------------------------------------------------- ---------------------------------------------------------- ---------------------------------------------------------- ----------------------------------------------------------
InfluxDB OSS入門
安裝?InfluxDB后,您就可以開始做一些很棒的事了。在本節中,我們將使用influx?命令行界面(CLI),它包含在所有InfluxDB包中,是一種輕量級且簡單的與數據庫交互的方式。CLI?8086默認通過端口向InfluxDB HTTP API發出請求,直接與InfluxDB通信。
注意:也可以通過生成原始HTTP請求來使用數據庫。有關應用程序的?示例,請參閱編寫數據和查詢數據curl。
創建數據庫
如果您已在本地安裝InfluxDB,則該influx命令應通過命令行提供。執行influx將啟動CLI并自動連接到本地InfluxDB實例(假設您已經啟動了服務器service influxdb start或influxd直接運行)。輸出應如下所示:
$ influx -precision rfc3339 Connected to http://localhost:8086 version 1.4.x InfluxDB shell 1.4.x >筆記:
- InfluxDB HTTP API?8086默認在端口上運行。因此,influx將連接到端口8086和localhost默認。如果您需要更改這些默認值,請運行influx --help。
- 該-precision參數指定任何返回的時間戳的格式/精度。在上面的示例中,rfc3339告訴InfluxDB以RFC3339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)返回時間戳。
現在,命令行已準備好以Influx查詢語言(又稱InfluxQL)語句的形式獲取輸入。要退出InfluxQL shell,請鍵入exit并單擊return。
全新安裝的InfluxDB沒有數據庫(除了系統_internal),因此創建一個是我們的首要任務。您可以使用CREATE DATABASE <db-name>InfluxQL語句創建數據庫,其中<db-name>是您要創建的數據庫的名稱。只要字符串是雙引號,數據庫的名稱就可以包含任何unicode字符。如果名稱僅包含ASCII字母,數字或下劃線且不以數字開頭,則也可以不加引號。
在本指南中,我們將使用數據庫名稱mydb:
> CREATE DATABASE mydb >注意:按?Enter鍵后,將出現一個新提示,并且不顯示任何其他提示。在CLI中,這意味著語句已執行且沒有要顯示的錯誤。如果出現問題,將始終顯示錯誤。沒有消息就是好消息!
現在mydb已經創建了數據庫,我們將使用該SHOW DATABASES語句顯示所有現有數據庫:
> SHOW DATABASES name: databases --------------- name _internal mydb >注:該_internal數據庫中創建和使用InfluxDB存儲內部運行指標。稍后再查看以了解InfluxDB如何在幕后執行。
SHOW DATABASES與之不同,大多數InfluxQL語句必須針對特定數據庫運行。您可以使用每個查詢顯式命名數據庫,但CLI提供了一個便捷語句,USE <db-name>它將自動為將來的所有請求設置數據庫。例如:
> USE mydb Using database mydb >現在,將來的命令只會針對mydb數據庫運行。
編寫和探索數據
現在我們有了一個數據庫,InfluxDB已準備好接受查詢和寫入。
首先,在數據存儲區上的簡短入門。InfluxDB中的數據按“時間序列”進行組織,其中包含測量值,如“cpu_load”或“temperature”。時間序列為零到多points,每個離散的度量樣本一個。點由time(時間戳),a?measurement(例如“cpu_load”),至少一個鍵值field(測量值本身,例如“值= 0.64”或“溫度= 21.2”)和零到多鍵組成-value?tags包含有關該值的任何元數據(例如“host = server01”,“region = EMEA”,“dc = Frankfurt”)。
從概念上講,您可以將a?measurement視為一個SQL表,其中主索引始終是時間。?tags并且fields是表中的有效列。?tags被索引,而fields不是。不同之處在于,使用InfluxDB,您可以進行數百萬次測量,您不必預先定義模式,也不會存儲空值。
使用線路協議將點寫入InfluxDB,其遵循以下格式:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]以下幾行都是可以寫入InfluxDB的點的示例:
cpu,host=serverA,region=us_west value=0.64 payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230 stock,symbol=AAPL bid=127.46,ask=127.48 temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000注意:有關線路協議的更多信息,請參見“?語法”頁面。
要使用CLI將單個時間序列數據點插入InfluxDB,請輸入INSERT后跟一個點:
> INSERT cpu,host=serverA,region=us_west value=0.64 >測量名稱為cpu和標記的點host,region現在已經寫入數據庫,測量value值為0.64。
現在我們將查詢剛才寫的數據:
> SELECT "host", "region", "value" FROM "cpu" name: cpu --------- time host region value 2015-10-21T19:28:07.580664347Z serverA us_west 0.64 >注意:在編寫我們的觀點時,我們沒有提供時間戳。如果沒有為某個點提供時間戳,InfluxDB會在獲取該點時分配本地當前時間戳。這意味著您的時間戳會有所不同。
讓我們嘗試存儲另一種類型的數據,在同一測量中有兩個字段:
> INSERT temperature,machine=unit42,type=assembly external=25,internal=37 >要使用查詢返回所有字段和標記,您可以使用*運算符:
> SELECT * FROM "temperature" name: temperature ----------------- time external internal machine type 2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly >警告:在大型數據庫上使用*不帶LIMIT子句可能會導致性能問題。您可以使用Ctrl+C取消響應時間過長的查詢。
InfluxQL有許多功能和關鍵字,這里沒有涉及,包括對Go風格的正則表達式的支持。例如:
> SELECT * FROM /.*/ LIMIT 1 -- > SELECT * FROM "cpu_load_short" -- > SELECT * FROM "cpu_load_short" WHERE "value" > 0.9這就是將數據寫入InfluxDB并進行查詢所需要知道的全部內容。要了解有關InfluxDB寫入協議的更多信息,請查看寫入數據指南。要進一步探索查詢語言,請查看查詢數據指南。有關InfluxDB概念的更多信息,請查看“?關鍵概念”頁面。
?
?轉載于:https://www.cnblogs.com/zouhao/p/9865073.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的InfluxDB(官方使用说明)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到男友出轨是什么意思
- 下一篇: 启用或禁用对 Exchange Serv