Prometheus Grafana快速搭建

Prometheus

Prometheus和Grafana組合基本上是監控系統的標配。Prometheus作存儲後端,Grafana作分析及可視化界面。 前端

普羅米修斯是開源的系統監控/報警工具庫,功能很是全,且擁有活躍的開發者和用戶社區。Prometheus經過HTTP按期主動拉取(Pull)的方式得到指標(直接獲取或經過gateway推送),在本地存儲全部抓取的樣本,並對這些數據運行規則,從現有數據聚合和記錄新的時間序列,或生成警報。 Prometheus原生的可視化界面作得比較原始(主要用於調試),因此社區(官方推薦)使用Grafana來作數據展現。 Grafana專一於數據展現,有着豐富用成熟的展現方式和插件,數據源支持Elasticsearch, Prometheus, Graphite, InfluxDB等等。可讓你經過界面點擊(無需寫前端代碼)快速搭建一個很是專業漂亮的展現界面。即使對於前端零基礎的開發者也很是友好!node

安裝Prometheus

  1. 官網下載須要的版本(uname -rv查看linux內核版本及發行號)。好比x86的就下載linux-386系列。linux

  2. Prometheus會主動經過HTTP請求來收集受監控目標的指標。 好比它也經過HTTP Rest API導出了本身的健康狀態數據,因此也能夠用來監控本身。解壓下載源文件內包含一個基本的prometheus.yml配置能夠參照。配置很是簡單。git

    global: # 全局配置
      scrape_interval:     15s #主動拉取指標的間隔
      evaluation_interval: 15s #計算間隔
    
    scrape_configs: #監控的目標配置
      - job_name: prometheus #名稱 
        static_configs: # 靜態配置
          - targets: ['127.0.0.1:9090'] #監控目標暴露的HTTP API端口,是個列表
    • 把裏面的<u>localhost</u>改爲你對應機器的IP。
    • 其它詳細的配置可見配置文檔
  3. 前臺啓動Prometheus,若是是在生產環境,須要後臺啓動時,最好自行配置Systemdgithub

    # Start Prometheus.
    # By default, Prometheus stores its database in ./data (flag --storage.tsdb.path).
    ./prometheus --config.file=prometheus.yml
  4. 用瀏覽器打開http://IP:9090/metrics查詢全部指標列表。shell

  5. 用瀏覽器打開http://IP:9090/graph,原生的簡易的展現界面(太簡陋了,基本沒人會用)。 PS:由於Promethues本身導出的指標和展現界面都是同一個9090端口。但實踐中metrics接口指向的是目標機器的指標列表,用於Promethues主動拉取。數據庫

豐富的Exporter能夠下載使用,開箱即用。下面能夠用NodeExporter來作個範例。json

安裝NodeExporter

NodeExporter暴露不少和硬件/軟件相關的指標(metrics)。後端

  1. $ tar xvfz node_exporter-*
    $ cd node_exporter-*
  • 啓動NodeExporter。瀏覽器

    $ ./node_exporter
    INFO[0000] Starting node_exporter (version=0.18.1, branch=HEAD, revision=3db77732e925c08f675d7404a8c46466b2ece83e)  source="node_exporter.go:156"
    INFO[0000] Build context (go=go1.12.5, user=root@b50852a1acba, date=20190604-16:41:43)  source="node_exporter.go:157"
    INFO[0000] Enabled collectors:   source="node_exporter.go:97"
    INFO[0000]  - arp                source="node_exporter.go:104"
    ...
    INFO[0000] Listening on :9100    source="node_exporter.go:170"

    能夠使用./node_exporter -h查看具體的啓動參數。從上面能夠看它使用的端口是9100,全部的指標列表均可以和上面示例中的prometheus的接口同樣:

    $ curl http://localhost:9100/metrics
    # HELP go_gc_duration_seconds A summary of the GC invocation durations.
    # TYPE go_gc_duration_seconds summary
    go_gc_duration_seconds{quantile="0"} 2.8138e-05
    go_gc_duration_seconds{quantile="0.25"} 4.1588e-05
    go_gc_duration_seconds{quantile="0.5"} 0.000102923
    go_gc_duration_seconds{quantile="0.75"} 0.000162106
    go_gc_duration_seconds{quantile="1"} 0.000495923
    go_gc_duration_seconds_sum 0.060153937
    go_gc_duration_seconds_count 537
    # HELP go_goroutines Number of goroutines that currently exist.
    ...

    能夠看到全部關於node_exporter的指標列表。接下來就是把讓prometheus來取這些指標。

  • 配置prometheus拉node exporter的指標。即把targets增長9100端口。

    scrape_configs:
    - job_name: 'node'
      static_configs:
      - targets: ['127.0.0.1:9100']
  • 重啓prometheus。

    ./prometheus --config.file=./prometheus.yml

    再次查看瀏覽器打開graph查看:http://127.0.0.1:9090/graph。勾選Enable query history後直接輸入以node就能夠看到大量關於node爲前綴的指標了。好比:node_filesystem_avail_bytes查看文件系統可用空間大小狀況。

這個界面仍是太原始了,但能夠用來體驗一下PromQL。接下來演示一下接入grafana來展現這些數據。

安裝Grafana

官方指引下載安裝:好比Centos安裝是

$ wget https://dl.grafana.com/oss/release/grafana-6.3.3-1.x86_64.rpm 
$ sudo yum localinstall grafana-6.3.3-1.x86_64.rpm

配置grafana

你能夠在/etc/grafana/grafana.ini中配置端口及其它的,具體全部的配置項在: https://grafana.com/docs/installation/configuration/,咱們這裏都保持默認值,端口默認爲3000.用戶名/密碼默認爲admin。 你能夠在這裏找到對應的啓動方式,好比在CentOS上就是

sudo service grafana-server start

啓動成功後,你能夠使用瀏覽器打開http://IP:3000使用admin/admin登陸。

建立界面

Prometheus的數據源(data source)

  • 點擊側邊欄中的Grafana圖標 -> DataSources -> Add New
  • 選擇Prometheus類型.
  • 設置Prometheus的對外URL(好比 http://IP:9090).
  • 點擊Add添加

Prometheus圖表展現

  • 點擊graph標題 --> Edits.
  • 在Metrics標籤下選擇你上一步剛增長的Prometheus數據庫。
  • 在Query字段中輸入Prometheus表達式,會自動補全。
  • 自定義圖表橫座標中指標的名稱: Legend format。

導入Dashboards

Grafana.com上有不少別人分享的優化的dashboards,咱們能夠直接從上面找到node exporter對應的dashboard來使用。下載對應的json文件,而後導入。

其它

在Grafana上如何爲選擇合適的圖表來展現Prometheus對應的數據類型(單調遞增的Counter,可降可升的Gauge,用於柱狀圖展現的Histogram),提供滑動窗口求和的Summary

Reference

相關文章
相關標籤/搜索