可視化工具Grafana:簡介及安裝


 

隨着業務的越發復雜,對軟件系統的要求越來越高,這意味着我們需要隨時掌控系統的運行情況。因此,對系統的實時監控以及可視化展示,就成了基礎架構的必須能力。

這篇博客,介紹下開源的可視化套件grafana的安裝及其功能特點。。。

官網地址:Grafana

官方文檔:Grafana文檔

 

環境:CentOS7.4 64位

Grafana版本:5.3.2

一、Grafana介紹

Grafana是一個跨平台的開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示,並及時通知。它主要有以下六大特點:

1、展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖表等多種展示方式;

2、數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3、通知提醒:以可視方式定義最重要指標的警報規則,Grafana將不斷計算並發送通知,在數據達到閾值時通過Slack、PagerDuty等獲得通知;

4、混合展示:在同一圖表中混合使用不同的數據源,可以基於每個查詢指定數據源,甚至自定義數據源;

5、注釋:使用來自不同數據源的豐富事件注釋圖表,將鼠標懸停在事件上會顯示完整的事件元數據和標記;

6、過濾器:Ad-hoc過濾器允許動態創建新的鍵/值過濾器,這些過濾器會自動應用於使用該數據源的所有查詢。

 

二、下載安裝

1、下載

官網下載地址:Grafana

安裝指南:Grafana安裝指南

根據自己的系統版本和配置,下載對應的包,官方提供了如下說明,可直接按照說明進行下載:

2、啟動

下載安裝完成后,輸入命令 service grafana-server start 啟動服務,打開瀏覽器,輸入IP+端口,3000為Grafana的默認偵聽端口。

系統默認用戶名和密碼為admin/admin,第一次登陸系統會要求修改密碼,修改密碼后登陸,界面顯示如下:

 

三、Grafana使用方法

1、添加數據源

首先是添加數據源,點擊左上角的grafana圖標,示例如下:

PS:選擇influxdb作為數據源,需要在influxdb中創建該用戶以及對應的數據庫!

2、創建DashBoard

創建好數據源之后,就需要創建DashBoard(儀表盤),可以自定義,也可以導入你需要的儀表盤,官方提供了很多的可選儀表盤。

BashBoard地址:BashBoard

這里我選擇jmeter相關的儀表盤,選擇導入,示例如下:

①、搜索jmeter儀表盤

②、選擇對應的儀表盤ID

③、復制ID,填入導入界面

PS:導入時候需要選擇用戶組以及對應的數據庫!

④、展示儀表盤

PS:右上角可以選擇數據展示的時間段和刷新頻次!

 

以上即為Grafana的安裝及使用簡介,更多使用方式,請參考這里:Grafana入門。。。

 

轉載請注明出處,商用請征得作者本人同意,謝謝!!!

 

 

 

 

 

源:可視化工具Grafana:簡介及安裝

==============================================================================

 

http://39.108.181.119:3000/dashboard/db/zimbra-collaboration-system-dashboard

===================================================================================

開源監控利器grafana

 

前言:

做運維的很重要的基礎工作就是監控,之前都是統計數據入庫,然后前端js圖表插件出圖,費時費力,可定制性差

前幾天接觸到了ELK(logstash, elasticsearch, kibana)這套日志收集展示工具集,的確很方便,但是手頭沒有那么大的存儲啊

也不是所有的日志數據都需要,然后就發現了grafana + influxdb的解決方案

簡介:

先給出這兩個工具的官網

http://grafana.org/

http://influxdb.com/

建議各位看官先大體瀏覽下這兩個工具的介紹和文檔

grafana是前端展示界面,要放到apache或nginx下,不需要php環境奧

influxdb是一個時間序列的數據庫,你插入的每條數據會自動附加上兩個字段,一個時間,一個序列號(用來作為主鍵的)

ps: influxdb的0.8版本不支持centos 5,只能是centos6以上,所以centos5的還是用0.7的版本

安裝:

influxdb就一個rpm包,沒有其他依賴,是用go語言寫的,go發展很迅猛啊

influxdb會監聽4個端口

tcp        0      0 0.0.0.0:8099                0.0.0.0:*                   LISTEN      29458/influxdb
tcp        0      0 0.0.0.0:8083                0.0.0.0:*                   LISTEN      29458/influxdb
tcp        0      0 0.0.0.0:8086                0.0.0.0:*                   LISTEN      29458/influxdb
tcp        0      0 0.0.0.0:8090                0.0.0.0:*                   LISTEN      29458/influxdb

其中單機使用只需要用到兩個,另外兩個是分布式部署時采用的

8083 web管理端 http://ip:8083  用戶名和密碼都是 root

8086 api接口調用端

配置

grafana配置

重命名配置文件

mv config-sample.js config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// InfluxDB example setup (the InfluxDB databases specified need to exist)
datasources: {
   influxdb: {
     type: 'influxdb',
     url: "http://10.75.25.103:8086/db/directmessage",
     username: 'root',
     password: 'root',
   },
   grafana: {
     type: 'influxdb',
     url: "http://10.75.25.103:8086/db/grafana",
     username: 'root',
     password: 'root',
     grafanaDB: true
   },
},

 這里配置了兩個數據源,第一個是你要存儲的監控數據,第二個是grafana用的

當然了你需要提前在influxdb的界面里建立好這兩個庫(這里就不演示influxdb web界面的登陸和建庫操作了)

現在瀏覽器打開grafana

這個界面是我配置好的,你看到的樣子是黑色的官網上那個樣子,界面自帶黑白兩個主題

為了便於理解grafana的配置方法

這里要說明一下收集數據的過程,我用的python收集

從日志中收集了兩個字段 status和type

python腳本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python
# push log to influxdb on 10.75.25.103
 
import  time
from  influxdb  import  client as influxdb
 
host  =  '10.75.25.103'
port  =  8086
username  =  'root'
password  =  'root'
database  =  'directmessage'
 
db  =  influxdb.InfluxDBClient(host, port, username, password, database)
log_fn  =  '/data1/multimedia/logs/scribe.log'
 
=  open (log_fn)
f.seek( 0 , 2 )
while  True :
     line  =  f.readline()
     try :
         lines  =  line.split( '\t' )
         post_data = [( "name" , "multimedia" ),( "columns"  ,[ "status" "type" ]),( "points" ,[[lines[ 5 ], lines[ 6 ]]])]
         data  =  [
             { "name" : "multimedia" ,
              "columns"  : [ "status" "type" ],
              "points"  : [[lines[ 5 ], lines[ 6 ]]]
 
             }
         ]
         db.write_points(data)
     except :
         f.close()
         =  open (log_fn)
         f.seek( 0 , 2 )
         time.sleep( 5 )

 influxdb提供了python的模塊,用pip安裝即可,如果不覺得麻煩也可以用shell的curl

下面是grafana最主要的配置項,其余自己摸索下就可以了

如果grafana的config.js配置沒問題,點擊輸入框會自動提示字段的

這里就相當於你要展示那些字段,類似sql語法

第一個multimedia是python腳本中的name,相當於mysql中的表

select后面的 count(type) 是你要在圖表中展示那些數據

后面的漏斗相當於 sql的where status = ‘succ'

group by time 60s 相當於你用cron一分鍾收集一次數據

后面的type 就是 group by type

好了其余都是頁面展示的微調。

收工。


免責聲明!

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



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