偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

數(shù)據(jù)庫監(jiān)控系統(tǒng)建設(shè),看看運維團隊是如何實現(xiàn)的

運維 數(shù)據(jù)庫運維
數(shù)據(jù)庫監(jiān)控作為數(shù)據(jù)庫配套建設(shè)不可或缺的一環(huán),可以及時發(fā)現(xiàn)機器和數(shù)據(jù)庫性能問題,并幫助止損。

[[404141]]

 1. 背景

數(shù)據(jù)庫監(jiān)控作為數(shù)據(jù)庫配套建設(shè)不可或缺的一環(huán),可以及時發(fā)現(xiàn)機器和數(shù)據(jù)庫性能問題,并幫助止損。伴魚早期借助開源prometheus系統(tǒng)對數(shù)據(jù)庫和機器進行監(jiān)控,來滿足我們?nèi)粘5谋O(jiān)控告警需求,但在這過程中,我們還是發(fā)現(xiàn)一些使用不太方便的地方,主要體現(xiàn)在以下幾個方面:

  • 數(shù)據(jù)庫以集群為單位,集群成員的變動需要修改prometheus對應(yīng)的監(jiān)控配置文件,無法自動修改
  • 機器指標(biāo)和數(shù)據(jù)庫指標(biāo)采集分屬不同的exporter,難以集群或機器維度同時展示兩類指標(biāo)
  • 集群和機器告警配置差異化以及告警時間段抑制,配置不太靈活
  • 日常巡檢和監(jiān)控大盤難以定制

基于以上監(jiān)控告警需求,并結(jié)合在對prometheus、阿里云數(shù)據(jù)庫監(jiān)控等一些優(yōu)秀的監(jiān)控系統(tǒng)架構(gòu)調(diào)研的基礎(chǔ)上,設(shè)計了伴魚數(shù)據(jù)庫監(jiān)控系統(tǒng)。相比其它監(jiān)控系統(tǒng),新系統(tǒng)包含以下核心功能:

  • 基于集群維度的機器和數(shù)據(jù)庫指標(biāo)采集,集群成員變動,無需修改配置
  • 支持集群和機器維度的機器指標(biāo)和數(shù)據(jù)庫性能指標(biāo)數(shù)據(jù)的同時展示
  • 通過報警模版,支持報警的差異化配置
  • 支持報警時間段抑制和靈活的報警策略
  • 靈活定制監(jiān)控大盤,方便巡檢需求

下面從數(shù)據(jù)庫監(jiān)控整體架構(gòu)詳細(xì)介紹下監(jiān)控各組件設(shè)計以及背后設(shè)計的一些想法。

2. 監(jiān)控整體架構(gòu)

伴魚數(shù)據(jù)庫監(jiān)控整體架構(gòu),如下圖所示。

各組件的功能,說明如下:

  • agent模塊,功能類似prometheus exporter組件,暴露metric接口,接收請求采集數(shù)據(jù)
  • schedule模塊,獲取監(jiān)控任務(wù),并根據(jù)集群名從db config service服務(wù)獲取具體的集群信息,然后按照監(jiān)控任務(wù)配置的采集時間間隔,定時到對應(yīng)的agent拉取metrics
  • monitor模塊,負(fù)責(zé)監(jiān)控數(shù)據(jù)存儲/查詢、數(shù)據(jù)分析和規(guī)則報警
  • alarm模塊,公司內(nèi)部報警服務(wù),支持釘釘和電話報警
  • http server模塊,負(fù)責(zé)監(jiān)控任務(wù)、報警模版和報警規(guī)則的配置以及監(jiān)控數(shù)據(jù)的查詢展示

2.1 數(shù)據(jù)采集

伴魚的數(shù)據(jù)庫監(jiān)控,目前主要分?jǐn)?shù)據(jù)庫服務(wù)監(jiān)控和主機監(jiān)控兩類,對應(yīng)著數(shù)據(jù)采集分主機指標(biāo)采集和數(shù)據(jù)庫性能指標(biāo)采集兩種。監(jiān)控具體采集哪些指標(biāo),我們參照了業(yè)界一些優(yōu)秀開源監(jiān)控系統(tǒng),比如阿里云數(shù)據(jù)庫服務(wù)監(jiān)控,來采集我們的監(jiān)控指標(biāo)數(shù)據(jù)。

  • 主機指標(biāo),包含CPU利用率、磁盤IO使用率、磁盤空間使用率、磁盤空間使用量、機器負(fù)載和內(nèi)存使用率
  • Mongodb服務(wù)指標(biāo),包含連接數(shù)、讀寫隊列長度、服務(wù)進出流量、游標(biāo)數(shù)量和請求量等
  • Redis服務(wù)指標(biāo),包含內(nèi)存使用率、請求數(shù)、服務(wù)進出流量、每秒失效key個數(shù)和key查找命中率等
  • TiDB服務(wù)指標(biāo),通過讀取tidb自帶的prometheus獲取數(shù)據(jù),獲取的指標(biāo)包含raft-store cpu、comprocessor cpu和durition等

針對具體的指標(biāo)數(shù)據(jù)采集,我們設(shè)計了四種agent。其中node agent負(fù)責(zé)采集機器指標(biāo)數(shù)據(jù),因為機器某些指標(biāo)采集需要在本機執(zhí)行系統(tǒng)命令,所以node agent在機器初始化時部署。數(shù)據(jù)庫服務(wù)agent部署在公司內(nèi)部的k8s容器內(nèi),多副本方式,支持采集指標(biāo)動態(tài)添加。比如TiDB指標(biāo)的采集,如下圖所示,如果想增加某個指標(biāo)采集,只需動態(tài)添加對應(yīng)的指標(biāo)項和查詢語句即可。

2.2 任務(wù)調(diào)度

schedule任務(wù)調(diào)度模塊負(fù)責(zé)監(jiān)控任務(wù)的調(diào)度執(zhí)行,如下圖所示。程序在啟動時加載監(jiān)控任務(wù),在指定采集時間間隔,通過集群名稱從db config service獲取對應(yīng)的集群信息(包括ip、端口和集群角色),調(diào)度對應(yīng)的任務(wù)執(zhí)行數(shù)據(jù)采集。每個集群任務(wù)成功采集后,會通知monitor模塊進行報警分析。

2.3 數(shù)據(jù)存儲

監(jiān)控數(shù)據(jù)存儲我們選用了當(dāng)前流行的時序數(shù)據(jù)庫InfluxDB,主要基于以下幾點考慮:

  • InfluxDB部署簡單,無需任何外部依賴即可獨立部署
  • 提供類似于SQL的查詢語言,接口友好,使用方便,如下圖所示
  • 提供靈活的數(shù)據(jù)保存策略(Retention Policy)來設(shè)置數(shù)據(jù)的保留時間
  • 高性能寫入,最新的數(shù)據(jù)都保存在內(nèi)存中,標(biāo)簽允許對列進行索引實現(xiàn)快速查詢

2.4 報警規(guī)則

通過監(jiān)控任務(wù),靈活配置數(shù)據(jù)采集時間間隔,在采集到監(jiān)控數(shù)據(jù)后,我們可以做細(xì)粒度的報警策略。報警規(guī)則如何設(shè)計,我們做了如下考慮:

  • 集群報警配置應(yīng)盡可能簡單
  • 集群報警支持差異化配置
  • 報警粒度靈活配置

基于以上要求,我們從報警模版、報警指標(biāo)和報警策略三個方面設(shè)計了報警規(guī)則。

2.4.1 報警模版

報警模版由規(guī)則名稱、角色、指標(biāo)、閥值和策略五個部分組成,如下圖所示。

通過服務(wù)報警模版,我們可以很方便的將報警指標(biāo)和策略拼接成規(guī)則應(yīng)用到各服務(wù)集群進行報警,同時還可以輕松實現(xiàn)個別集群報警的差異化配置。報警模版應(yīng)用到服務(wù)集群,如下圖所示。

模版中一條規(guī)則,簡單點說,其實就是報警觸發(fā)條件。如何執(zhí)行報警,其實就是將一條規(guī)則映射成一條數(shù)據(jù)庫查詢語句,查詢滿足的條件的數(shù)據(jù)是否達到報警閥值。比如下面這條規(guī)則,簡單介紹下是如何做映射的。

首先,我們看一下監(jiān)控表中已經(jīng)采集到對應(yīng)指標(biāo)的監(jiān)控數(shù)據(jù),如下圖所示。

其次,集群在任務(wù)采集時,我們可以拿到具體的集群信息,包括ip、端口和角色。報警服務(wù)根據(jù)報警模版里的規(guī)則,將具體的規(guī)則映射成查詢語句,如下圖所示。

最后,把滿足報警規(guī)則的服務(wù),按照集群、主機和角色維度報警出來,如下圖所示。

2.4.2 報警指標(biāo)

報警指標(biāo)可以理解為我們需要監(jiān)控的項目,比如CPU使用率、機器負(fù)載和磁盤空間等,如下圖所示。

數(shù)據(jù)指標(biāo)采集項比較多,我們可以選擇我們關(guān)心的或者能快速反應(yīng)服務(wù)問題的指標(biāo)作為報警指標(biāo)。這里的指標(biāo)名稱與報警模版中的規(guī)則名稱一一對應(yīng),即將規(guī)則名稱與數(shù)據(jù)庫表及查詢條件映射起來。

2.4.3 報警策略

目前,報警策略分為兩種,如下圖所示。每次采集完數(shù)據(jù),都會通知monitor模塊觸發(fā)規(guī)則分析,檢查是否達到報警閥值。報警每觸發(fā)一次,都會檢查上一次報警時間,保證在報警時間間隔內(nèi),不會重復(fù)報警。

2分鐘內(nèi),8次(每分鐘采集4次數(shù)據(jù))中有4次滿足條件,釘釘告警

2分鐘內(nèi),8次(每分鐘采集4次數(shù)據(jù))中有4次滿足條件,釘釘和電話同時告警,配置如下圖所示

2.5 監(jiān)控數(shù)據(jù)展示

數(shù)據(jù)監(jiān)控不僅可以為我們提供準(zhǔn)實時狀態(tài)展現(xiàn),還能幫助做故障回溯、風(fēng)險預(yù)測和大盤監(jiān)控。日常問題處理和故障復(fù)盤,我們希望在一個頁面既能查看一個集群各角色的機器指標(biāo),又能看到各角色的數(shù)據(jù)庫性能指標(biāo),而不用在各個指標(biāo)頁面來回跳轉(zhuǎn),如下圖所示。

同時,我們可以利用采集的監(jiān)控數(shù)據(jù),定制我們的數(shù)據(jù)庫監(jiān)控大盤。有了監(jiān)控大盤,我們可以做日常巡檢,及時發(fā)現(xiàn)性能風(fēng)險,如下圖所示。

比如我們通過tidb大盤巡檢,發(fā)現(xiàn)集群延時升高,并及時將其解決,減少風(fēng)險,如下圖所示

3. 總結(jié)

伴魚數(shù)據(jù)庫監(jiān)控系統(tǒng)已經(jīng)運行近半年,在這期間,日常巡檢和報警幫助我們發(fā)現(xiàn)了多起數(shù)據(jù)庫性能問題,并及時加以解決。目前,監(jiān)控系統(tǒng)還有一些待完善的地方,比如告警收斂、時序數(shù)據(jù)庫高可用等問題。未來,我們將繼續(xù)深挖監(jiān)控系統(tǒng)的潛力,為伴魚數(shù)據(jù)庫保駕護航。 

 

責(zé)任編輯:張燕妮 來源: 高效運維
相關(guān)推薦

2018-08-27 10:59:07

京東數(shù)據(jù)庫智能運維

2018-09-18 09:36:52

運維數(shù)據(jù)庫智能

2009-05-11 10:51:28

2012-10-23 11:01:19

數(shù)據(jù)中心網(wǎng)絡(luò)系統(tǒng)通信網(wǎng)絡(luò)

2018-09-27 08:59:29

2010-10-27 11:39:01

視頻監(jiān)控公共交通體系H3C

2022-09-19 21:10:25

CRM銷售管理系統(tǒng)

2022-02-23 08:00:00

開發(fā)DevOps技術(shù)

2013-04-12 13:30:47

2010-12-01 20:41:02

無線監(jiān)控MeshStrix

2020-12-30 08:09:46

運維Prometheus 監(jiān)控

2018-12-14 11:04:56

數(shù)據(jù)庫運維智能

2009-06-30 09:37:00

數(shù)據(jù)運維管理建設(shè)

2022-12-27 08:10:07

PG數(shù)據(jù)庫運維

2013-08-09 10:17:42

谷歌綠色數(shù)據(jù)中心數(shù)據(jù)中心

2020-12-29 10:45:22

運維Prometheus-監(jiān)控

2015-06-01 11:10:24

2016-09-23 09:22:12

2011-03-21 14:43:42

2013-09-26 21:50:11

RIILIT綜合監(jiān)控
點贊
收藏

51CTO技術(shù)棧公眾號