prometheus+grafana實現監控過程的整體流程


prometheus安裝較為簡單,下面會省略安裝步驟:

服務器啟動

  • Prometheus啟動 ./prometheus --config.file=prometheus.yml
  • Grafana啟動 service grafana-server start
  • 設置自啟動 如需自啟動某些服務,只需使用chkconfig 服務名 on即可,若想關閉,將on改為off ,如 chkconfig grafana-server on

訪問服務器

1.Prometheus:部署ip:9090(默認端口號); 
2.Grafana:部署ip:3000(默認端口號),訪問Grafana服務器的時候會要求輸入賬號密碼,這里使用默認賬號密碼,賬號:admin,密碼:admin
3.設置Grafana管理Prometheus

配置exporter(監控不同的對象需要不同的導出器)

  1. 下載exporter tar.gz並上傳至服務器
  2. 解壓
  3. ./node_exproter安裝
  4. curl 127.0.0.1:9100 驗證,curl 127.0.0.1:9100/metrics,會返回一大推性能指標
  5. prometheus中的yml文件中,配置exporter導出器

問題

至此所有安裝已完成,但是還存在以下問題,這些問題我們放在下面的配置,可視化段落處理。

  • Prometheus server並沒有配置被監控端的IP地址,即沒有取指定的機器取數據
  • 啟動的方式太不人性化了,沒有啟動腳本。
  • grafana沒有可用的dashboard用於展示

Exporter的來源

從Exporter的來源上來講,主要分為兩類:

  • 社區提供的
    Prometheus社區提供了豐富的Exporter實現,涵蓋了從基礎設施,中間件以及網絡等各個方面的監控功能。這些Exporter可以實現大部分通用的監控需求。下表列舉一些社區中常用的Exporter:
    • 數據庫 MySQL Exporter, Redis Exporter, MongoDB Exporter, MSSQL Exporter等
    • HTTP服務 Apache Exporter, HAProxy Exporter, Nginx Exporter等
  • 用戶自定義的
    除了直接使用社區提供的Exporter程序以外,用戶還可以基於Prometheus提供的Client Library創建自己的Exporter程序,目前Promthues社區官方提供了對以下編程語言的支持:Go、Java/Scala、Python、Ruby。同時還有第三方實現的如:Bash、C++、Common Lisp、Erlang,、Haskeel、Lua、Node.js、PHP、Rust等。

Exporter的運行方式

  • 獨立使用的
    以我們已經使用過的Node Exporter為例,由於操作系統本身並不直接支持Prometheus,同時用戶也無法通過直接從操作系統層面上提供對Prometheus的支持。因此,用戶只能通過獨立運行一個程序的方式,通過操作系統提供的相關接口,將系統的運行狀態數據轉換為可供Prometheus讀取的監控數據。 除了Node Exporter以外,比如MySQL Exporter、Redis Exporter等都是通過這種方式實現的。 這些Exporter程序扮演了一個中間代理人的角色。
  • 集成到應用中的
    為了能夠更好的監控系統的內部運行狀態,有些開源項目如Kubernetes,ETCD等直接在代碼中使用了Prometheus的Client Library,提供了對Prometheus的直接支持。這種方式打破的監控的界限,讓應用程序可以直接將內部的運行狀態暴露給Prometheus,適合於一些需要更多自定義監控指標需求的項目。

整體流程

1.使用合適的exporter導出器,配置監控目標對象
2.配置prometheus中的yml文件,配置exporter
3.grafana中配置數據源為prometheus


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM