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(監控不同的對象需要不同的導出器)
- 下載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