chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何構(gòu)建高可用Prometheus監(jiān)控體系

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2025-08-01 09:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從0到1構(gòu)建高可用Prometheus監(jiān)控體系:避坑指南與性能調(diào)優(yōu)實(shí)戰(zhàn)

核心價(jià)值:本文將分享我在生產(chǎn)環(huán)境中構(gòu)建Prometheus監(jiān)控體系的完整實(shí)戰(zhàn)經(jīng)驗(yàn),包含踩過(guò)的坑、調(diào)優(yōu)技巧和最佳實(shí)踐,幫你少走彎路,快速搭建企業(yè)級(jí)監(jiān)控系統(tǒng)。

為什么選擇Prometheus?

在云原生時(shí)代,傳統(tǒng)監(jiān)控工具已經(jīng)無(wú)法滿足微服務(wù)架構(gòu)的復(fù)雜需求。Prometheus憑借其Pull模式、多維數(shù)據(jù)模型強(qiáng)大的查詢語(yǔ)言PromQL,成為了CNCF畢業(yè)項(xiàng)目中的監(jiān)控標(biāo)桿。

但是,從Demo到生產(chǎn)環(huán)境,這中間有著巨大的鴻溝。我見(jiàn)過(guò)太多團(tuán)隊(duì)在生產(chǎn)環(huán)境中遭遇Prometheus的各種坑:內(nèi)存爆炸、查詢超時(shí)、數(shù)據(jù)丟失...

架構(gòu)設(shè)計(jì):高可用的基石

核心架構(gòu)原則

聯(lián)邦集群模式是我強(qiáng)烈推薦的生產(chǎn)架構(gòu):

# 聯(lián)邦配置示例
global:
scrape_interval:15s
evaluation_interval:15s

scrape_configs:
-job_name:'federate'
 scrape_interval:15s
 honor_labels:true
 metrics_path:'/federate'
 params:
  'match[]':
   -'{job=~"kubernetes-.*"}'
   -'{__name__=~"job:.*"}'
 static_configs:
  -targets:
   -'prometheus-shard1:9090'
   -'prometheus-shard2:9090'

分片策略

根據(jù)業(yè)務(wù)維度進(jìn)行分片,而不是簡(jiǎn)單的hash分片:

?基礎(chǔ)設(shè)施分片:監(jiān)控物理機(jī)、網(wǎng)絡(luò)設(shè)備

?應(yīng)用分片:按業(yè)務(wù)線劃分

?中間件分片:數(shù)據(jù)庫(kù)、緩存、消息隊(duì)列

生產(chǎn)環(huán)境避坑指南

坑1:內(nèi)存使用失控

現(xiàn)象:Prometheus內(nèi)存占用持續(xù)增長(zhǎng),最終OOM

根因:高基數(shù)標(biāo)簽導(dǎo)致時(shí)間序列爆炸

# 排查高基數(shù)標(biāo)簽
curl'http://localhost:9090/api/v1/label/__name__/values'| jq'.data[]'|wc-l

# 查看內(nèi)存中的序列數(shù)
curl'http://localhost:9090/api/v1/query?query=prometheus_tsdb_symbol_table_size_bytes'

解決方案

# 限制標(biāo)簽基數(shù)
metric_relabel_configs:
-source_labels:[__name__]
 regex:'high_cardinality_metric.*'
 action:drop
-source_labels:[user_id]
 regex:'.*'
 target_label:user_id
 replacement:'masked'

坑2:查詢性能問(wèn)題

現(xiàn)象:復(fù)雜查詢超時(shí),Grafana面板加載緩慢

根因:查詢時(shí)間范圍過(guò)大,聚合操作效率低

#  錯(cuò)誤寫法:大時(shí)間范圍聚合
rate(http_requests_total[1d])

#  正確寫法:使用recording rules
jobrate5m

坑3:存儲(chǔ)空間問(wèn)題

生產(chǎn)環(huán)境中,存儲(chǔ)增長(zhǎng)往往超出預(yù)期:

# 存儲(chǔ)優(yōu)化配置
storage:
tsdb:
 retention.time:30d
 retention.size:100GB
 min-block-duration:2h
 max-block-duration:36h

性能調(diào)優(yōu)實(shí)戰(zhàn)

內(nèi)存調(diào)優(yōu)

根據(jù)監(jiān)控規(guī)模調(diào)整JVM參數(shù)(如果使用Java應(yīng)用)和系統(tǒng)參數(shù):

# 系統(tǒng)級(jí)調(diào)優(yōu)
echo'vm.max_map_count=262144'>> /etc/sysctl.conf
echo'fs.file-max=65536'>> /etc/sysctl.conf

# Prometheus啟動(dòng)參數(shù)
./prometheus 
 --storage.tsdb.path=/data/prometheus 
 --storage.tsdb.retention.time=30d 
 --storage.tsdb.retention.size=100GB 
 --query.max-concurrency=20 
 --query.max-samples=50000000

Recording Rules優(yōu)化

將復(fù)雜查詢預(yù)計(jì)算,提升查詢性能:

groups:
-name:http_requests
 interval:30s
 rules:
  -record:jobrate5m
   expr:sum(rate(http_requests_total[5m]))by(job)
  
  -record:jobrate5m
   expr:sum(rate(http_requests_total{status=~"5.."}[5m]))by(job)
   
  -record:job:http_requests_error_rate
   expr:jobrate5m/jobrate5m

存儲(chǔ)層優(yōu)化

使用遠(yuǎn)程存儲(chǔ)解決長(zhǎng)期存儲(chǔ)問(wèn)題:

# 遠(yuǎn)程存儲(chǔ)配置
remote_write:
-url:"http://thanos-receive:19291/api/v1/receive"
 queue_config:
  max_samples_per_send:10000
  batch_send_deadline:5s
  max_shards:200

高可用部署實(shí)踐

多副本部署

# Kubernetes部署配置
apiVersion:apps/v1
kind:StatefulSet
metadata:
name:prometheus
spec:
replicas:2
selector:
 matchLabels:
  app:prometheus
template:
 spec:
  containers:
  -name:prometheus
   image:prom/prometheus:v2.45.0
   args:
    -'--storage.tsdb.path=/prometheus'
    -'--config.file=/etc/prometheus/prometheus.yml'
    -'--web.console.libraries=/etc/prometheus/console_libraries'
    -'--web.console.templates=/etc/prometheus/consoles'
    -'--web.enable-lifecycle'
    -'--web.enable-admin-api'
   resources:
    requests:
     memory:"4Gi"
     cpu:"1000m"
    limits:
     memory:"8Gi"
     cpu:"2000m"

數(shù)據(jù)一致性保證

使用Thanos實(shí)現(xiàn)長(zhǎng)期存儲(chǔ)和全局查詢:

# Thanos Sidecar
-name:thanos-sidecar
image:thanosio/thanos:v0.31.0
args:
 -sidecar
 ---tsdb.path=/prometheus
 ---prometheus.url=http://localhost:9090
 ---objstore.config-file=/etc/thanos/objstore.yml

關(guān)鍵指標(biāo)監(jiān)控

Prometheus自監(jiān)控

監(jiān)控Prometheus自身的健康狀態(tài):

# TSDB指標(biāo)
prometheus_tsdb_head_series
prometheus_tsdb_head_samples_appended_total
prometheus_config_last_reload_successful

# 查詢性能指標(biāo)
prometheus_engine_query_duration_seconds
prometheus_engine_queries_concurrent_max

告警規(guī)則設(shè)計(jì)

groups:
-name:prometheus.rules
 rules:
 -alert:PrometheusConfigReloadFailed
  expr:prometheus_config_last_reload_successful==0
  for:5m
  labels:
   severity:warning
  annotations:
   summary:"Prometheus配置重載失敗"
   
 -alert:PrometheusQueryHigh
  expr:rate(prometheus_engine_query_duration_seconds_sum[5m])>0.1
  for:2m
  labels:
   severity:warning
  annotations:
   summary:"Prometheus查詢延遲過(guò)高"

故障排查技巧

常用排查命令

# 檢查配置語(yǔ)法
./promtool check config prometheus.yml

# 檢查規(guī)則語(yǔ)法
./promtool check rules /etc/prometheus/rules/*.yml

# 查看TSDB狀態(tài)
curl localhost:9090/api/v1/status/tsdb

# 分析查詢性能
curl'localhost:9090/api/v1/query?query=up&stats=all'

性能分析工具

使用Go的pprof分析Prometheus性能:

# 獲取CPU profile
go tool pprof http://localhost:9090/debug/pprof/profile

# 獲取內(nèi)存profile
go tool pprof http://localhost:9090/debug/pprof/heap

最佳實(shí)踐總結(jié)

標(biāo)簽設(shè)計(jì)原則

1.控制基數(shù):?jiǎn)蝹€(gè)標(biāo)簽值不超過(guò)10萬(wàn)

2.語(yǔ)義清晰:標(biāo)簽名和值要有明確含義

3.層次合理:避免過(guò)深的標(biāo)簽嵌套

查詢優(yōu)化策略

1.使用Recording Rules預(yù)計(jì)算復(fù)雜指標(biāo)

2.限制查詢時(shí)間范圍,避免大范圍聚合

3.合理使用函數(shù),rate()比increase()性能更好

存儲(chǔ)規(guī)劃建議

1.SSD存儲(chǔ):TSDB對(duì)IO要求較高

2.預(yù)留空間:至少預(yù)留50%存儲(chǔ)空間

3.定期清理:設(shè)置合理的retention策略

進(jìn)階優(yōu)化方向

1. 自動(dòng)擴(kuò)縮容

基于查詢負(fù)載和存儲(chǔ)使用情況,實(shí)現(xiàn)Prometheus集群的自動(dòng)擴(kuò)縮容。

2. 智能路由

根據(jù)查詢模式,將請(qǐng)求智能路由到最優(yōu)的Prometheus實(shí)例。

3. 機(jī)器學(xué)習(xí)優(yōu)化

使用機(jī)器學(xué)習(xí)算法預(yù)測(cè)資源需求,提前進(jìn)行容量規(guī)劃。

總結(jié)

構(gòu)建高可用的Prometheus監(jiān)控體系是一個(gè)系統(tǒng)工程,需要在架構(gòu)設(shè)計(jì)、性能調(diào)優(yōu)、故障處理等多個(gè)維度下功夫。本文分享的實(shí)戰(zhàn)經(jīng)驗(yàn)和避坑指南,希望能幫助你快速搭建穩(wěn)定可靠的監(jiān)控系統(tǒng)。

記住,監(jiān)控系統(tǒng)的價(jià)值不在于收集了多少指標(biāo),而在于能否在關(guān)鍵時(shí)刻提供準(zhǔn)確的信息,幫助我們快速定位和解決問(wèn)題。

關(guān)于作者:10年運(yùn)維經(jīng)驗(yàn),專注云原生監(jiān)控體系建設(shè),歡迎交流討論!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 監(jiān)控系統(tǒng)

    關(guān)注

    21

    文章

    4124

    瀏覽量

    183870
  • Prometheus
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    1978

原文標(biāo)題:從0到1構(gòu)建高可用Prometheus監(jiān)控體系:避坑指南與性能調(diào)優(yōu)實(shí)戰(zhàn)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Prometheus的架構(gòu)原理從“監(jiān)控”談起

    Prometheus是繼Kubernetes(k8s)之后,CNCF畢業(yè)的第二個(gè)開(kāi)源項(xiàng)目,其來(lái)源于Google的Borgmon。本文從監(jiān)控這件事說(shuō)起,深入淺出Prometheus的架構(gòu)原理、目標(biāo)發(fā)現(xiàn)
    的頭像 發(fā)表于 10-10 15:47 ?4818次閱讀
    <b class='flag-5'>Prometheus</b>的架構(gòu)原理從“<b class='flag-5'>監(jiān)控</b>”談起

    Prometheus的基本原理與開(kāi)發(fā)指南

    PromQL高級(jí)實(shí)戰(zhàn) 告警引擎深度解析 本地存儲(chǔ)與遠(yuǎn)程存儲(chǔ) 梯度運(yùn)維管理平臺(tái)監(jiān)控模塊架構(gòu) 01監(jiān)控系統(tǒng)概述 導(dǎo)讀:本章從監(jiān)控的作用、架構(gòu)分類、指標(biāo)監(jiān)控發(fā)展史、指標(biāo)
    的頭像 發(fā)表于 11-09 10:45 ?1813次閱讀
    <b class='flag-5'>Prometheus</b>的基本原理與開(kāi)發(fā)指南

    prometheus監(jiān)控服務(wù)的整個(gè)流程介紹

    最近有個(gè)新項(xiàng)目需要搞一套完整的監(jiān)控告警系統(tǒng),我們使用了開(kāi)源監(jiān)控告警系統(tǒng)Prometheus;其功能強(qiáng)大,可以很方便對(duì)其進(jìn)行擴(kuò)展,并且可以安裝和使用簡(jiǎn)單;本文首先介紹Prometheus
    發(fā)表于 12-23 17:34

    django-prometheus數(shù)據(jù)監(jiān)控

    django-prometheus.zip
    發(fā)表于 04-26 11:07 ?1次下載
    django-<b class='flag-5'>prometheus</b>數(shù)據(jù)<b class='flag-5'>監(jiān)控</b>

    Prometheus服務(wù)監(jiān)控系統(tǒng)

    prometheus.zip
    發(fā)表于 04-26 10:23 ?3次下載
    <b class='flag-5'>Prometheus</b>服務(wù)<b class='flag-5'>監(jiān)控</b>系統(tǒng)

    使用Thanos+Prometheus+Grafana構(gòu)建監(jiān)控系統(tǒng)

    對(duì)于彈性伸縮和可用的系統(tǒng)來(lái)說(shuō),一般有大量的指標(biāo)數(shù)據(jù)需要收集和存儲(chǔ),如何為這樣的系統(tǒng)打造一個(gè)監(jiān)控方案呢?本文介紹了如何使用 Thanos+Prometheus+Grafana
    的頭像 發(fā)表于 05-05 21:14 ?3198次閱讀

    關(guān)于Prometheus監(jiān)控系統(tǒng)相關(guān)的知識(shí)體系

    今天浩道跟大家分享關(guān)于Prometheus監(jiān)控系統(tǒng)相關(guān)的知識(shí)體系,讓你通過(guò)本文可以大體掌握其相關(guān)知識(shí)體系
    的頭像 發(fā)表于 10-20 09:06 ?1666次閱讀

    prometheus下載安裝教程

    Prometheus 是一個(gè)開(kāi)放性的監(jiān)控解決方案,用戶可以非常方便的安裝和使用 Prometheus 并且能夠非常方便的對(duì)其進(jìn)行擴(kuò)展。 在Prometheus的架構(gòu)設(shè)計(jì)中,
    的頭像 發(fā)表于 01-13 16:07 ?9364次閱讀
    <b class='flag-5'>prometheus</b>下載安裝教程

    兩種監(jiān)控工具prometheus和zabbix架構(gòu)對(duì)比

    Prometheus 基本上是正相反,上手難度大一些,但由于定制靈活度,數(shù)據(jù)也有更多的聚合可能,起步后的使用難度遠(yuǎn)小于 Zabbix。
    發(fā)表于 02-19 10:49 ?1787次閱讀

    基于kube-prometheus的大數(shù)據(jù)平臺(tái)監(jiān)控系統(tǒng)設(shè)計(jì)

    本文介紹了如何基于 kube-prometheus 設(shè)計(jì)一個(gè)監(jiān)控系統(tǒng), 以靈活簡(jiǎn)單的方式對(duì) kubernetes 上的應(yīng)用進(jìn)行指標(biāo)采集,并實(shí)現(xiàn)監(jiān)控報(bào)警功能。
    的頭像 發(fā)表于 05-30 17:02 ?1002次閱讀

    40個(gè)步驟安裝部署Prometheus監(jiān)控系統(tǒng)

    Prometheus是一套開(kāi)源的監(jiān)控&報(bào)警&時(shí)間序列數(shù)據(jù)庫(kù)的組合,起始是由SoundCloud公司開(kāi)發(fā)的。隨著發(fā)展,越來(lái)越多公司和組織接受采用Prometheus,社區(qū)也十分活躍,他們便將它獨(dú)立成開(kāi)源項(xiàng)目,并且有公司來(lái)運(yùn)作。
    的頭像 發(fā)表于 08-14 11:53 ?5.4w次閱讀
    40個(gè)步驟安裝部署<b class='flag-5'>Prometheus</b><b class='flag-5'>監(jiān)控</b>系統(tǒng)

    基于Prometheus開(kāi)源的完整監(jiān)控解決方案

    每一個(gè)被 Prometheus 監(jiān)控的服務(wù)都是一個(gè) Job,Prometheus 為這些 Job 提供了官方的 SDK ,利用這個(gè) SDK 可以自定義并導(dǎo)出自己的業(yè)務(wù)指標(biāo),也可以
    發(fā)表于 10-18 09:15 ?1010次閱讀
    基于<b class='flag-5'>Prometheus</b>開(kāi)源的完整<b class='flag-5'>監(jiān)控</b>解決方案

    華為云 FunctionGraph 構(gòu)建可用系統(tǒng)的實(shí)踐

    ,詳細(xì)介紹如何構(gòu)建可用的 Serverless 計(jì)算平臺(tái),實(shí)現(xiàn)客戶和平臺(tái)雙贏。 可用介紹
    的頭像 發(fā)表于 05-09 23:14 ?1005次閱讀
    華為云 FunctionGraph <b class='flag-5'>構(gòu)建</b><b class='flag-5'>高</b><b class='flag-5'>可用</b>系統(tǒng)的實(shí)踐

    從零入門Prometheus:構(gòu)建企業(yè)級(jí)監(jiān)控與報(bào)警系統(tǒng)的最佳實(shí)踐指南

    測(cè)試環(huán)境 prometheus-2.26.0.linux-amd64.tar.gz下載地址:https://github.com/prometheus/prometheus/releases
    的頭像 發(fā)表于 02-10 11:28 ?1009次閱讀
    從零入門<b class='flag-5'>Prometheus</b>:<b class='flag-5'>構(gòu)建</b>企業(yè)級(jí)<b class='flag-5'>監(jiān)控</b>與報(bào)警系統(tǒng)的最佳實(shí)踐指南

    Zabbix與Prometheus運(yùn)維監(jiān)控系統(tǒng)的對(duì)比

    在當(dāng)今云原生和微服務(wù)架構(gòu)盛行的時(shí)代,監(jiān)控系統(tǒng)已成為運(yùn)維工程師不可或缺的核心工具。面對(duì)市場(chǎng)上眾多監(jiān)控解決方案,Zabbix和Prometheus作為兩大主流選擇,各自擁有獨(dú)特的優(yōu)勢(shì)和適用場(chǎng)景。本文將從架構(gòu)設(shè)計(jì)、性能表現(xiàn)、功能特性、
    的頭像 發(fā)表于 09-18 14:57 ?213次閱讀