Docker學習系列3-Influxdb使用入門
1. 簡介:
Influxdb是一個開源分散式時序、事件和指標資料庫。使用Go 語言編寫,無需外部依賴。其設計目標是實現分散式和水平伸縮擴充套件。本文主要介紹在Docker環境下Influxdb的使用。
InfluxDB有三大特性:
1. Time Series (時間序列):你可以使用與時間有關的相關函式(如最大,最小,求和等)
2. Metrics(度量):你可以實時對大量資料進行計算
3. Eevents(事件):它支援任意的事件資料
特點
1. schemaless(無結構),可以是任意數量的列
2. Scalable
3. min, max, sum, count, mean,median 一系列函式,方便統計
4. Native HTTP API, 內建http支援,使用http讀寫
5. Powerful Query Language 類似sql
6. Built-in Explorer 自帶管理工具
2. Docker環境下安裝influxdb:
本文假設讀者已經安裝並配置好了Docker的執行環境,Docker daemon已經執行。如果要在Suse上安裝Docker,請參考文章Docker學習系列1-Suse安裝Docker來設定Docker執行環境。如果是其他Linux系統,請參考Docker官方文件進行安裝配置。
Influxdb最新版本是0.9,由於後續要和Cadvisor整合,Cadvisor不支援Influxdb的0.9版本,所以這裡使用0.8.8的映象
#docker pull tutum/influxdb:0.8.8
該命令執行成功後,使用docker images命令可以檢視下載的映象
#docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tutum/influxdb 0.8.8 8ef6d98dafde 12 weeks ago 279.9 MB
到此,influxdb就安裝完成了,是不是很簡單?
3. Docker環境下執行influxdb:
#docker run -d -p 8083:8083 -p8086:8086 --expose 8090 --expose 8099 --name influxsrv tutum/influxdb:0.8.8
各個引數含義:
-d:容器在後臺執行
-p:將容器內埠對映到宿主機埠,格式為 宿主機埠:容器內埠;8083是influxdb的web管理工具埠,8086是influxdb的HTTP API埠
--expose:可以讓容器接受外部傳入的資料
--name:容器名稱
最後是映象名稱+tag,映象為tutum/influxdb,tag的值0.8.8指定了要執行的版本,預設是latest。
4. influxdb使用入門
步驟3啟動influxdb後,influxdb會啟動一個內部的HTTP server管理工具,使用者可以通過接入該web伺服器來操作influxdb。當然,也可以通過CLI即命令列的方式訪問influxdb。開啟瀏覽器,輸入http://Host_IP:8083,訪問管理工具的主頁:
輸入使用者名稱root,密碼root,點選Connect
連線到influxdb後,可以新建一個Database,這裡已經新建了一個名為cadvisor的資料庫,點選Explore Data:
在Data Interface介面,使用者可以從influxdb查詢資料,或向influxdb寫入資料。首先執行寫入資料,在Time Series Name欄位輸入test,Values欄位輸入{"testDuration":22},返回200OK說明寫入資料成功。將22修改為其他值,執行多次寫入。
可以查詢資料庫中包含的所有Series:list series
從名為test的series查詢資料:select * from test。查詢結果會列出test中的所有資料點,並以時序圖表的形式呈現給使用者。
Influxdb的入門就介紹到這裡,Influxdb自帶的web管理工具的功能非常有限,下一篇文章會介紹一個專門與Influxdb相結合,顯示圖表的強大前端工具,敬請期待!