Grafana+Prometheus打造springboot監控平臺
阿新 • • 發佈:2019-02-14
1. 環境
springboot 1.5.4
Grafana 5.2.3
Prometheus 2.3.2
jdk 1.8
2.為springboot新增endpoint
在專案pom.xml中新增如下依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>1.5.4.RELEASE</version> </dependency> <!--<dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_spring_boot</artifactId> <version>0.5.0</version> </dependency>--> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.0.3</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-spring-legacy</artifactId> <version>1.0.3</version> </dependency>
在 application.yml中新增如下配置(因為是測試,所以我把所有端點都暴露了,生產環境自行選擇開啟端點)
management: endpoints: web: exposure: include: '*' jmx: exposure: include: '*' shutdown: enabled: true metrics: distribution: percentiles-histogram[http.server.requests]: true security: enabled: false
專案中新建一個配置類如下
import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.spring.autoconfigure.MeterRegistryCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MicrometerConfiguration { @Bean MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) { return meterRegistry1 -> { meterRegistry.config() .commonTags("application", "micrometer-youtube-example"); }; } }
啟動專案,在idea中可以看到介面 /prometheus 如下圖
3.安裝prometheus
在某目錄建立 prometheus.yml檔案內容如下
global:
scrape_interval: 10s
scrape_timeout: 10s
evaluation_interval: 10m
scrape_configs:
- job_name: simple
scrape_interval: 5s
scrape_timeout: 5s
metrics_path: /prometheus
scheme: http
basic_auth:
username: user
password: user
static_configs:
- targets:
- 10.0.116.13:8080 #此處填寫 Spring Boot 應用的 IP + 埠號
在當前目錄輸入如下命令,啟動docker ,也可以先用docker pull prom/prometheus先下載映象
docker run -d --name prometheus -p 9090:9090 -m 500M -v /opt/soft/prometheus/prometheus.yml:/prometheus.yml -v /opt/soft/prometheus/data:/data prom/prometheus --config.file=/prometheus.yml --log.level=info
訪問 http://ip:9090 如下圖
在Status
->Targets
頁面下,我們可以看到我們配置的Target,它們的State
為UP ,如下圖
4.安裝Grafana
docker run --name grafana -d -p 3000:3000 -v /opt/soft/grafana:/var/lib/grafana -e "GF_SMTP_ENABLED=true" grafana/grafana
注意: 一定要將/opt/soft/grafana 這個目錄授權為777 否則會報沒有許可權錯誤,這個目錄是為了儲存相關配置資訊,防止映象刪除後,配置資訊也丟失
我們可通過http://ip:3000
訪問Grafana網頁介面(預設的帳號/密碼為admin/admin)
5.grafana新增資料來源,配置如下
6.建立看板
grafana支援很多種看板,你可以根據不同的指標生成圖表,
因為圖表的配置比較複雜,這裡沒有深入的研究,而是選用了大神 們做好的模板,對接資料來源進行展示
選擇一個你想要的點選去,然後複製id
開啟下圖頁面,並將id貼上進去,游標離開輸入框,會自動載入模板配置
然後選取資料來源,點選import按鈕,完成模板新增
可以看到如下圖
完成。