這是最好的時代胳喷,也是最壞的時代夭织,更是一個看臉的時代尊惰。
——查爾斯高 · 帥
顏值即真理,顏值即正義题禀,在軟件的世界也不例外迈嘹。
今天給大家介紹一款高顏值的監(jiān)控數(shù)據(jù)繪圖工具秀仲,華麗的外表以及強大的數(shù)據(jù)展現(xiàn)功能保證讓你對它一見鐘情,快速愛上它雁刷!
---------------我是圖很多的分割線------------
注:本文中引用圖片均來源于軟件的官方網(wǎng)站安券,更多美圖欣賞請移步http://grafana.org/
曾經(jīng)氓英,我們的監(jiān)控系統(tǒng)可能是長這樣的:
或者铝阐,長這樣:
今天我們要介紹的Grafana長這樣:
這樣:
這樣:
以及這樣:
下面就簡單給大家介紹一下Grafana的一些強大的feature。
豐富的繪圖功能
作為一個數(shù)據(jù)可視化工具最重要的當然是要有強大的繪圖功能
- 點擊螟凭、選擇區(qū)域進行時間軸的zoom in及zoom out 方便快速選擇時間區(qū)間
- 多Y軸
- 支持柱狀圖它呀、折線圖纵穿、點圖、餅圖淆院、表格等多種圖表
- 可以設置閾值土辩、對數(shù)刻度
- Y軸多種單位(字節(jié)、毫秒等等)
- 全屏查看或者編輯圖表
- 可以混合使用柱搂妻、線、點等方式繪圖
- 可以通過界面或者http api導出任何圖表為png圖片格式
強大的儀表盤(Dashboard)
- 輕松拖拽圖表逝嚎,改變行和圖表的寬度
- 當圖表數(shù)量眾多的時候可以通過搜索標題(title)或者標簽(tag)定位
- 模板化的儀表盤
- 腳本化的儀表盤详恼,可以保存為Json文檔昧互,快速保存、復制
- 可以通過 HTTP API 進行創(chuàng)建和更新
- 多種多樣的圖表類型
豐富的數(shù)據(jù)源支持
- Graphite
- InfluxDB
- Elasticsearch
- OpenTSDB
- CloudWatch
模板變量
試想如果我們有成千上萬的主機,每臺主機又有成百上千的監(jiān)控指標更扁,那么我們要配置無數(shù)的Dashboard浓镜,變量功能極大方便了我們配置監(jiān)控圖表
- metric的查詢中使用變量
- 圖表標題使用變量
- 函數(shù)參數(shù)可以使用變量
- 可以通過URL來給變量賦值
快速的時間范圍選擇
- 通過下拉按鈕快速選擇時間范圍
- 支持本地時間和UTC時間
- 設置自動刷新時間間隔
- 復雜的日期選擇膛薛,如最近x分鐘补鼻、小時辽幌、天,昨天虑润,上周的今天等等
豐富的插件(plugin)支持
Grafana.net提供了眾多特色插件支持
Grafana可以用在任何需要數(shù)據(jù)可視化的地方拳喻,如果有一天老板需要你做一份漂亮的業(yè)務數(shù)據(jù)圖表冗澈,你無需頭疼用什么繪圖庫去開發(fā)亚亲,你要做的僅僅是將業(yè)務數(shù)據(jù)稍作加工存入Grafana支持的DataSource,點幾下鼠標即可配制出一份完美的數(shù)據(jù)圖表肛响。
看到這里惜索,各位看官有沒有一點點心動呀巾兆? 光說不做不是筆者風格,下面來一起動動手蔫磨,給各位看官演示一下使用docker環(huán)境快速(預計小于20分鐘质帅,取決于您的網(wǎng)速)搭建一個demo留攒,來親自體驗一下grafana的魅力炼邀,后端的datasource(時序數(shù)據(jù)庫)使用graphite。
Grafana實戰(zhàn)演示
準備工作: 一臺接入網(wǎng)絡的筆記本洛退,Mac或者Windows兵怯,Linux當然是最好了(筆者的辦公電腦是Mac腔剂,所以就只演示Mac咯)。
Step 1: 安裝基礎軟件绪爸,包括如下幾個工具:
- Docker Engine宙攻, docker核心部分座掘,包括docker 的服務端進程以及客戶端工具
- Docker Machine ,可以讓你在非linux操作系統(tǒng)上(例如Mac丹墨、Windows)借助VM工具來安裝運行docker服務
- Docker Compose,一個用來定義和運行多個容器的管理工具
- VirtualBox. , 為Docker Machine提供虛機支持
在OSX上面可以使用homebrew來安裝
$ brew install docker
$ brew install docker-machine
$ brew install docker-compose
但是本文推薦使用官方的集成工具包 Docker Toolbox没酣,集成了如上所有的工具卵迂。訪問Docker官方網(wǎng)站來下載適合你的版本见咒。這些工具的安裝使用不在本文討論范圍內(nèi),因此請參考Docker官方文檔下翎。
筆者打算另外寫文章來討論docker相關(guān)問題视事,請隨時關(guān)注點融黑幫公眾號:)庆揩。
Step 2. 使用docker-machine創(chuàng)建一個docker host
Step 3:編寫 docker-compose.yml 文件订晌,內(nèi)容如下:
執(zhí)行啟動命令:
$ docker-compose up -d
docker-compose會根據(jù)yml文件自動pull對應的鏡像砌庄,并用指定參數(shù)啟動容器。安裝操作已做完肉迫,簡單吧稿黄?剩下的事情就是等待了喊衫,等待時間取決于你的網(wǎng)速。
Step 4: 等容器都啟動以后杆怕,查看docker-machine的IP地址族购,并訪問
$ docker-machine ip vm-grafana
192.168.99.100
接收數(shù)據(jù)的carbon-cache服務監(jiān)聽在tcp://192.168.99.100:2003
graphite-web服務監(jiān)聽在http://192.168.99.100:8000/
Grafana服務監(jiān)聽在http://192.168.99.100:3000
使用netcat(nc命令))以1秒為間隔發(fā)送一些20~30范圍內(nèi)的隨機數(shù)據(jù)(稱為metrics)給graphite,跟大多數(shù)時間序列數(shù)據(jù)庫(TSDB)類似陵珍,其數(shù)據(jù)格式包含三部分: metric key寝杖, metric value,timestamp互纯。 例如:
test.data 10 1467764049
模擬生成一些metrics發(fā)送給graphite:
$ while true; do echo "test.data $(($RANDOM%10+20)) $(date +%s)" | nc 192.168.99.100 2003; sleep 1; done
瀏覽器訪問grafana ?http://192.168.99.100:3000初始密碼admin/admin
添加數(shù)據(jù)源:
新建一個Dashboard瑟幕, 新建一個Panel留潦, 添加一個metric只盹,選擇剛剛我們加的test.data, ?Grafana 便繪制出圖表:
這里只用最最簡單、最最少的操作兔院,建立起一個Grafana的demo服務殖卑,如果你有興趣可以參考官方文檔,深入探索一下她更多更強大的功能坊萝。
TO Grafana:你是這個看臉世界的一股清流孵稽,還不是因為這個世界你最好看。
本文作者:高帥(點融黑幫)十偶,現(xiàn)任點融技術(shù)部DevOps一枚菩鲜,曾就職于阿里巴巴。