全站資源開放下載,感謝廣大網友的支持
鏈接失效請移步職業司平臺
非盈利平臺

非盈利平臺

只為分享一些優質內容

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

微信小程序

微信小程序

更方便的閱讀

職業司微信公眾號

職業司微信公眾號

實時動態通知

安卓APP

安卓APP

我們從此不分開

程序員生活志-公眾號

程序員生活志-公眾號

程序員生活學習圈,互聯網八卦黑料

支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區

Grafana+Prometheus打造全方位立體監控系統

56
發表時間:2018-11-08 17:39來源:Java幫幫-微信公眾號

前言

本文主要介紹如何使用Grafana和Prometheus以及node_exporter對Linux服務器性能進行監控。下面兩張圖分別是兩臺服務器:

服務器A


服務器B

概述

Prometheus是一個開源的服務監控系統,它通過HTTP協議從遠程的機器收集數據并存儲在本地的時序數據庫上。

  • 多維數據模型(時序列數據由metric名和一組key/value組成)

  • 在多維度上靈活的查詢語言(PromQl)

  • 不依賴分布式存儲,單主節點工作.

  • 通過基于HTTP的pull方式采集時序數據

  • 可以通過push gateway進行時序列數據推送(pushing)

  • 可以通過服務發現或者靜態配置去獲取要采集的目標服務器

  • 多種可視化圖表及儀表盤支持

Prometheus通過安裝在遠程機器上的exporter來收集監控數據,后面我們將使用到node_exporter收集系統數據。

架構

Grafana 是一個開箱即用的可視化工具,具有功能齊全的度量儀表盤和圖形編輯器,有靈活豐富的圖形化選項,可以混合多種風格,支持多個數據源特點。

架構

安裝

Exporter

下載并解壓:

#下載wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.15.0.linux-amd64.tar.gz -O node_exporter-0.15.0.linux-amd64.tar.gz# 可自定義解壓目錄tar -xvf node_exporter-0.15.0.linux-amd64.tar.gz

運行node_exporter:

# 后臺運行./node_exporter &

Prometheus

下載地址:

執行以下命令:

## 下載wget https://github.com/prometheus/prometheus/releases/download/v2.0.0-rc.3/prometheus-2.0.0-rc.3.linux-amd64.tar.gz## 可自定義解壓目錄tar -xvf prometheus-2.0.0-rc.3.linux-amd64.tar.gz

配置prometheus,vi prometheus.yml

global:

 scrape_interval:     15s

 evaluation_interval: 15s

   - job_name: prometheus

   static_configs:

     - targets: ['localhost:9090']

       labels:

         instance: prometheus

           - job_name: linux1

   static_configs:

     - targets: ['192.168.1.120:9100']

       labels:

         instance: sys1

           - job_name: linux2

   static_configs:

     - targets: ['192.168.1.130:9100']

       labels:

         instance: sys2

IP對應的是我們內網的服務器,端口則是對應的exporter的監聽端口。

運行Prometheus

./prometheus

level=info ts=2017-11-07T02:39:50.220187934Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0-rc.2, branch=HEAD, revision=ce63a5a8557bb33e2030a7756c58fd773736b592)"

level=info ts=2017-11-07T02:39:50.22025258Z caller=main.go:216 build_context="(go=go1.9.1, user=root@a6d2e4a7b8da, date=20171025-18:42:54)"

level=info ts=2017-11-07T02:39:50.220270139Z caller=main.go:217 host_details="(Linux 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 iZ2ze74fkxrls31tr2ia2fZ (none))"

level=info ts=2017-11-07T02:39:50.223171565Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0:9090

......

啟動成功以后我們可以通過Prometheus內置了web界面訪問,:9090 ,如果出現以下界面,說明配置成功

Grafana

執行以下安裝命令:

## 安裝依賴grafana運行需要go環境yum install  go -y## 安裝 grafanayum install http://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm -y

安裝包信息:

二進制文件: /usr/sbin/grafana-server

init.d 腳本: /etc/init.d/grafana-server
環境變量文件: /etc/sysconfig/grafana-server
配置文件: /etc/grafana/grafana.ini
啟動項: grafana-server.service
日志文件:/var/log/grafana/grafana.log
默認配置的sqlite3數據庫:/var/lib/grafana/grafana.db

你可以執行以下啟動命令:

service grafana-server start

啟動grafana,并設置開機啟動:

systemctl daemon-reloadsystemctl start grafana-serversystemctl status grafana-serversystemctl enable grafana-server.service

服務器端圖像(PNG)渲染是可選的功能,但在共享可視化時非常有用,例如在警報通知中。
如果圖像缺少文本,請確保已安裝字體包。

yum install fontconfigyum install freetype*yum install urw-fonts

訪問Grafana通過Nginx代理,默認登錄用戶名密碼:admin/admin,需及時修改。

server {        listen80;        server_name  grafana.52itstyle.com;        charset utf-8;        location / {            default_type text/html;            proxy_pass http://127.0.0.1:3000;        }}

編輯配置文件/etc/grafana/grafana.ini ,修改dashboards.json段落下兩個參數的值:

[dashboards.json]enabled = truepath = /var/lib/grafana/dashboards

安裝儀表盤JSON模版:

git clone https://github.com/percona/grafana-dashboards.gitcp -r grafana-dashboards/dashboards /var/lib/grafana/

最后,通過service grafana-server start命令啟動服務,訪問地址:


然后在Data Sources選項中添加數據源:


添加成功以后,我們就可以查看到文章開頭的效果圖了。

總結

講道理,這一套東西還是很強大的,各種開源組間一整合完美搭建出一套監控系統。當然了以上僅僅是系統的一個監控,Grafana以及exporter組間還可以實現對Nginx、MySql、Redis以及MongDB的監控。

監控不是目的,目的是出現問題能夠及時發現并解決問題。


Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
業司
教育資訊
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部