Prometheus-----2
文章目錄
- prometheus數(shù)據(jù)模型
- 概述
- 指標類型
- 作業(yè)job和實例targets/instance
- prometheusQL(數(shù)據(jù)查詢語言也是[時序數(shù)據(jù)庫](https://so.csdn.net/so/search?q=時序數(shù)據(jù)庫&spm=1001.2101.3001.7020)使用語言)
- prometheus數(shù)據(jù)模塊
- 表達式瀏覽器(promQL過濾使用)
- 部署service discovery服務(wù)發(fā)現(xiàn)
- Prometheus指標抓取的[生命周期](https://so.csdn.net/so/search?q=生命周期&spm=1001.2101.3001.7020)
- prometheus 服務(wù)發(fā)現(xiàn)機制
- 靜態(tài)配置發(fā)現(xiàn)
- 動態(tài)發(fā)現(xiàn)
- 基于文件服務(wù)發(fā)現(xiàn)
- 編寫Prometheus.yml文件
- 指定配置文件啟動
- 在node節(jié)點開啟服務(wù)
- 文件發(fā)現(xiàn)的作用
- 基于DNS自動發(fā)現(xiàn)
- 基于consul發(fā)現(xiàn)
- 1)相關(guān)概念
- 2)安裝consul_1.9.0版本
- 3)啟動開發(fā)者模式
- 4)編輯/etc/consul目錄下的prometheus-servers.json配置文件
- 5)創(chuàng)建consul自動發(fā)現(xiàn)的prometheus.yml文件
- 6)注冊其他node節(jié)點
- 總結(jié)
- 指標類型
- 作業(yè)job和實例targets/instance
- prometheusQL兩種向量
- prometheus的配置文件
- prometheus架構(gòu)模型(工作流程)
prometheus數(shù)據(jù)模型
概述
- prometheus僅用鍵值方式存儲時序式的聚合數(shù)據(jù),他不支持文本信息
- 從每個target中會采集出很多指標,那么每個指標會暴露很多樣本數(shù)據(jù)點,而這些數(shù)據(jù)點pro都需要存儲而這些指標會以固定時間間隔生成很多樣本數(shù)據(jù)點,而如何標示這些樣本數(shù)據(jù)點,則是數(shù)據(jù)模型學(xué)習(xí)的意義
①時序列標識:key+lables
②當前時間序列的樣本值value
③這些標簽可以作為過濾器進行指標過濾及聚合運算,如何從上萬的數(shù)據(jù)過濾出關(guān)鍵有限的時間序列,同時從有限的時間序列在特定范圍的樣本那就需要手動編寫出時間序列的樣本表達式來過濾出我們需求的樣本數(shù)據(jù)
指標類型
- 默認都是以雙精度浮點型數(shù)據(jù)(服務(wù)端無數(shù)據(jù)量類型數(shù)據(jù)–類型是對客戶端有意義的)
①counter : 計數(shù)器單調(diào)遞增
②gauge:儀表盤:有起伏特征的
③histogram:直方圖(統(tǒng)計的概念,做分位數(shù)統(tǒng)計):
在一段時間范圍內(nèi)對數(shù)據(jù)采樣的相關(guān)結(jié)果,并記入配置的bucket中,他可以存儲更多的數(shù)據(jù),包括樣本值分布在每個bucket的數(shù)量,從而iprometheus就可以使用內(nèi)置函數(shù)進行計算:
計算樣本平均值:以值得綜合除以值的數(shù)量
計算樣本分位值:分位數(shù)有助于了解符合特定標準的數(shù)據(jù)個數(shù),例如評估響應(yīng)時間超過1秒的請求比例,若超過20%則進行告警等
④summary(統(tǒng)計數(shù)據(jù)),摘要,histogram的擴展類型,它是直接由監(jiān)控端自行聚合計算出分位數(shù),同時將計算結(jié)果響應(yīng)給prometheus server的樣本采集請求,因而,其分位數(shù)計算是由監(jiān)控端完成
計數(shù)器:單調(diào)遞增 儀表盤:起伏特征 直方圖:平均數(shù)或分位值 sumamary(統(tǒng)計數(shù)據(jù))作業(yè)job和實例targets/instance
與target相比,instance更趨近于一個具體可以提供監(jiān)控數(shù)據(jù)的實例,而targets則更像一個對象、目標性質(zhì)
targets 與 instance區(qū)別:都代表了被監(jiān)控端可以吐出監(jiān)控數(shù)據(jù)的被監(jiān)控端這個對象,tagers更傾向于是一個集合,instance更傾向于具體的被監(jiān)控端
prometheusQL(數(shù)據(jù)查詢語言也是時序數(shù)據(jù)庫使用語言)
- 支持兩種向量,同時內(nèi)置提供了一組用于數(shù)據(jù)處理的函數(shù),來對樣本數(shù)據(jù)進行基礎(chǔ)的分析(Ai算法、機器學(xué)習(xí)、深度學(xué)習(xí)來分析、預(yù)測系統(tǒng)之后的運行走勢)
**①即時向量:**最近以此時間戳上跟蹤的數(shù)據(jù)指標(一個時間點上的所有數(shù)據(jù))
即時向量選擇器:返回0個1個或者多個時間序列上在給定時間戳上的各自的一個樣本,該樣本成為即時樣本
**②時間范圍向量:**指定時間范圍內(nèi)所有時間戳上的數(shù)據(jù)指標
范圍向量選擇器:返回0個1個或多個時間序列上在給定時間范圍內(nèi)的各自的一組樣本(范圍向量選擇器無法用于繪圖)
prometheus數(shù)據(jù)模塊
global:全局配置
altermanager configuration:告警模塊(通過prometheusQL+布爾值表達式產(chǎn)生告警信息)
rules
scrape
表達式瀏覽器(promQL過濾使用)
表達式瀏覽器常規(guī)使用
在prometheusUI控制臺上可以進行數(shù)據(jù)過濾
簡單的用法:
- CPU使用總量
- 計算過去5分鐘內(nèi)的CPU使用速率
- 每臺主機CPU在5分鐘內(nèi)的平均使用率
- 查詢1分鐘平均負載超過主機CPU數(shù)量兩倍的時間序列
- 內(nèi)存使用率
部署service discovery服務(wù)發(fā)現(xiàn)
Prometheus指標抓取的生命周期
- 隱藏敏感數(shù)據(jù) 整合多個標簽,來進行單個自定義指標數(shù)據(jù)的輸出
- 發(fā)現(xiàn)——> 配置 ——> relabel(配置定義/服務(wù)自身執(zhí)行)——> 指標數(shù)據(jù)抓取——> metrics relabel(自定義)
Prometheus的服務(wù)發(fā)現(xiàn)(基于文件、DNS、consul、k8s等各種主流的服務(wù)發(fā)現(xiàn)總線)
#默認:static_config : 靜態(tài)配置形式的服務(wù)發(fā)現(xiàn)
①基于文件的服務(wù)發(fā)現(xiàn);
(定義一組資源"子"配置文件yaml格式 里面只存方需要采集的targets 信息,此種方式可以被pro動態(tài)獲取到,而不需要重啟)
②基于DNS的服務(wù)發(fā)現(xiàn);
③基于API的服務(wù)發(fā)現(xiàn):Kubernetes、Consul、Azure、重新標記
-
target重新打標
-
metric重新打標
④基于K8s的服務(wù)發(fā)現(xiàn)
prometheus 服務(wù)發(fā)現(xiàn)機制
- 以上的8條——>詳細版的prometheus工作生命周期
- 將來自服務(wù)發(fā)現(xiàn)的元數(shù)據(jù)標簽中的信息附加到指標的標簽上
- 過濾目標(會利用于重打標簽機制上)
之后便是數(shù)據(jù)抓取,以及指標返回的過程,抓取而來的指標在保存之前,還允許用戶對指標重新打標過濾的方式
它定義在job配置段的metric_relabel_configs配置中,常用于實現(xiàn)如下功能#冊刪除不必要的指標
從指標中冊刪除敏感或者不需要的標簽
添加、編輯或者修改指標的標簽值或標簽格式
靜態(tài)配置發(fā)現(xiàn)
- 修改prometheus服務(wù)器上的配置為文件,指定targets的端口上面配置過
動態(tài)發(fā)現(xiàn)
基于文件服務(wù)發(fā)現(xiàn)
基于文件的服務(wù)發(fā)現(xiàn)僅僅略優(yōu)于靜態(tài)配置的服務(wù)發(fā)現(xiàn)方式,它不依賴于任何平臺或第三方服務(wù),因而也是最為簡單和通用的實現(xiàn)方式。prometheus server定期從文件中加載target信息(pro-server pull指標發(fā)現(xiàn)機制-job_name
獲取我要pull的對象target)文件可以只用json和yaml格式,它含有定義的target列表,以及可選的標簽信息,以下第一配置,能夠?qū)rometheus默認的靜態(tài)配置轉(zhuǎn)換為基于文件的服務(wù)發(fā)現(xiàn)時所需的配置;(rometheus會周期性的讀取、重載此文件中的配置,從而達到動態(tài)發(fā)現(xiàn)、更新的操作)
編寫Prometheus.yml文件
cd /usr/local/prometheus/mkdir file_sd && cd file_sdmkdir targets vim /usr/local/prometheus/prometheus.yml------只列出與靜態(tài)Prometheus.yml文件區(qū)別的地方-------- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.file_sd_configs:- files:- targets/prometheus_*.yamlrefresh_interval: 2m# All nodes- job_name: 'nodes'file_sd_configs:- files:- targets/nodes_*.yamlrefresh_interval: 2m指定配置文件啟動
./prometheus --config.file=./file_sd/prometheus.yml在node節(jié)點開啟服務(wù)
文件發(fā)現(xiàn)的作用
如果增加node或者prometheus服務(wù)端節(jié)點只需更改nodes_centos.yaml prometheus_server.yaml兩個文件添加地址就行,不需要停止服務(wù)
基于DNS自動發(fā)現(xiàn)
基于DNS的服務(wù)發(fā)現(xiàn)針對一組DNS域名進行定期查詢,以發(fā)現(xiàn)待監(jiān)控的目標查詢時使用的DNS服務(wù)器由/etc/resolv.conf文件指定;
該發(fā)現(xiàn)機制依賴于A、AAAA和SRv資源記錄,且僅支持該類方法,
尚不支持RFC6763中的高級DNS發(fā)現(xiàn)方式
- SRV: SRV記錄的作用是指明某域名下提供的服務(wù)。實例:
_http._tcp.example.com.SRV 10 5 80. www.example.comSRV后面項目的含義:
10 -優(yōu)先級,類似MX記錄
5 -權(quán)重
80-端口
www.example.com -實際提供服務(wù)的主機名。同時SRV可以指定在端口上對應(yīng)哪個service - hprometheus 基于Dws的服務(wù)中的SRV記錄,讓prometheus發(fā)現(xiàn)指定target上對應(yīng)的端口對應(yīng)的是exporter或instrumentation
基于consul發(fā)現(xiàn)
1)相關(guān)概念
一款基于golang開發(fā)的開源工具,主要面向分布式,服務(wù)化的系統(tǒng)提供服務(wù)注冊、服務(wù)一發(fā)現(xiàn)和配置管理的功能提供服務(wù)注冊/發(fā)現(xiàn)、健康檢查、Key/Value存儲、多數(shù)據(jù)中心和分布式一致性保證等功能
原理:通過定義json文件將可以進行數(shù)據(jù)采集的服務(wù)注冊到consul中,用于自動發(fā)現(xiàn)同時使用prometheus做為client端獲取consul上注冊的服務(wù),從而進行獲取數(shù)據(jù)
2)安裝consul_1.9.0版本
unzip consul_1.9.0_linux_amd64.zip -d /usr/local/bin/3)啟動開發(fā)者模式
consul開發(fā)者模式,可以快速開啟單節(jié)點的consul服務(wù),具有完整功能,方便開發(fā)測試
mkdir -pv /consul/data/ mkdir /etc/consul && cd /etc/consulconsul agent -dev -ui -data-dir=/consul/data/ \ -config-dir=/etc/consul/ -client=0.0.0.0agent -dev:運行開發(fā)模式
agent -server:運行server模式
-ui:ui界面
-data-dir:數(shù)據(jù)位置
/etc/consul:可以以文件形式定義各個services的配置,也可以基于api接口直接配置
-client:監(jiān)聽地址
4)編輯/etc/consul目錄下的prometheus-servers.json配置文件
vim /etc/consul/prometheus-servers.json{"services": [{"id": "prometheus-server-node01","name": "prom-server-node01","address": "192.168.226.128","port": 9090,"tags": ["prometheus"],"checks": [{"http": "http://192.168.226.128:9090/metrics","interval": "5s"}]}] } consul reload #重載配置文件啟動prometheus
5)創(chuàng)建consul自動發(fā)現(xiàn)的prometheus.yml文件
cd /usr/local/prometheus/mkdir consul_sd && cd consul_sdvim prometheus.yml- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.consul_sd_configs:- server: "192.168.32.10:8500"tags:- "prometheus"refresh_interval: 2m# All nodes- job_name: 'nodes'consul_sd_configs:- server: "192.168.32.10:8500"tags:- "nodes"refresh_interval: 2m配置文件啟動prometheus
./prometheus --config.file=./consul_sd/prometheus.yml開啟consul服務(wù)
6)注冊其他node節(jié)點
vim /etc/consul/nodes.json{"services": [{"id": "node_exporter-node01","name": "node01","address": "192.168.116.136","port": 9100,"tags": ["nodes"],"checks": [{"http": "http://192.168.116.136:9100/metrics","interval": "5s"}]},{"id": "node_exporter-node02","name": "node02","address": "192.168.116.137","port": 9100,"tags": ["nodes"],"checks": [{"http": "http://192.168.116.137:9100/metrics","interval": "5s"}]}] }重載配置文件
consul reload啟動node節(jié)點
總結(jié)
指標類型
計數(shù)器:單調(diào)遞增
儀表盤:起伏特征
直方圖:平均數(shù)或分位值
sumamary(統(tǒng)計數(shù)據(jù))
作業(yè)job和實例targets/instance
①job:能夠接收prometheus server數(shù)據(jù)scrape ;兩種job:“mysql_nodes" “mysql_master_slave”,每一種job會分開進行拉取數(shù)據(jù)以及展示數(shù)據(jù)
②指標(配置文件/promql) : targets 與 instance區(qū)別:都代表了被監(jiān)控端可以吐出監(jiān)控數(shù)據(jù)的被監(jiān)控端這個對象,tagers偏向于表示一個集合,instance偏向于表示具體的一個可提供監(jiān)控數(shù)據(jù)的對象
PromQL : 指標 {標簽1=標簽值1,......標簽N=標簽值N} 樣本(值)prometheusQL兩種向量
①即時向量:表示的是一個時間刻度
②時間范圍向量:表示的是一組時間區(qū)間
③即時向量選擇器:在指定的時間戳上的數(shù)值(稱之為即時向量樣本)
④范圍向量選擇器:在一組時間區(qū)間內(nèi)的0或1或多個數(shù)值(范圍向量樣本)
支持多種即時向量組合形式,不支持多種時間范圍向量組合形式
prometheus的配置文件
①global:全局配置 ②altermanager :告警模塊 ③rules ④scrape(服務(wù)發(fā)現(xiàn))
prometheus架構(gòu)模型(工作流程)
crape收集數(shù)據(jù)方式:①exporter ②自建/內(nèi)建指標 ③pushgateway
服務(wù)發(fā)現(xiàn):①基于fd文件 ②基于DNS——>SRV記錄 ③基于consul——>自動發(fā)現(xiàn),同時利用prometheus的自身周期掃描配置文件更新項并加載的特性,實現(xiàn)動態(tài)更新 ④基于k8s服務(wù)發(fā)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的Prometheus-----2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android仿淘宝口令复制弹出框功能
- 下一篇: VMware ESXi 6.0之后 缺少