在 macOS 上部署 Grafana 和 Prometheus 來監控 Java 服務是一個非常實用的操作。以下是詳細的步驟,包括如何安裝和配置 Prometheus、Grafana 以及在 Java 服務中集成 Prometheus 的客戶端庫來收集指標數據。
1. 安裝 Prometheus
1.1 使用 Homebrew 安裝 Prometheus
首先,確保你已經安裝了 Homebrew。然后運行以下命令來安裝 Prometheus:
brew install prometheus
1.2 配置 Prometheus
安裝完成后,編輯 Prometheus 的配置文件。默認配置文件路徑為 /opt/homebrew/etc/prometheus.yml。
編輯 prometheus.yml
文件,添加你的 Java 服務的指標抓取配置:
global:scrape_interval: 15s # 設置全局抓取間隔時間# 配置抓取目標
scrape_configs:- job_name: "java-server"static_configs:- targets: ["xxxxx:11011"]metrics_path: /actuator/prometheus- job_name: 'java-server-health'static_configs:- targets: ['xxxxx:11011']metrics_path: /actuator/health- job_name: 'prometheus'static_configs:- targets: ['127.0.0.1:9090']
1.3 啟動 Prometheus
啟動 Prometheus 服務:
brew services start prometheus
你也可以手動啟動 Prometheus:
prometheus --config.file=/opt/homebrew/etc/prometheus.yml
2.安裝 Grafana
2.1 使用 Homebrew 安裝 Grafana
brew install grafana
2.2 啟動 Grafana
啟動 Grafana 服務:
brew services start grafana
你也可以手動啟動 Grafana
grafana-server --config=/opt/homebrew/etc/grafana/grafana.ini --homepath=/opt/homebrew/opt/grafana/bin/grafana
/opt/homebrew/opt/grafana/bin/grafana server --config /opt/homebrew/etc/grafana/grafana.ini --homepath /opt/homebrew/opt/grafana/share/grafana --packaging\=brew cfg:default.paths.logs\=/opt/homebrew/var/log/grafana cfg:default.paths.data\=/opt/homebrew/var/lib/grafana cfg:default.paths.plugins\=/opt/homebrew/var/lib/grafana/plugins
3.配置 Java 服務
在 Java 服務中使用?micrometer
?和?prometheus
?客戶端庫來暴露指標。以下是一個 Spring Boot 應用的示例。
3.1 添加依賴
在你的?pom.xml
?文件中添加?micrometer-registry-prometheus
?依賴項:
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId><version>1.8.0</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
3.2 配置 Spring Boot 應用
在?application.properties
?文件中配置 Spring Boot 應用暴露指標端點:
management.server.port=11011
management.endpoints.web.base-path=/actuator
management.endpoints.web.exposure.include=prometheus,health,info
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
management.endpoint.health.show-details=always
management.endpoint.health.probes.enabled=true
management.metrics.tags.application=${app.id:${spring.application.name}}
3.3 啟動 Spring Boot 應用
運行 Spring Boot 應用,默認情況下,Prometheus 指標將通過?/actuator/prometheus
?端點暴露。
4.配置 Grafana
4.1 訪問 Grafana
打開瀏覽器,訪問 http://localhost:3000(默認端口)。使用默認的用戶名和密碼 admin/admin 登錄。
4.2 添加 Prometheus 數據源
- 進入 Grafana 儀表板,點擊左側菜單中的“Configuration” -> “Data Sources”。
- 點擊 “Add data source” 按鈕。
- 選擇 “Prometheus” 作為數據源類型。
- 在 “URL” 字段中輸入 Prometheus 服務器地址,例如 http://localhost:9090。
- 點擊 “Save & Test” 按鈕以保存配置并測試連接。
4.3 創建儀表板
- 在 Grafana 中點擊左側菜單中的 “Create” -> “Dashboard”。
- 添加新面板(Panel),選擇你的 Prometheus 數據源并輸入 PromQL 查詢來獲取 Java 服務的指標。
- 配置圖表的顯示方式,然后保存儀表板。