原文地址:https://xeblog.cn/articles/7git
Prometheus受啓發於Google的Brogmon監控系統(類似的Kubernetes是從Google的Brog系統演變而來),從2012年開始由前Google工程師在Soundcloud以開源軟件的形式進行研發,而且於2015年早期對外發布早期版本。2016年5月繼Kubernetes以後成爲第二個正式加入CNCF基金會的項目,同年6月正式發佈1.0版本。2017年末發佈了基於全新存儲層的2.0版本,能更好地與容器平臺、雲平臺配合。web
Prometheus 存儲的是時序數據, 即按照相同時序(相同的名字和標籤),以時間維度存儲連續的數據的集合。spring
監控樣本vim
# HELP system_cpu_usage The "recent cpu usage" for the whole system
# TYPE system_cpu_usage gauge
system_cpu_usage 0.23587264544090683
# HELP logback_events_total Number of error level events that made it to the logs
# TYPE logback_events_total counter
logback_events_total{level="error",} 0.0
logback_events_total{level=「info」,} 557.0
複製代碼
Prometheus 時序數據分爲 Counter, Gauge, Histogram, Summary 四種類型。api
官方下載地址架構
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
複製代碼
management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true
複製代碼
進入Prometheus安裝根目錄 vim prometheus.yml分佈式
新增節點ide
- job_name: xeblog-api
metrics_path: /actuator/prometheus
static_configs:
- targets: ['127.0.0.1:8080’]
複製代碼
job_name:任務名稱 metrics_path: 指標路徑 targets:實例地址/項目地址,可配置多個函數
進入Prometheus安裝根目錄 ./prometheus 運行成功日誌 spring-boot
訪問地址:localhost:9090
操做符:= != =~ !~
匹配監控任務爲xeblog-api的非GET請求方法的請求數
http_server_requests_seconds_count{job="xeblog-api", method!="GET"}
複製代碼
匹配監控任務爲xeblog-api的非GET請求方法的請求數,且請求路徑不爲/api/message和/api/version
http_server_requests_seconds_count{job="xeblog-api", method!="GET", uri !~ "/api/message|/api/version"}
複製代碼
它門的區別主要是,「=~ !~」支持正則匹配
查詢最近5分鐘內的全部樣本數據: http_request_total{}[5m] 可選單位:
查詢5分鐘前的樣本數據: http_request_total{} offset 5m
查詢昨天1天內的樣本數據: http_request_total{}[1d] offset 1d
// 安裝
brew install grafana
// 啓動
brew services start grafana
複製代碼
啓動後訪問地址:localhost:3000
登錄: 初始用戶名和密碼都是admin
能夠選擇本身手動添加或者導入一個已配置好的Json文件 Dashboard分享社區:grafana.com/dashboards 這裏能夠下載別人分享的Dashboard Json配置文件
推薦下載: Spring Boot Statistics 下載完後 導入文件就能夠看見相似一個這樣的監控界面 最上面這一行是模板變量,能夠動態選擇 點擊設置按鈕,選擇Variables,點擊New能夠新增變量 點擊title選擇Edit能夠進行編輯 這裏編寫PromQL語句vim grafana.ini 個人文件路徑是/usr/local/etc/grafana/grafana.ini 配置以下:
[smtp]
enabled = true
host = smtp.qq.com:25
user = 你的QQ@qq.com
# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;"""
password = 郵箱口令(不是QQ密碼)
;cert_file =
;key_file =
;skip_verify = false
from_address = 你的QQ@qq.com
from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
複製代碼
這裏配置的是QQ郵箱,其餘郵箱同理
配置完後,重啓Grafana
brew services restart grafana
複製代碼
須要注意的是,Prometheus不支持帶有模版變量的監控設置報警,不然會提示「Template variables are not supported in alert queries」
監控示例: 監控CPU使用率 PromQL:
system_cpu_usage{instance="實例地址", job="任務名稱"}
複製代碼
建立報警
這裏配置的是當CPU使用率超過1%則發出報警
添加報警通知郵箱以及報警的描述信息
保存以後,沒過多久就收到了報警通知
感謝閱讀,若有錯誤,望指正!
參考資料