背 景
Prometheus是一個開源的系統(tǒng)監(jiān)控和報警系統(tǒng),現(xiàn)在已經(jīng)加入到CNCF基金會,成為繼k8s之后第二個在CNCF托管的項目,在kubernetes容器管理系統(tǒng)中,通常會搭配Prometheus進行監(jiān)控,同時也支持多種exporter采集數(shù)據(jù),還支持pushgateway進行數(shù)據(jù)上報,Prometheus性能足夠支撐上萬臺規(guī)模的集群。
我們知道 zabbix 在監(jiān)控界占有不可撼動的地位,功能強大。但是對容器監(jiān)控顯得力不從心。為解決監(jiān)控容器的問題,對APM進行擴展,支持采集Prometheus exporter數(shù)據(jù),實現(xiàn)APM容器化監(jiān)控。
使用說明
1. 功能說明
對接prometheus性能數(shù)據(jù),實現(xiàn)snc-proxy/snc-agent采集prometheus【exporter】數(shù)據(jù)。
2. 使用范圍
采集prometheus性能數(shù)據(jù)。
3. 功能邏輯
3.1 snc-proxy/snc-agen添加支持prometheus采集協(xié)議。
主要實現(xiàn)邏輯:
1)定義監(jiān)控格式為prometheus.xx.xx[{$PURL},key,label1="xx",label2="xx",...],label為可變參數(shù);
2)添加PrometheusMetricProvider指標消費類,繼承AbstractMetricsConsumer,類型為prometheus;
3)根據(jù)監(jiān)控項參數(shù)key值,對prometheus metric數(shù)據(jù)進行篩選;
4)根據(jù)監(jiān)控項參數(shù)label值,對完成步驟2的數(shù)據(jù)進行進一步篩選,label值支持正則表達式和通配符;
5)處理篩選結果。普通監(jiān)控項賽選結果為1條,返回對象格式json文本,賽選結果為多條,返回結果數(shù)組格式json文本;自發(fā)現(xiàn)監(jiān)控項返回自發(fā)現(xiàn)監(jiān)控項結果。
3.2 AMP自定義prometheus node_exporter監(jiān)控模板。
3.3 通過snc-agen監(jiān)控工作原理,實現(xiàn)數(shù)據(jù)采集。
4. 格式規(guī)范/使??式
以prometheus.開頭。
prometheus metric數(shù)據(jù)格式:
4.1 普通監(jiān)控項
prometheus.xx.xx[{$PURL},key,label1="xx",label2="xx",...]
第?個參數(shù):prometheus metric數(shù)據(jù)url訪問連接;
第二個參數(shù):prometheus metric返回數(shù)據(jù)格式中的"{xxx}"前的key值信息;
后續(xù)參數(shù):數(shù)量不固定,為Prometheus metric返回數(shù)據(jù)格式中的"{xxx}"中的信息。
樣例:
prometheus.system.cup.count[http://XXX.XXX.XX.7:8000/actuator/prometheus,system_cpu_count]
#獲取系統(tǒng)CPU數(shù)量信息
prometheus.jvm.memory.used.heap[http://XXX.XXX.XX.7:8000/actuator/prometheus,jvm_memory_used_bytes,area="heap"]
#獲取jvm heap區(qū)內(nèi)存使用情況
prometheus.logback.events.total[http://XXX.XXX.XX.7:8000/actuator/prometheus,logback_events_total,level="*"]
#獲取日志事件數(shù)信息
4.2 特殊監(jiān)控項
prometheus.cache.metric[{$PURL},300]
prometheus.cache.metric為固定值;
第一個參數(shù):prometheus metric數(shù)據(jù)url訪問連接;
第二個參數(shù):緩存時間,單位秒。
普通監(jiān)控項每次采集都要通過http請求訪問Prometheus exporter獲取數(shù)據(jù),配置這個鍵值后會把Prometheus metric的返回信息緩存至snc-agent或者snc-proxy,有效期內(nèi)其他鍵值采集數(shù)據(jù)直接從緩存中獲取,否則每次都要http訪問獲取。
4.3 自發(fā)現(xiàn)配置
prometheus.discovery.metric[{$PURL},key,label1="xx",label2="xx",...]
prometheus.discovery.metric為固定鍵值;
第?個參數(shù):prometheus metric數(shù)據(jù)url訪問連接;
第二個參數(shù):prometheus metric返回數(shù)據(jù)格式中的"{xxx}"前的key值信息;
后續(xù)參數(shù):數(shù)量不固定,為Prometheus metric返回數(shù)據(jù)格式中的"{xxx}"中的信息。
自發(fā)現(xiàn)只適用于發(fā)現(xiàn)為Prometheus metric結果信息中格式為 xxx{label1="xx",label2="xx",...}的信息。
配置詳情
1. 設備名 agent
采集方式:Zabbix agent
鍵值:agent.activehost[{HOST.HOST}]
數(shù)據(jù)類型:字符
2. 緩存 Prometheus metric 信息
采集方式:Zabbix agent(active)
鍵值:prometheus.cache.metric[{$PURL},300]
數(shù)據(jù)類型:字符
prometheus.cache.metric為固定值;
{$PURL}為Prometheus metric的http請求地址;
300為緩存有效時間。
配置這個鍵值后會把Prometheus metric的返回信息緩存至snc-agent或者snc-proxy,有效期內(nèi)其他鍵值采集數(shù)據(jù)直接從緩存中獲取,否則每次都要http訪問獲取。
3. 普通監(jiān)控項配置
采集方式:Zabbix agent(active)
鍵值:prometheus.xx.xx[{$PURL},key,label1="xx",label2="xx",...]
{$PURL}為Prometheus metric的http請求地址;
key為Prometheus metric返回數(shù)據(jù)格式中的"{xxx}"前的信息;
label為Prometheus metric返回數(shù)據(jù)格式中的"{xxx}"中的信息,label不是必須輸入,長度可變。
首先會根據(jù)key對Prometheus metric信息進行篩選,如果鍵值包含label,再根據(jù)label進行進一步篩選,label的值支持通配符和正則表達式。
篩選結果為單條數(shù)據(jù),返回對象格式json文本。
例:
{
"metric": {
"exception": "None",
"method": "GET",
"uri": "/**",
"outcome": "REDIRECTION",
"status": "304"
},
"value": "0.0"
}
篩選結果為多條數(shù)據(jù),返回數(shù)組格式的json文本。
例:
[
{
"metric": {
"exception": "None",
"method": "GET",
"uri": "/**",
"outcome": "REDIRECTION",
"status": "304"
},
"value": "0.0"
},
{
"metric": {
"exception": "None",
"method": "OPTIONS",
"uri": "root",
"outcome": "SUCCESS",
"status": "200"
},
"value": "0.0"
}
]
配置監(jiān)控項,如果想要獲取返回結果中的某個信息,可以使用預處理JSON路徑獲取結果中的某個信息。
4. 依賴監(jiān)控項配置
普通監(jiān)控項返回結果為對象格式JSON文本或者數(shù)組格式JSON文本,如果想要基于普通監(jiān)控項的監(jiān)控信息進行解析,可以添加依賴監(jiān)控項,主要項為想要解析的普通監(jiān)控項。
5. 自發(fā)現(xiàn)配置
5.1 自發(fā)現(xiàn)規(guī)則配置
采集方式:Zabbix agent(active)
鍵值:prometheus.discovery.metric[{$PURL},key,label1="xx",label2="xx",...],label為可選參數(shù)。
自發(fā)現(xiàn)只適用于發(fā)現(xiàn)為Prometheus metric結果信息中格式為 xxx{label1="xx",label2="xx",...}的信息。
5.2 監(jiān)控項原型配置
采集方式:Zabbix agent(active)
鍵值:prometheus.xx.xx[{$PURL},key,label="{#LABEL}"]
其中{#xxx}為自發(fā)現(xiàn)規(guī)則鍵值中的label轉(zhuǎn)換為大寫的信息。如果自發(fā)先規(guī)則鍵值中沒有傳label,則{#xxx}變量為所有篩選結果 xxx{label1="xx",label2="xx",...}中的label的大寫信息。
自發(fā)現(xiàn)監(jiān)控項:
版 本
基于GA03版本實現(xiàn)snc-proxy-agent的擴展。
展 望
實現(xiàn)支持prometheus exporter數(shù)據(jù)HTTP訪問授權驗證。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129557.html
摘要:本文已經(jīng)收錄在合集都可以采集那些指標常用合集中。允許通過和對接口進行黑盒探測監(jiān)控。我們來看這個示例文件,其他是經(jīng)常搭配服務發(fā)現(xiàn)來進行工作的,比如搭配基于的服務發(fā)現(xiàn)來進行。小結其實在監(jiān)控系統(tǒng)中非常實用,尤其是監(jiān)控和監(jiān)控。 本文已經(jīng)收錄在 Prometheus 合集 Prometheus 都可以采集那些指標?-- ...
摘要:根據(jù)配置文件,對接收到的警報進行處理,發(fā)出告警。在默認情況下,用戶只需要部署多套,采集相同的即可實現(xiàn)基本的。通過將監(jiān)控與數(shù)據(jù)分離,能夠更好地進行彈性擴展。參考文檔本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 系統(tǒng)架構圖 1.x版本的Prometheus的架構圖為:showImg(https://segmentfault.com/img/remote/1460000018372350?w=14...
摘要:根據(jù)配置文件,對接收到的警報進行處理,發(fā)出告警。在默認情況下,用戶只需要部署多套,采集相同的即可實現(xiàn)基本的。通過將監(jiān)控與數(shù)據(jù)分離,能夠更好地進行彈性擴展。參考文檔本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 系統(tǒng)架構圖 1.x版本的Prometheus的架構圖為:showImg(https://segmentfault.com/img/remote/1460000018372350?w=14...
摘要:比如定義了基礎的數(shù)據(jù)類型以及對應的方法收集事件次數(shù)等單調(diào)遞增的數(shù)據(jù)收集當前的狀態(tài),比如數(shù)據(jù)庫連接數(shù)收集隨機正態(tài)分布數(shù)據(jù),比如響應延遲收集隨機正態(tài)分布數(shù)據(jù),和是類似的庫的詳細解析可以參考本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 概述 Prometheus從2016年加入CNCF,到2018年8月畢業(yè),現(xiàn)在已經(jīng)成為Kubernetes的官方監(jiān)控方案,接下來的幾篇文章將詳細解讀Promethu...
摘要:比如定義了基礎的數(shù)據(jù)類型以及對應的方法收集事件次數(shù)等單調(diào)遞增的數(shù)據(jù)收集當前的狀態(tài),比如數(shù)據(jù)庫連接數(shù)收集隨機正態(tài)分布數(shù)據(jù),比如響應延遲收集隨機正態(tài)分布數(shù)據(jù),和是類似的庫的詳細解析可以參考本文為容器監(jiān)控實踐系列文章,完整內(nèi)容見 概述 Prometheus從2016年加入CNCF,到2018年8月畢業(yè),現(xiàn)在已經(jīng)成為Kubernetes的官方監(jiān)控方案,接下來的幾篇文章將詳細解讀Promethu...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20