Grafana和ES打造的Nginx的儀表盤
grafana 是一款採用 go 語言編寫的開源應用,主要用於大規模指標數據的可視化展現,是網絡架構和應用分析中最流行的時序數據展示工具,目前已經支持絕大部分常用的時序數據庫,官網(http://docs.grafana.org/).
我們想要打造一套監控平臺,因此我在逐漸的完善我的DashBoard系列文章。如果你也對這部分感興趣那麼歡迎來和我一起構建這個儀表盤。
監控指標
針對入口Nginx,我設計瞭如下的監控指標:
- 最近的24小時內訪問量Top10的國家
- 最近24小時最受歡迎的頁面
- 200狀態碼和404狀態碼的比例
- 最受歡迎的世界題圖展示
- 等等
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3vIRXmEl-1589266045508)(https://user-images.githubusercontent.com/567298/80523974-32925180-898f-11ea-96b6-e8e559655745.png)]
構建你的DashBoard
再開始構建前,我需要先介紹一下都用到了什麼基礎軟件,Nginx,Redis,Logstash,Elasticsearch,Grafana,Pormetheus。
那麼,要構建這個DashBoard,我們首先要把Elasticsearch作爲數據源配置到Grafana中。打開如下地址,然後輸入Grafana的管理員用戶名和密碼進配置。
http://grafana服務ip:3000
進入配置頁面,在左側選擇數據源,選擇添加數據源,選擇Elasticsearch後,完成配置。
配置完成數據後,我們就要選擇dashboard的模板了。我們進入dashboard的配置,我們使用 https://grafana.com/grafana/dashboards/11190,模板。接下啦,我們需要輸入dashboard的名字,選擇Elasticsearch和Prometheus的數據源就可以看到你的監控數據了。
看看我們的DashBoard
你需要知道的內容
上面看完了,那麼下面我介紹一下我係統中用到的這些軟件的鏈接關係。
- Nginx 會將我們定義的log_format寫入/var/log/nginx/access_json.log文件,Filebeat會將其作爲輸入項。
- Filebeat會將數據輸出到Redis
- Logstash作爲Redis數據的過濾將數據存儲Elasticsearch
- Grafana讀取Elasticsearch數據源