伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Thanos+Prometheus+Grafana構建監控系統

馬哥Linux運維 ? 來源:luizrojo.medium ? 作者:Luiz Rojo ? 2022-05-05 21:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于彈性伸縮和高可用的系統來說,一般有大量的指標數據需要收集和存儲,如何為這樣的系統打造一個監控方案呢?本文介紹了如何使用 Thanos+Prometheus+Grafana 構建監控系統。

4b3d2ff8-ca1e-11ec-bce3-dac502259ad0.png

集群容量概覽

直到今年 1 月,我一直在使用一款企業級監控解決方案來監控 Kubernetes 集群,這款監控方案還用于 APM。它用起來很自然,與 Kubernetes 的集成非常容易,只需要進行一些細微的調整,并且可以集成 APM 和基礎設施指標。

盡管這款監控方案可以很容易地收集和存儲數據,但使用指標創建警報卻有很大的查詢限制。經常我們收到的告警和儀表盤上顯示的內容會不一樣。更不用說我們有 6 個集群,收集和存儲的指標數量非常多,這在很大程度上增加了我們的經濟成本。

經過一番考慮,我們認識到繼續使用這款監控方案弊大于利。是時候替換我們的監控方案了!但是,該使用什么產品或者工具呢?Grafana 是可視化工具的最佳選項,但我們的“后端”需要具備彈性伸縮和高可用能力,該使用什么工具呢?

純粹使用 OpenTSDB 的話,安裝需要太多的工作和精力;單機 Prometheus 不提供復制能力,還需要為其配備多個數據庫;TimeScaleDB 看起來不錯,但我不太會使用 PostgreSQL。

在對以上這些方案進行了一些實驗后,我查看了 CNCF 網站,最后找到了 Thanos!它滿足我們所有的需求:可長期保留數據、可復制、高可用、適合微服務、對使用相同數據庫的所有集群有一個 global view!

架構

我們的集群上沒有可用的持久化存儲(所有服務都保持無狀態),所以默認的 Prometheus + Thanos sidecar 方法不可用,metric 存儲必須置于集群之外。此外,集群之間相互隔離,將 Thanos 組件綁定到一組特定的集群是不可能的,必須從“外部”監控集群。

綜上所述,考慮到高可用性以及 Thanos 在虛擬機上運行的可能性,我們最終的架構是這樣的:

4b55303a-ca1e-11ec-bce3-dac502259ad0.png

如圖所示,我們是多數據中心的架構。其中每個中心都有一組 Grafana + Query 服務器,一組存儲服務器和三個 Receive 服務器(集群數量的一半)。

Grafana 使用的數據庫還有一個 AWS RDS。這個數據庫不必很龐大(降低成本),我們團隊也不需要管理 MySQL。

在 Thanos 提供的所有組件中,我們實現了其中的 4 個:

Receive:負責 TSDB,還管理所有運行 receive 的服務器和 TSBD 塊上傳到 S3 之間的復制。

Query:負責查詢 receive 數據庫。

Store:讀取 S3 以獲取不再存儲在 receive 中的長期 metrics。

Compactor:管理存儲在 S3 中的 TSDB 塊的數據下采樣和壓縮。

Data Ingestion

所有集群的 data ingestion 都由集群內運行的專用 Prometheus Pod 管理。它從 control plate(API 服務器、控制器和調度程序)、etcd 集群以及集群內的 Pod 收集指標,這些集群內具有與基礎設施和 Kubernetes 本身相關的指標(Kube-proxy、Kubelet、Node Exporter、State Metrics 、Metrics Server 和其他具有 scraping annotation 的 Pod)。

Prometheus Pod 然后將信息發送到使用遠程存儲配置管理 TSDB 的 receive 服務器之一。

4b932638-ca1e-11ec-bce3-dac502259ad0.png

data ingestion

所有數據都發送到單個服務器,然后復制到其他服務器。Prometheus 使用的 DNS 地址是一個 DNS GSLB,它探測每個 receive 服務器并平衡健康的服務器之間的 DNS 解析,在所有服務器之間分擔負載,因為 DNS 解析只為每個 DNS 查詢提供一個 IP。

需要強調一下,數據必須發送到單個 receive 實例并讓它管理復制,發送相同的 metric 會導致復制失敗和行為異常。

在這個層面上,metrics 也會上傳到 S3 存儲桶進行長期留存。Receive 每 2 小時(當每個 TSDB 塊關閉時)上傳一次 block,這些 metric 可用于使用 Store 組件進行查詢。

還可以設置本地數據的保留時間。在這種情況下,所有本地數據都會保留 30 天以供日常使用和故障排除,這樣可以加快查詢速度。

超過 30 天的數據僅在 S3 上可用,最長可保留 1 年,用于長期評估和比較。

數據查詢

數據被收集并存儲在 receiver 中以供查詢。這部分也設置為多數據中心可用。

每臺服務器都運行 Grafana 和 Query,如果其中一臺(或兩臺)出現故障,我們可以更輕松地從負載均衡器中識別并刪除。在 Grafana 中,數據源配置為 localhost,因此它始終使用本地 Query 來獲取數據。

對于查詢配置,它必須知道所有存儲了 metrics 的服務器(Receiver 和 Store)。query 組件知道哪個服務器在線并且能夠從它們收集 metrics。

4baaeebc-ca1e-11ec-bce3-dac502259ad0.png

數據查詢

它還管理重復數據刪除,因為它查詢所有服務器并配置了 replication,所有 metrics 都有多個副本。可以使用分配給 metrics 的標簽和查詢參數 (--query.replica-label=QUERY.REPLICA-LABEL) 來完成。通過這些配置,query 組件知道從 Receiver 和 Store 收集的 metrics 是否重復并僅使用一個數據點。

長期數據

如前所述,數據在本地最多保留 30 天,其他所有內容都存儲在 S3 上。這樣可以減少 Receiver 上所需的空間量并降低成本,因為塊存儲比對象存儲更貴。更何況查詢超過 30 天的數據不是很常見,主要用于資源使用歷史和預測。

4bd1a41c-ca1e-11ec-bce3-dac502259ad0.png

遠程數據查詢

該 Store 還保留存儲在 S3 存儲桶上的每個 TSDB 塊的索引的本地副本,因此如果需要查詢超過 30 天的數據,它知道要下載和使用哪些塊來提供數據。

數據情況

考慮到所有集群,該監控方案:

監控了 6 個 Kubernetes 集群;

收集了 670 個服務的 metrics;

使用 Node Exporter 監控了 246 個服務器;

每分鐘收集約 27w 個指標;

每天 ingest 約 7.3 GB 的數據,或每月 ingest 約 226.3 GB 的數據;

為 Kubernetes 組件創建了 40 個專用儀表盤;

在 Grafana 上創建了 116 個警報。

對于每月費用,由于大部分組件在本地運行,成本降低了 90.61%,從每月 38,421.25 美元降至 3,608.99 美元,其中包括 AWS 服務成本。

總結

配置和設置上述架構大約需要一個月左右的時間,包括測試其他一些解決方案、驗證架構、實現、在集群上開啟收集以及創建所有儀表盤。

在第一周,好處是顯而易見的。監控集群變得更加容易,儀表盤可以快速構建和定制,收集 metrics 幾乎是即插即用的,大多數應用程序以 Prometheus 格式導出 metrics,并根據 annotations 自動收集。

此外,通過集成 Grafana 的 LDAP 可以達到更精細的團隊權限控制。開發人員和 SRE 可以訪問大量儀表盤,其中包含有關其命名空間、ingress 等的相關 metrics。

原文標題:使用 Thanos 和 Prometheus 打造一個高可用的 Kubernetes 監控系統

文章出處:【微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 監控系統
    +關注

    關注

    21

    文章

    4184

    瀏覽量

    185049
  • kubernetes
    +關注

    關注

    0

    文章

    268

    瀏覽量

    9516
  • Prometheus
    +關注

    關注

    0

    文章

    36

    瀏覽量

    2062

原文標題:使用 Thanos 和 Prometheus 打造一個高可用的 Kubernetes 監控系統

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Prometheus的架構原理從“監控”談起

    Prometheus是繼Kubernetes(k8s)之后,CNCF畢業的第二個開源項目,其來源于Google的Borgmon。本文從監控這件事說起,深入淺出Prometheus的架構原理、目標發現
    的頭像 發表于 10-10 15:47 ?5369次閱讀
    <b class='flag-5'>Prometheus</b>的架構原理從“<b class='flag-5'>監控</b>”談起

    阿里云容器Kubernetes監控(二) - 使用Grafana展現Pod監控數據

    摘要: 簡介 在kubernetes的監控方案中,Heapster+Influxdb+Grafana的組合相比prometheus等開源方案而言更為簡單直接。而且Heapster在
    發表于 05-10 15:28

    prometheus監控服務的整個流程介紹

    最近有個新項目需要搞一套完整的監控告警系統,我們使用了開源監控告警系統Prometheus;其功能強大,可以很方便對其進行擴展,并且可以安裝
    發表于 12-23 17:34

    簡述linux-arm64 UOS安裝開源Grafana的步驟

    (linux-arm64)UOS安裝開源Grafana-7.2.0,和CentOS安裝步驟一樣Grafana是一款用Go語言開發的開源數據可視化工具,可以做數據監控和數據統計,帶有告警功能,支持
    發表于 06-16 15:00

    Thanos大規模Prometheus集群解決方案

    thanos.zip
    發表于 04-25 10:58 ?0次下載
    <b class='flag-5'>Thanos</b>大規模<b class='flag-5'>Prometheus</b>集群解決方案

    Prometheus服務監控系統

    prometheus.zip
    發表于 04-26 10:23 ?3次下載
    <b class='flag-5'>Prometheus</b>服務<b class='flag-5'>監控</b><b class='flag-5'>系統</b>

    SpringBoot+Prometheus+Grafana實現自定義監控

    為 /actuator/Prometheus 的 HTTP 服務來供 Prometheus 抓取數據,不過默認該服務是關閉的,該配置將打開所有的 Actuator 服務。
    的頭像 發表于 12-26 16:02 ?2845次閱讀

    Grafana 9泰酷了吧

    Grafana 9.0 的主要重點是改善 Grafana 的用戶體驗,使可觀察性和數據可視化更易用也更容易獲得。無論是通過 Prometheus 和 Loki 可視化查詢生成器還是面板和儀表板搜索
    的頭像 發表于 05-30 11:30 ?1060次閱讀
    <b class='flag-5'>Grafana</b> 9泰酷了吧

    基于kube-prometheus的大數據平臺監控系統設計

    本文介紹了如何基于 kube-prometheus 設計一個監控系統, 以靈活簡單的方式對 kubernetes 上的應用進行指標采集,并實現監控報警功能。
    的頭像 發表于 05-30 17:02 ?1270次閱讀

    從零入門Prometheus:構建企業級監控與報警系統的最佳實踐指南

    測試環境 prometheus-2.26.0.linux-amd64.tar.gz下載地址:https://github.com/prometheus/prometheus/releases
    的頭像 發表于 02-10 11:28 ?1359次閱讀
    從零入門<b class='flag-5'>Prometheus</b>:<b class='flag-5'>構建</b>企業級<b class='flag-5'>監控</b>與報警<b class='flag-5'>系統</b>的最佳實踐指南

    使用PrometheusGrafana實現MindIE服務可視化監控功能

    在 MindIE 服務化運行過程中,為了及時掌握服務的運行狀態、性能表現以及發現潛在問題,提供了服務監控指標查詢接口(普羅 (Prometheus) 格式)。該接口能夠幫助開發者和運維人員獲取豐富的服務監控指標數據,為優化服務配
    的頭像 發表于 04-21 11:48 ?2407次閱讀
    使用<b class='flag-5'>Prometheus</b>與<b class='flag-5'>Grafana</b>實現MindIE服務可視化<b class='flag-5'>監控</b>功能

    如何構建高可用Prometheus監控體系

    在云原生時代,傳統監控工具已經無法滿足微服務架構的復雜需求。Prometheus憑借其Pull模式、多維數據模型和強大的查詢語言PromQL,成為了CNCF畢業項目中的監控標桿。
    的頭像 發表于 08-01 09:10 ?946次閱讀

    Zabbix與Prometheus運維監控系統的對比

    在當今云原生和微服務架構盛行的時代,監控系統已成為運維工程師不可或缺的核心工具。面對市場上眾多監控解決方案,Zabbix和Prometheus作為兩大主流選擇,各自擁有獨特的優勢和適用
    的頭像 發表于 09-18 14:57 ?729次閱讀

    使用VictoriaMetrics的Prometheus遠程存儲方案

    Prometheus單機存儲在生產環境跑到一定規模就會碰壁——單節點磁盤容量有限,TSDB默認保留15天數據,想存半年以上的監控數據基本不現實。更麻煩的是Prometheus沒有原生的高可用方案
    的頭像 發表于 02-26 16:30 ?254次閱讀

    使用PrometheusGrafana的企業級監控落地實戰

    生產環境跑著幾百臺機器,出了故障全靠人肉巡檢和用戶反饋,這種被動運維的日子我們團隊經歷了兩年。2019年開始全面切換到Prometheus+Grafana體系,到現在穩定運行了五年多,監控覆蓋了主機、容器、中間件、業務指標四個層面,日均采集指標點超過2000萬。
    的頭像 發表于 02-27 10:58 ?312次閱讀