1. 程式人生 > >influxdb+grafana搭建業務監控平臺前篇-相關環境搭建

influxdb+grafana搭建業務監控平臺前篇-相關環境搭建

引言

在介紹具體的業務監控搭建之前還是現在介紹介紹influxdb和grafana。

時間序列資料庫

在開始介紹Influxdb之前先簡要介紹一下時間序列資料庫。

何謂時間序列資料庫?

什麼是時間序列資料庫,最簡單的定義就是資料格式裡包含Timestamp欄位的資料,比如某一時間環境的溫度,CPU的使用率等。但是,有什麼資料不包含Timestamp呢?幾乎所有的資料其實都可以打上一個Timestamp欄位。時間序列資料的更重要的一個屬性是如何去查詢它,包括資料的過濾,計算等等。

Influxdb

Influxdb是一個開源的分散式時序、時間和指標資料庫,使用go語言編寫,無需外部依賴。 它有三大特性:
  1. 時序性(Time Series):與時間相關的函式的靈活使用(諸如最大、最小、求和等);
  2. 度量(Metrics):對實時大量資料進行計算;
  3. 事件(Event):支援任意的事件資料,換句話說,任意事件的資料我們都可以做操作。
同時,它有以下幾大特點:
  1. schemaless(無結構),可以是任意數量的列;
  2. min, max, sum, count, mean, median 一系列函式,方便統計;
  3. Native HTTP API, 內建http支援,使用http讀寫;
  4. Powerful Query Language 類似sql;
  5. Built-in Explorer 自帶管理工具。

Influxdb安裝

本文使用的influxdb version是1.0.2 在講解具體的安裝步驟之前,先說說influxdb的兩個http埠:8083和8086
  • port 8083:管理頁面埠,訪問localhost:8083可以進入你本機的influxdb管理頁面;
  • port 8086:http連線influxdb client埠,一般使用該埠往本機的influxdb讀寫資料。
OS X
brew update
brew install influxdb

Docker Image
docker pull influxdb

Ubuntu & Debian
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.2_amd64.deb
sudo dpkg -i influxdb_1.0.2_amd64.deb

RedHat & CentOS
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2.x86_64.rpm
sudo yum localinstall influxdb-1.0.2.x86_64.rpm

Standalone Linux Binaries (64-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_amd64.tar.gz
tar xvfz influxdb-1.0.2_linux_amd64.tar.gz

Standalone Linux Binaries (32-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_i386.tar.gz
tar xvfz influxdb-1.0.2_linux_i386.tar.gz

Standalone Linux Binaries (ARM)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.2_linux_armhf.tar.gz
tar xvfz influxdb-1.0.2_linux_armhf.tar.gz

How to start? 安裝完之後,如何啟動呢?
sudo systemctl start influxdb

到這裡influxdb安裝啟動完成,可以訪問influxdb管理頁面:http://localhost:8083,該版本沒有登入使用者及密碼,可以自行設定讀寫的使用者名稱和密碼。

Grafana

granfana是一個open source的圖形化資料展示工具,可以自定義datasource,自定義報表、顯示資料等。

Grafana安裝

本文使用的Grafana版本是3.1.1 Ubuntu & Debian
wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.1.1-1470047149_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_3.1.1-1470047149_amd64.deb

Centos & Redhat
sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.1.1-1470047149.x86_64.rpm
sudo yum install initscripts fontconfig
sudo rpm -Uvh grafana-3.1.1-1470047149.x86_64.rpm

Mac
brew update
brew install grafana

Docker
docker run -i -p 3000:3000 grafana/grafana

How to start? 安裝完之後,如何啟動呢?(注:docker除外)
sudo service grafana-server start

啟動之後,訪問http://localhost:3000,可以訪問你本地搭的grafana了,使用者名稱跟密碼都是admin。接下來我會詳細講解一下grafana的配置,如何制定自己的datasource,制定自己的圖表。

Grafana Datasource及報表配置

Datasouurce配置:

  • 第一步,進入DataSources配置自己的DataSource:
  • 第二步,新增自己的datasouce並儲存:
給一個我新增的datasouce的demo以供參考,grafana支援多種資料庫,選擇哪種讀者視情況而定。
配置好datasource之後該回到dashboard配置自己的報表了。

報表配置

  • 建立自己的dashboard並儲存:

Settings可以配置dashboard的一些常用設定,比如名稱,等等,讀者可以自行研究配置。點選儲存的圖示,可以儲存,配置完dashboard之後可以配置在dashboard展示的圖表了。
  • 圖表配置:
第一步,新增圖表,點選dashboard頁面左邊的綠色小圖示,選擇Add Pannel -> Graph
第二步,新增圖表展示資料,實質上是新增一些datasouce的query:
照樣還是給一個我新增的query demo,僅供參考,讀者可以根據自己的實際情況新增自己的query:
第三步,儲存展示:

到現在為止,influxdb + grafana搭建完畢,資料也可以正確的展示。後續文章我會依次講解influxdb資料相關查詢以及具體的業務程式碼怎麼進行監控資料埋點