自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

海外多區(qū)下的監(jiān)控系統(tǒng),你了解幾分?

安全 數據安全
每個區(qū)域是一個獨立的對外提供服務的單元,具有獨立的數據存儲、K8s 集群、API 網關等。這種分區(qū)的服務拓撲,會給運維帶來很大挑戰(zhàn),需要在每個區(qū)逐一進行變更。

1. 相關背景

待在工作崗位上,總得做點事,也想做點新鮮事。但并不是你想做就有機會去做,并能做好。

一個人做、還是能和大家一起做,最終的結果是不一樣的。這就涉及到時機,大家能否達成一致的動機。

今年是降本增效的一年,很多公司在裁員、減配降本。因此,對整個線上服務的負載情況匯總,精細化的監(jiān)控數據有所需求。

為了合規(guī),海外服務的架構分區(qū),數據分散管理,以前很難想象可以集中數據。但是這種需求,現在有了解決辦法。

在內部的一些系統(tǒng)中,目前的監(jiān)控系統(tǒng)無法程序化集成,無法通過規(guī)則拼接 URL 展示監(jiān)控相關的數據。

對于終端用戶來說,監(jiān)控能夠與業(yè)務形態(tài)相匹配,可以快速地找到業(yè)務相關的監(jiān)控數據,將給業(yè)務帶來極大方便。

無論從公司預期背景,還是自身規(guī)范化需求出發(fā),這都是一個時機成熟、可以嘗試推動的事情。

2. 海外服務的拓撲

對于海外服務,我們需要根據業(yè)務發(fā)展戰(zhàn)略,選擇區(qū)域部署服務。比如,如果準備在歐洲開展業(yè)務,那么就需要選擇華為、AWS 等云廠在該地區(qū)提供的云服務作為基礎設施。對于面向全球的業(yè)務,需要在很多區(qū)域建設服務節(jié)點,包括新加坡、日本、印度、美西等。由于各地區(qū)的數據保護條例,不允許將當地的數據傳輸到其他地區(qū),因此數據和服務只能本地化。

每個區(qū)域是一個獨立的對外提供服務的單元,具有獨立的數據存儲、K8s 集群、API 網關等。這種分區(qū)的服務拓撲,會給運維帶來很大挑戰(zhàn),需要在每個區(qū)逐一進行變更。在 面向全球的鏡像分發(fā)網絡[1] 一文中,我描述了跨地區(qū)構建的全球性運維網絡。如下圖:

圖片

基于公網,通過 StrongVPN、WireGuard 等軟件構建企業(yè)內網,可以實現在一個中心區(qū)域對全區(qū)的控制。這種控制包括,全區(qū)的應用發(fā)布、流量控制、鏡像分發(fā)、監(jiān)控告警等。

在打通全區(qū)內網之后,我們接著對監(jiān)控從三個方面進行了調整,分別是基礎資源監(jiān)控,Kubernetes 監(jiān)控,業(yè)務數據監(jiān)控。其中,基礎資源和 Kubernetes 屬于短周期監(jiān)控數據,而業(yè)務數據屬于長周期監(jiān)控數據。短周期監(jiān)控數據,需要補齊足夠的標簽方便業(yè)務人員過濾查詢,使用 Prometheus 監(jiān)控即可。而長周期監(jiān)控數據,采用的是 Thanos 方案,避免 Prometheus 查詢長周期數據時導致云主機宕機。

3. 基礎監(jiān)控

在每個區(qū)域僅有一個 Prometheus 拉取全部基礎資源的監(jiān)控數據,這些基礎資源包括云主機、Redis、MySQL 等中間件。直接上 Prometheus 的配置:

cat /etc/prometheus/prometheus.yml
- job_name: "node_exporter"
file_sd_configs:
- refresh_interval: 1m
files:
- "/etc/prometheus/file_sd/node*.yml"

- job_name: 'mongo_exporter'
file_sd_configs:
- refresh_interval: 1m
files:
- "/etc/prometheus/file_sd/mongo*.yml"

- job_name: 'elasticsearch_exporter'
file_sd_configs:
- refresh_interval: 1m
files:
- "/etc/prometheus/file_sd/es*.yml"

通過 file_sd_configs 指定 Prometheus 自動發(fā)現服務的目錄,通過 refresh_interval 指定 Prometheus 重新加載配置文件的周期,當有新的服務需要添加監(jiān)控時,只需要修改所屬類型的資源列表即可。下面接著來看資源列表的定義:

cat /etc/prometheus/file_sd/node-prod.yml
- labels:
region: "region-a"
team_id: 123
host_name: "a-b-c"
host_ip: "0.0.0.0"
targets:
- 0.0.0.0:9100

如下圖,每個區(qū)一個 Prometheus 拉取監(jiān)控數據,在中心區(qū)域通過 Thanos Query 匯總全部的監(jiān)控數據,提供全區(qū)的監(jiān)控數據查詢能力。

圖片

最終在 Grafana 上需要呈現兩個面板,一個是資源的匯總,一個是資源的詳情。如下圖是基礎資源匯總的面板:

圖片

通過匯總面板,我們能夠知道指定區(qū)域有多少資源、各個資源的負載情況。通過 Thanos Query 匯總數據源,我們能夠知道全區(qū)的資源概況。

4. Kubernetes 監(jiān)控

對于 Kubernetes 監(jiān)控,我們采用的部署策略是,每個集群安裝一個 Prometheus 僅存儲 3d 的數據,不進行持久化。在每個區(qū)域部署一個 Thanos Query 匯總全部 Kubernetes 的監(jiān)控數據。下圖是相關拓撲:

圖片

根據社區(qū)的 Prometheus Helm Chart 包,我們新增了 Thanos Sidecar 重新打包之后,推送到內部 Habor 鏡像倉庫。新增集群時,只需要進行兩步操作:

  • 安裝 Prometheus
export HELM_EXPERIMENTAL_OCI=1
helm chart pull harbor.chenshaowen.com/monitor/prometheus:15.0.1
helm chart export harbor.chenshaowen.com/monitor/prometheus:15.0.1
cd prometheus
kubectl create ns monitor
helm -n monitor install prom-k8s --set server.global.external_labels.cluster=cluster-1 --set server.global.external_labels.region=region-1 .

這里需要注意的是,通過 external_labels.cluster 給每個 Kubernetes 集群一個唯一的名字。

  • 在 Thanos Query 中添加查詢 API可以參考前面的文檔 使用 Thanos 集中管理多 Prometheus 實例數據[2]。

在 Grafana 面板上,我們提供了兩個層級的視角: 分區(qū)和全區(qū)的數據源,匯總和詳情的面板。如下圖是其中的一個匯總面板:

圖片

5. 業(yè)務數據監(jiān)控

業(yè)務數據主要是業(yè)務自行上報、關注的數據,比如,用戶登錄、下單、支付等。這類數據異構,無法統(tǒng)一進行管理,我們提供統(tǒng)一的解決方案、Grafana

服務,由業(yè)務自行繪圖即可。

這里采用的是 Thanos 方案,參考: Thanos 進階使用指南[3] 。

下面是部署拓撲圖:

圖片

下面是查詢長周期數據:

圖片

6. 總結

本篇主要是介紹了最近在做的一些工作,針對海外多區(qū)場景,我們將監(jiān)控分為三層,基礎監(jiān)控、Kubernetes 監(jiān)控、業(yè)務監(jiān)控數據。其中基礎監(jiān)控,包括云主機、Redis 中間件等,而 Kubernetes 主要是面向應用,業(yè)務數據屬于業(yè)務關系的上報數據。

針對這三種層次的劃分,分別提供了三種部署的方案,滿足業(yè)務對監(jiān)控查詢的需求。

參考資料

[1]面向全球的鏡像分發(fā)網絡:

https://www.chenshaowen.com/blog/a-global-images-distribution-network.html

[2]使用 Thanos 集中管理多 Prometheus 實例數據: https://www.chenshaowen.com/blog/manage-multiple-prometheus-using-thanos.html

[3]Thanos 進階使用指南: https://www.chenshaowen.com/blog/an-advanced-user-guide-about-thanos.html

責任編輯:武曉燕 來源: 問其
相關推薦

2024-03-28 12:41:45

AI技術棧業(yè)務

2024-05-10 08:46:13

微服務架構技術

2023-11-29 09:05:59

Vue 3場景

2022-04-19 07:38:14

數組元素指針

2022-03-18 08:22:18

數據庫碎片化信息化

2025-01-13 08:27:58

AI提示詞量化標準

2012-09-27 10:24:22

監(jiān)控機房

2009-11-30 13:27:12

Visual Stud

2009-06-17 16:38:40

性能管理監(jiān)控日立

2017-12-19 11:00:54

Linux系統(tǒng)日志

2017-11-27 11:09:24

私有云IaaSPaaS

2016-12-15 17:14:38

伊頓

2010-08-27 15:24:39

機房監(jiān)控

2011-03-21 15:42:14

LinuxNagios

2011-03-25 15:37:17

Solarisnagios

2022-06-27 08:31:29

數據溢出無符號

2021-04-04 23:42:45

Windows 10Windows微軟

2021-08-24 16:20:38

Linux終端

2022-04-26 20:58:58

RTA廣告

2010-07-05 09:24:55

點贊
收藏

51CTO技術棧公眾號