Grafana+InfluxDB 快速搭建酷炫的監控系統

前言

這一年一直在爲公司開發一個全網的新聞輿情爬蟲,隨着開發的逐步推動,一個高效直觀的監控系統便提上了日程,當時運維小姐姐使用Flask開發了一套監控系統,基於數據庫中每時每刻保存的爬蟲結果來展示監控的數據。每隔一段時間進行爬蟲抓取數量的彙報。git

可是逐漸的這套監控的弊端展示了出來。github

首先,不夠實時,我不能實時的知道程序是否發生了異常,是否爬蟲調度出現問題。docker

其次,數據不夠直觀,幾千個網站的抓取監控,在眼花繚亂的數據中,很難知道是否發生了異常。數據庫

可是運維小姐姐還有不少更重要的任務,因而進一步監控的計劃也就沒有繼續下去,這期間我一直是本身看日誌來查找錯誤。後端

好在及時遇到了Grafana+Influxdb這一套高效酷炫,開箱即用的監控系統。bash

InfluxDB

InfluxDB是一個由InfluxData開發的開源時序型數據庫。它基於Golang開發,着力於高性能地查詢與存儲時序型數據。InfluxDB被普遍應用於存儲系統的監控數據,IoT行業的實時數據等場景。服務器

Github: github.com/influxdata/…運維

官網: www.influxdata.com/products/in…函數

基本上InfluxDB的查詢於其餘的關係型數據庫很相似,很是容易上手。工具

Grafana

Grafana 是一個開源的可視化工具,後端也是基於Golang開發,支持很是多的數據源,還有很是多的第三方插件。

文檔: grafana.com/docs/

Github: github.com/grafana/gra…

快速部署Grafana+InfluxDB

固然安裝部署也很是方便,直接按照文檔我也沒有遇到什麼問題。

可是在這裏我使用Docker來部署這樣一套監控系統。

我在Github上找到一個很是不錯的repo,鏡像中做者還加入了Telegraf,這樣咱們也能夠同時監控咱們服務器的各類資源與負載了。

github.com/samuelebist…

若是你的服務器上已經安裝了Docker,那麼直接運行

docker run --ulimit nofile=66000:66000 \
  -d \
  --name docker-statsd-influxdb-grafana \
  -p 3003:3003 \
  -p 3004:8888 \
  -p 8086:8086 \
  -p 8125:8125/udp \
  samuelebistoletti/docker-statsd-influxdb-grafana:latest
複製代碼

這樣你就直接部署好了Grafana+InfluxDB了。

固然你能夠直接clone下來,根據Grafana InfluxDB Telegraf的配置來本身build容器。

接着訪問對應IP的 3003端口就能夠了。

這個鏡像中已經建立了使用Telegraf的監控,這裏就使用Telegraf的監控數據來做爲例子。

左上角加號新建Dashboard

點擊Add Query

這裏基本上數據可視化的SQL編寫,選擇cpu的數據,usage_user數據。這時上面的圖表就會有圖像出現了。

能夠在圖標上拉大顯示範圍,也能夠經過右上角的時間範圍來設置顯示的時間範圍。

若是想要監控本身的數據,就須要在InfluxDB建立本身的數據庫來儲存數據了。InfluxDB很是方便的提供HTTP接口來插入數據建立數據庫等等等,又有不少Client支持。

在setting中的Data Source中添加新的InfluxDB數據庫,而後依然是新建Dashboard。

一樣InfluxDB支持不少的數據聚合和函數,包括平均值,最大值,最小值,平均值,還有求和,功能很是多。

在這樣一番配置以後,很快你就會擁有一個簡單易用酷炫的監控系統了。

Grafana中的設置和功能很是多,本篇文章只是一個簡單的指導。若是你想要郵件提醒之類的功能,就本身研究吧,哈哈哈哈。

部署這個監控系統不久,立刻就派上了用場,就在寫文章的時候。

立刻上線解決了問題。看來一個好用的監控系統實在是太有必要了。

相關文章
相關標籤/搜索