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

架構師面試:怎樣規(guī)劃公司的監(jiān)控架構?

安全 應用安全
當我們使用 Prometheus 做監(jiān)控時,我們可以使用 Node Exporter 收集系統(tǒng)指標進行監(jiān)控,比如內存、CPU、磁盤、文件描述符等信息。

大家好,我是君哥。

監(jiān)控系統(tǒng)在科技公司非常重要,它可以讓運維人員和研發(fā)人員提前發(fā)現(xiàn)問題、定位問題,進而解決問題。

在我們實際工作中,使用的監(jiān)控往往五花八門,比較混亂,今天來聊一聊怎么規(guī)劃公司的監(jiān)控架構。

1.指標采集

監(jiān)控指標采集為監(jiān)控提供原始數(shù)據(jù),是監(jiān)控系統(tǒng)的基礎。

1.1 系統(tǒng)指標

當我們使用 Prometheus 做監(jiān)控時,我們可以使用 Node Exporter 收集系統(tǒng)指標進行監(jiān)控,比如內存、CPU、磁盤、文件描述符等信息。

1.2 數(shù)據(jù)庫/中間件

數(shù)據(jù)庫和中間件故障對業(yè)務影響會非常大,極端情況下可能讓業(yè)務停擺。因此必須有配套的數(shù)據(jù)庫中間件監(jiān)控。

對于數(shù)據(jù)庫和中間件,采集數(shù)據(jù)庫所在機器的系統(tǒng)信息如內存、CPU、磁盤是必須的。

對于數(shù)據(jù)庫,也需要采集 SQL 執(zhí)行時長、數(shù)據(jù)庫日志等作為監(jiān)控指標。

對于中間件,可以采集吞吐量、平均響應時長,以及中間件自己的一些指標。比如 kafka 的 ISRShrink/ISRExpand。

JVM 相關指標,比如堆內存、FULL GC 頻率和時長、線程使用情況。

1.3 業(yè)務指標

業(yè)務系統(tǒng)的監(jiān)控指標因為業(yè)務的復雜性,會非常復雜和龐大。

接口請求數(shù)量、平均響應時間、成功率。這部分指標可以使用網絡抓包來獲取。

業(yè)務整體運行情況,這部分指標有兩種方式,一個是通過采集業(yè)務日志來獲取,第二個業(yè)務代碼主動推送執(zhí)行,比如把運行情況抽象成指標保存數(shù)據(jù)庫,或者通過消息隊列發(fā)送給采集系統(tǒng)。

2.指標保存

收集到監(jiān)控指標后,要想把這些指標展示給運維人員,就需要先把指標保存下來。Prometheus 將監(jiān)控數(shù)據(jù)保存在 TSDB,一些公司選擇引入外部時序數(shù)據(jù)庫,比如 VictoriaMetrics 這款時序數(shù)據(jù)庫就被很多公司采納。

有些指標采集的量比較小,也可以采用關系數(shù)據(jù)庫做存儲,對研發(fā)運維人員來說學習成本比較低。

小公司一般使用開源的工具就可以滿足指標保存的需求。在大公司,業(yè)務類型廣泛,指標數(shù)據(jù)量較大,需要規(guī)劃指標保存方案,引入多種保存方式。

3.指標加工

對于僅僅監(jiān)控一些特定指標的情況下,只要采集到數(shù)據(jù),正常展示出來,就可以實現(xiàn)監(jiān)控目標。但這只能用于較簡單的監(jiān)控指標,比如一個接口的請求次數(shù)。

從宏觀角度看,業(yè)務側更關注的是總體數(shù)據(jù),比如昨天交易成功的業(yè)務數(shù)量,失敗的業(yè)務數(shù)量。他們只會花時間看監(jiān)控大盤。這個時候就需要進行一些數(shù)據(jù)加工、匯總。

因此,指標加工也是非常重要的。這個工作也可以交給公司的大數(shù)據(jù)團隊來承接。

4.指標展示

完成指標采集和加工后,怎樣清晰優(yōu)雅地展示給用戶,是監(jiān)控設計中的一個重要環(huán)節(jié)。

知名的監(jiān)控工具比如 Prometheus、Zabbix 都有成熟的可視化界面,可以清晰地展示給用戶。但要滿足更復雜、更高要求的監(jiān)控場景,這些工具很難滿足需求。

這時候就需要技術團隊自己開發(fā)指標可視化工具,這里不僅包括監(jiān)控大盤,還包括給不同人員看的監(jiān)控頁面,比如給業(yè)務看的,給運維看的,給研發(fā)看的。

5.監(jiān)控告警

有了指標采集、加工和展示,其實只完成了監(jiān)控系統(tǒng)的準備工作,監(jiān)控告警是我們規(guī)劃監(jiān)控系統(tǒng)的重要目標。

監(jiān)控告警的目標是讓相關人員能夠提前感知到問題,及時采取措施,防止問題擴大。

為了節(jié)省系統(tǒng)資源,監(jiān)控告警也是需要分級別的,根據(jù)問題嚴重程度、業(yè)務影響范圍來規(guī)劃告警級別。這就要求業(yè)務系統(tǒng)在需求階段就要明確業(yè)務的重要性,輔助確定監(jiān)控級別。

比如涉及金錢的交易系統(tǒng)、支付系統(tǒng)、賬務系統(tǒng),對于公司來說非常重要,可以把他們定義成嚴重級別,監(jiān)控到問題后,通過短信、OA 消息通知到值班運維人員,這樣值班運維人員可以根據(jù)問題情況及時通知到相關研發(fā)人員,即使問題發(fā)生在半夜也能很快地采取措施。

對于影響較小的業(yè)務系統(tǒng)、批量交易,可以定義成主要級別,發(fā)生問題后,短信或 OA 實時通知到系統(tǒng)負責人就可以。

對于沒有業(yè)務影響的交易,可以定義成次要級別,問題發(fā)生后,只需要郵件通知到開發(fā)人員,而且不用實時通知,每天集中一次或者幾次就可以。

6.應急方案

應急方案需要提前進行設計、演練,這樣可以防患于未然。假如一個嚴重級別的告警半夜 2 點觸發(fā)了,研發(fā)人員睡夢中被叫醒,如果沒有應急方案,勢必會非?;艁y。

應急方案可以根據(jù)系統(tǒng)的實際情況進行設計,比如重啟服務、接口限流、熔斷、集群擴容、故障節(jié)點摘除等。

7.總結

監(jiān)控系統(tǒng)對于科技公司來說,非常重要。我們可以從指標采集、指標保存、指標加工、指標展示、監(jiān)控告警、應急方案這些方面來進行設計。希望本文對你設計監(jiān)控架構有所幫助。

圖片


責任編輯:武曉燕 來源: 君哥聊技術
相關推薦

2010-12-28 10:40:50

admin

2018-07-06 11:25:40

Java架構師面試

2020-08-24 08:50:12

架構師TL技術

2009-12-18 10:22:50

Ray Ozzie架構師

2015-09-15 11:02:56

JAVA架構師面試

2014-10-28 09:56:56

Hadoop

2012-08-04 16:02:00

架構師

2017-10-10 19:43:44

架構 搭建 技術

2013-10-17 15:45:24

紅帽

2022-04-28 13:08:51

架構師軟件

2019-09-27 09:56:31

軟件技術硬件

2020-01-16 15:35:00

高并發(fā)架構服務器

2013-08-21 13:43:16

架構師架構師面試職場面試

2013-11-14 10:06:11

紅帽redhat

2015-12-09 15:16:03

架構師京東架構

2020-09-15 09:55:13

架構師架構選型

2012-03-21 17:30:21

百度架構師

2021-12-28 07:20:43

架構師技術架構

2018-07-03 15:46:24

Java架構師源碼
點贊
收藏

51CTO技術棧公眾號