influxDB+Grafana初體驗

以前在公司的時候,查看某些接口的負載以及訪問頻率等情況會用到grafana這個很好的後臺UI控件。操做起來非常方便,因而趁着假期,也來簡單學習一下,過程當中遇到了挺多的坑,順便填一下,方便後來人。mysql

簡要概述

influxdb是一個目前來講比較流行的時間序列數據庫。通俗來說,就是以時間線貫連相通的數據庫。 提及來可能有點不太容易理解,我我的以爲對比學習多是一個更好的學習方法。下面按我本身的理解來描述下,說得不恰當的地方,歡迎批評指正。web

  • 日常咱們使用的關係型數據庫,規格嚴謹,格式統一。能夠想象成是:301倉庫(數據庫名稱)218房間(表名),中的一排排貨架(表記錄),這就是關係型數據庫的典型的格式了。而相對sql

  • 對於時間序列數據庫,也還算比較相似。其還算比較完善的類SQL語法,給它加分很多,開發者只須要記憶少許的關鍵名詞,就能夠很好的使用了。時間序列數據庫的形式能夠這麼想象: 301管線(數據庫名稱) 中包裹了不少條電路線(measurements,能夠認爲是關係型數據庫的表名), 由一個個**點(Points)**組成。數據庫

提及來是點,其實有點寬泛。剖開來看,點的組成有下面這些內容:windows

  • 時間: 由influxDB自動生成。記錄着每條記錄(Points)的生成時間。
  • field: 字段,各類記錄的值。key-value的value爲數值型。
  • tags: 須要被添加索引的key-value。通常常常被查詢到的字段要設置爲tag。

還有一個特殊的名詞series,全部在influxDB數據庫中的數據,都須要經過圖表來表示,series表示這個表裏面的全部的數據能夠在圖標上畫成幾條線(線條的個數規則是由tags排列組合計算出來)。瀏覽器

環境

由於不想在本身的windows上再裝那麼多軟件了,因而就安裝在了Ubuntu服務器上。而後經過influxDB和Grafana自帶的web界面,使用HTTP連接進行操做就能夠了。bash

influxDB的安裝

在Ubutu上,包管理器的存在讓安裝influxDB變得很方便了。服務器

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.2_amd64.deb
sudo dpkg -i influxdb_1.0.2_amd64.deb
複製代碼

啓動influxDB服務。ide

service influxdb start
複製代碼

管理頁面

influxDB服務啓動後,有兩個比較特殊的端口須要瞭解一下,具體以下:學習

  • 8083: TCP port 8083 is used for InfluxDB’s Admin panel
  • 8086: TCP port 8086 is used for client-server communication over InfluxDB’s HTTP API

英文解釋的已經很清晰了,若是仍是嫌棄不理解,白話來說就是,8083是管理員操做influxDB的服務監聽端口,8086是經過HTTP(也就是web頁面)操做influxDB的服務監聽端口。

簡單操做

網上有太多的例子,我也不必在這重複造輪子,碼字。所以附上一個連接,就再也不過多描述了。

https://docs.influxdata.com/influxdb/v0.10/introduction/getting_started/

經過命令行

看完下面的截圖,順便聯想下mysql這種關係型數據庫的常見操做。基本上就沒什麼問題了

經過命令行操做influxdb

經過web頁面

若是是在本地開啓了influxdb服務,在有UI的狀況下,能夠經過輸入http://localhost:8086 來訪問web頁面來管理服務。由於我是在服務器上開的服務,因此本地經過瀏覽器輸入對應的IP就行。

經過web後臺操做influxdb數據庫

其餘的CRUD什麼的,就不說了。有興趣的,直接看官方文檔就好。https://docs.influxdata.com/influxdb/v0.10/guides/

安裝grafana

跟influxDB同樣,我仍是在個人服務器上安裝,而後在本地遠程訪問。在Ubuntu上的安裝方式以下:

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.6.3_amd64.deb 
sudo dpkg -i grafana_4.6.3_amd64.deb 
複製代碼

由於是GO語言編寫,沒有其餘的相關依賴,因此其餘OS的安裝方式也都很簡單,詳細能夠參考下方文檔。https://grafana.com/grafana/download

啓動grafana服務。

service grafana-server start
複製代碼

值得一提的是,執行這個命令最好不要在/root目錄下,由於日誌的須要,這些目錄可能會有限制,所以須要注意一下。

簡單應用grafana

服務啓動後,就能夠訪問以下連接進行管理了。http://localhost:3000 默認的用戶名密碼是admin,admin。由於我只在服務器上啓動了服務,因此我在本地須要使用ip的方式進行訪問。

添加DataSource

除了數據庫類型以及HTTP代理以外,其餘的按照本身的實際狀況進行填寫就好。填寫完畢能夠經過Save&Test進行測試。

添加DataSource

添加DashBoard

數據源添加完畢後,下一步就是讓數據以合適的形式顯示出來。所以就須要DashBoard。 官網(http://docs.grafana.org/guides/getting_started/)上也有詳細的教程,可是有些步驟用文字仍是稍顯蒼白。添加完合適的展現類型(Graph,Table等等)後,有可能你找不到對應的編輯數據源來展現數據。這裏填下坑,雙擊圖表的title,而後選擇edit便可。以下圖:

編輯圖表,展現數據

須要注意的是,有可能select的數據,沒能按照咱們所預期的樣子來進行展現,這個時候要考慮下,數據源內的數據是否是適合你選擇的DashBoard類型。其餘也就沒什麼問題了。

總結

原本打算,使用InfluxDB寫一個TODO list,後來發現這個場景並不適合。而後就簡單的學習了下相關的內容,很淺。不過也算是填補一下知識的一塊短板吧。多瞭解點,總歸是沒錯的。

淺知拙見,寫的不恰當的地方,還望批評指正,多多指教下。

相關文章
相關標籤/搜索