Prometheus是一個開源專案,以週期性的方式蒐集metrics,並將metrics與timestamps儲存成時序資料。能夠讓使用者監控目前的系統使用量,並能透過過去與現在的metrics進行趨勢分析,可以提前預測未來什麼時間點對資源進行擴充,也能透過比對分析來了解不同版本的系統運行時資源的使用量。
在進行數據蒐集時,需要先開啟node exporter,可以參考專案內的node exporter 文件。Prometheus週期性的從node exporter暴露出的address拉取metrics資料。從 Prometheus 獲取到metrics後,可以利用Grafana以圖形化界面呈現從Prometheus獲取的資料,Grafana 的部署方式可以參考專案內的 Grafana 文件。
此專案有整合Prometheus到Docker,利用腳本快速部署Prometheus。
本專案有提供啟動 exporter 的腳本:
- docker 資料夾內的 start_node_exporter.sh,詳細啟動方式可參考 node exporter 文件
- docker 資料夾內的 start_broker.sh 腳本有整合 jmx exporter,設置與查詢 jmx porter 的方法可以參考 run_kafka_broker 文件
開啟Prometheus時添加exporter address就可以觀察到Kafka broker、host端的metrics。
在啟動Prometheus前,請確保有exporter取得exporter address,啟動格式為 start + exporter address
。
下面範例192.168.103.24:9100
為node exporter address,192.168.103.24:16728
為Kafka exporter address。
./docker/start_prometheus.sh start 192.168.103.24:9100
下面範例192.168.103.24:16728
為Kafka exporter address。
./docker/start_prometheus.sh start 192.168.103.24:16728
[INFO] =================================================
[INFO] config file: /tmp/prometheus-9090.yml
[INFO] prometheus address: http://192.168.103.24:9090
[INFO] command to run grafana at this host: /home/harry/Documents/astraea/docker/start_grafana.sh start
[INFO] command to add prometheus to grafana datasource: /home/harry/Documents/astraea/docker/start_grafana.sh add_prom_source <USERNAME>:<PASSWORD> Prometheus http://192.168.103.24:9090
[INFO] =================================================
若有多個exporter要監控,則需要以逗號分隔address,假設要監控兩個exporter
./docker/start_prometheus.sh start 192.168.103.12:12345,192.168.103.13:10000
存取腳本輸出的Prometheus address
,可以看到Prometheus WebUI。
若是配合node exporter啟動Prometheus,可以查詢到host端的metric,例如node_memory_Buffers_bytes
。
若是配合Kafka exporter啟動Prometheus,可以查詢到Kafka server的metric,如下圖:
可以點擊Graph
以圖形化的方式查看感興趣的metric。