prometheus安裝較爲簡單,下面會省略安裝步驟:node
一.服務器啓動
- 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(監控不一樣的對象須要不一樣的導出器)
- 下載exporter tar.gz並上傳至服務器
- 解壓
./node_exproter
安裝
curl 127.0.0.1:9100 驗證,curl 127.0.0.1:9100/metrics,會返回一大推性能指標
- 在
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