精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一言不合就重構(gòu)?監(jiān)控系統(tǒng)這樣演進(jìn)才穩(wěn)妥!

系統(tǒng) 新聞
本文主要介紹了vivo服務(wù)端監(jiān)控架構(gòu)的設(shè)計(jì)與演進(jìn)之路,是基于java技術(shù)棧做的一套實(shí)時(shí)監(jiān)控系統(tǒng)。

一、業(yè)務(wù)背景

當(dāng)今時(shí)代處在信息大爆發(fā)的時(shí)代,信息借助互聯(lián)網(wǎng)的潮流在全球自由的流動(dòng),產(chǎn)生了各式各樣的平臺(tái)系統(tǒng)和軟件系統(tǒng),越來越多的業(yè)務(wù)也會(huì)導(dǎo)致系統(tǒng)的復(fù)雜性。

當(dāng)核心業(yè)務(wù)出現(xiàn)了問題影響用戶體驗(yàn),開發(fā)人員沒有及時(shí)發(fā)現(xiàn),發(fā)現(xiàn)問題時(shí)已經(jīng)為時(shí)已晚,又或者當(dāng)服務(wù)器的CPU持續(xù)增高,磁盤空間被打滿等,需要運(yùn)維人員及時(shí)發(fā)現(xiàn)并處理,這就需要一套有效的監(jiān)控系統(tǒng)對(duì)其進(jìn)行監(jiān)控和預(yù)警。

如何對(duì)這些業(yè)務(wù)和服務(wù)器進(jìn)行監(jiān)控和維護(hù)是我們開發(fā)人員和運(yùn)維人員不可忽視的重要一環(huán),這篇文章全篇大約5000多字,我將對(duì)vivo服務(wù)端監(jiān)控的原理和架構(gòu)演進(jìn)之路做一次系統(tǒng)性整理,以便大家做監(jiān)控技術(shù)選型時(shí)參考。

vivo服務(wù)端監(jiān)控旨在為服務(wù)端應(yīng)用提供包括系統(tǒng)監(jiān)控、JVM監(jiān)控以及自定義業(yè)務(wù)指標(biāo)監(jiān)控在內(nèi)的一站式數(shù)據(jù)監(jiān)控,并配套實(shí)時(shí)、多維度、多渠道的告警服務(wù),幫助用戶及時(shí)掌握應(yīng)用多方面狀態(tài),事前及時(shí)預(yù)警發(fā)現(xiàn)故障,事后提供詳實(shí)的數(shù)據(jù)用于追查定位問題,提升服務(wù)可用性。目前vivo服務(wù)端監(jiān)控累計(jì)接入業(yè)務(wù)方數(shù)量達(dá)到200+,本文介紹的是服務(wù)端監(jiān)控,我司還有其他類型的優(yōu)秀監(jiān)控包括通用監(jiān)控、調(diào)用鏈監(jiān)控和客戶端監(jiān)控等。

1、監(jiān)控系統(tǒng)的基本流程

無論是開源的監(jiān)控系統(tǒng)還是自研的監(jiān)控系統(tǒng),整體流程都大同小異。

1)數(shù)據(jù)采集:可以包括JVM監(jiān)控?cái)?shù)據(jù)如GC次數(shù),線程數(shù)量,老年代和新生代區(qū)域大??;系統(tǒng)監(jiān)控?cái)?shù)據(jù)如磁盤使用使用率,磁盤讀寫的吞吐量,網(wǎng)絡(luò)的出口流量和入口流量,TCP連接數(shù);業(yè)務(wù)監(jiān)控?cái)?shù)據(jù)如錯(cuò)誤日志,訪問日志,視頻播放量,PV,UV等。

2)數(shù)據(jù)傳輸:將采集的數(shù)據(jù)以消息形式或者 HTTP 協(xié)議的形式等上報(bào)給監(jiān)控系統(tǒng)。

3)數(shù)據(jù)存儲(chǔ):有使用 MySQL、Oracle 等 RDBMS 存儲(chǔ)的,也有使用時(shí)序數(shù)據(jù)庫OpenTSDB、InfluxDB 存儲(chǔ)的,還有使用 HBase 直接存儲(chǔ)的。

4)數(shù)據(jù)可視化:數(shù)據(jù)指標(biāo)的圖形化展示,可以是折線圖,柱狀圖,餅圖等。

5)監(jiān)控告警:靈活的告警設(shè)置,以及支持郵件、短信、IM 等多種通知通道。

2、如何規(guī)范地使用監(jiān)控系統(tǒng)

在使用監(jiān)控系統(tǒng)之前,我們需要了解監(jiān)控對(duì)象的基本工作原理,例如JVM監(jiān)控,我們需要清楚JVM的內(nèi)存結(jié)構(gòu)組成和常見的垃圾回收機(jī)制;其次需要確定如何去描述和定義監(jiān)控對(duì)象的狀態(tài),例如監(jiān)控某個(gè)業(yè)務(wù)功能的接口性能,可以監(jiān)控該接口的請(qǐng)求量,耗時(shí)情況,錯(cuò)誤量等;在確定了如何監(jiān)控對(duì)象的狀態(tài)之后,需要定義合理的告警閾值和告警類型,當(dāng)收到告警提醒時(shí),幫助開發(fā)人員及時(shí)發(fā)現(xiàn)故障;最后建立完善的故障處理體系,收到告警時(shí)迅速響應(yīng),及時(shí)處理線上故障。

二、vivo服務(wù)端 監(jiān)控系統(tǒng)架構(gòu)及演進(jìn)之路

在介紹vivo服務(wù)端監(jiān)控系統(tǒng)架構(gòu)之前,先帶大家了解一下OpenTSDB時(shí)序數(shù)據(jù)庫,在了解之前說明下為什么我們會(huì)選擇OpenTSDB,原因有以下幾點(diǎn):

1)監(jiān)控?cái)?shù)據(jù)采集指標(biāo)在某一時(shí)間點(diǎn)具有唯一值,沒有復(fù)雜的結(jié)構(gòu)及關(guān)系。

2)監(jiān)控?cái)?shù)據(jù)的指標(biāo)具有隨著時(shí)間不斷變化的特點(diǎn)。

3)基于HBase分布式、可伸縮的時(shí)間序列數(shù)據(jù)庫,存儲(chǔ)層不需要過多投入精力,具有HBase的高吞吐,良好的伸縮性等特點(diǎn)。

4)開源,Java實(shí)現(xiàn),并且提供基于HTTP的應(yīng)用程序編程接口,問題排查快可修改。

1、OpenTSDB簡(jiǎn)介

1)基于HBase的分布式的,可伸縮的時(shí)間序列數(shù)據(jù)庫,主要用途就是做監(jiān)控系統(tǒng)。譬如收集大規(guī)模集群(包括網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)、應(yīng)用程序)的監(jiān)控?cái)?shù)據(jù)并進(jìn)行存儲(chǔ)和查詢,支持秒級(jí)數(shù)據(jù)采集,支持永久存儲(chǔ),可以做容量規(guī)劃,并很容易地接入到現(xiàn)有的監(jiān)控系統(tǒng)里,OpenTSDB的系統(tǒng)架構(gòu)圖如下:

圖片

(來自官方文檔)

存儲(chǔ)結(jié)構(gòu)單元為Data Point,即某個(gè)Metric在某個(gè)時(shí)間點(diǎn)的數(shù)值。Data Point包括以下部分:

  • Metric,監(jiān)控指標(biāo)名稱;
  • Tags,Metric的標(biāo)簽,用來標(biāo)注類似機(jī)器名稱等信息,包括TagKey和TagValue;
  • Value,Metric對(duì)應(yīng)的實(shí)際數(shù)值,整數(shù)或小數(shù);
  • Timestamp,時(shí)間戳。

核心存儲(chǔ)兩張表:tsdb和tsdb-uid。表tsdb用來存儲(chǔ)監(jiān)控?cái)?shù)據(jù),如下圖:

圖片

(圖片出處:https://www.jianshu.com)

Row Key為Metric+Timestamp的小時(shí)整點(diǎn)+TagKey+TagValue,取相應(yīng)的字節(jié)映射組合起來;列族t下的Qualifier為Timestamp的小時(shí)整點(diǎn)余出的秒數(shù),對(duì)應(yīng)的值即為Value。

表tsdb-uid用來存儲(chǔ)剛才提到的字節(jié)映射,如下圖:

圖片

(圖片出處:https://www.jianshu.com)

圖中的“001”表示tagk=hots或者tagv=static,提供正反查詢。

2)OpenTSDB使用策略說明:

不使用OpenTSDB提供的rest接口,通過client與HBase直連;

工程端禁用compact動(dòng)作的Thrd線程;

間隔10秒獲取Redis緩沖數(shù)據(jù)批量寫入OpenTSDB。

2、OpenTSDB在實(shí)踐中需要關(guān)注的點(diǎn)

1)精確性問題

String value = "0.51";
float f = Float.parseFloat(value);
int raw = Float.floatToRawIntBits(f);
byte[] float_bytes = Bytes.fromInt(raw);
int raw_back = Bytes.getInt(float_bytes, 0);
double decode = Float.intBitsToFloat(raw_back);
/**
* 打印結(jié)果:
* Parsed Float: 0.51
* Encode Raw: 1057132380
* Encode Bytes: 3F028F5C
* Decode Raw: 1057132380
* Decoded Float: 0.5099999904632568
*/
System.out.println("Parsed Float: " + f);
System.out.println("Encode Raw: " + raw);
System.out.println("Encode Bytes: " + UniqueId.uidToString(float_bytes));
System.out.println("Decode Raw: " + raw_back);
System.out.println("Decoded Float: " + decode);

如上代碼,OpenTSDB在存儲(chǔ)浮點(diǎn)型數(shù)據(jù)時(shí),無法知悉存儲(chǔ)意圖,在轉(zhuǎn)化時(shí)會(huì)遇到精確性問題,即存儲(chǔ)"0.51",取出為"0.5099999904632568"。

2)聚合函數(shù)問題

OpenTSDB的大部分聚合函數(shù),包括sum、avg、max、min都是LERP(linear interpolation)的插值方式,即所獲取的值存在被補(bǔ)缺的現(xiàn)象,對(duì)于有空值需求的使用很不友好。詳細(xì)原理參見OpenTSDB關(guān)于interpolation的文檔。

目前vmonitor服務(wù)端監(jiān)控使用的OpenTSDB是我們改造后的源碼,新增了nimavg函數(shù),配合自帶的zimsum函數(shù)滿足空值插入需求。

3、vivo服務(wù)端監(jiān)控采集器原理

圖片

1)定時(shí)器

內(nèi)含3種采集器:OS采集器、JVM采集器和業(yè)務(wù)指標(biāo)采集器,其中OS及JVM每分鐘執(zhí)行采集和匯聚,業(yè)務(wù)指標(biāo)采集器會(huì)實(shí)時(shí)采集并在1分鐘的時(shí)間點(diǎn)完成匯聚重置,3份采集器的數(shù)據(jù)打包上報(bào)至RabbitMQ,上報(bào)動(dòng)作異步超時(shí)。

2)業(yè)務(wù)指標(biāo)采集器

業(yè)務(wù)指標(biāo)采集方式有2種:日志輸出過濾和工具類代碼上報(bào)(侵入式),日志輸出過濾是通過繼承l(wèi)og4j的Filter,從而獲取指標(biāo)配置中指定的Appender輸出的renderedMessage,并根據(jù)指標(biāo)配置的關(guān)鍵詞、聚合方式等信息進(jìn)行同步監(jiān)聽采集;代碼上報(bào)根據(jù)代碼中指定的指標(biāo)code進(jìn)行message信息上報(bào),屬于侵入式的采集方式,通過調(diào)用監(jiān)控提供的Util實(shí)現(xiàn)。業(yè)務(wù)指標(biāo)配置每隔5分鐘會(huì)從CDN刷新,內(nèi)置多種聚合器供聚合使用,包括count計(jì)數(shù)、 sum求和、average平均、max最大值和min最小值統(tǒng)計(jì)。

4、vivo服務(wù)端監(jiān)控老版本架構(gòu)設(shè)計(jì)

圖片

1)數(shù)據(jù)采集及上報(bào)

需求方應(yīng)用接入的監(jiān)控采集器vmonitor-agent根據(jù)監(jiān)控指標(biāo)配置采集相應(yīng)數(shù)據(jù),每分鐘上報(bào)1次數(shù)據(jù)至RabbitMQ,所采用的指標(biāo)配置每5分鐘從CDN下載更新,CDN內(nèi)容由監(jiān)控后臺(tái)上傳。

2)計(jì)算及存儲(chǔ)

監(jiān)控后臺(tái)接收RabbitMQ的數(shù)據(jù),拆解后存儲(chǔ)至OpenTSDB,供可視化圖表調(diào)用,監(jiān)控項(xiàng)目、應(yīng)用、指標(biāo)和告警等配置存儲(chǔ)于MySQL;通過Zookeeper和Redis實(shí)現(xiàn)分布式任務(wù)分發(fā)模塊,實(shí)現(xiàn)多臺(tái)監(jiān)控服務(wù)協(xié)調(diào)配合運(yùn)作,供分布式計(jì)算使用。

3)告警檢測(cè)

從OpenTSDB獲取監(jiān)控指標(biāo)數(shù)據(jù),根據(jù)告警配置檢測(cè)異常,并將異常通過第三方依賴自研消息、短信發(fā)送,告警檢測(cè)通過分布式任務(wù)分發(fā)模塊完成分布式計(jì)算。

5、vivo服務(wù)端監(jiān)控老版本部署架構(gòu)

1)自建機(jī)房A

部署架構(gòu)以國(guó)內(nèi)為例,監(jiān)控工程部署在自建機(jī)房A,監(jiān)聽本機(jī)房的RabbitMQ消息,依賴的Redis、OpenTSDB、MySQL、Zookeeper等均在同機(jī)房,需要上傳的監(jiān)控指標(biāo)配置由文件服務(wù)上傳至CDN,供監(jiān)控需求應(yīng)用設(shè)備調(diào)用。

2)云機(jī)房

云機(jī)房的監(jiān)控需求應(yīng)用設(shè)備將監(jiān)控?cái)?shù)據(jù)上報(bào)至云機(jī)房本地的RabbitMQ,云機(jī)房的RabbitMQ將指定隊(duì)列通過路由的方式轉(zhuǎn)發(fā)至自建機(jī)房A的RabbitMQ,云機(jī)房的監(jiān)控配置通過CDN拉取。

6、vivo服務(wù)端監(jiān)控新版本架構(gòu)設(shè)計(jì)

圖片

1)采集(接入方)

業(yè)務(wù)方接入vmonitor-collector,并在相應(yīng)環(huán)境的監(jiān)控后臺(tái)配置相關(guān)監(jiān)控項(xiàng)即完成接入,vmonitor- collector將定時(shí)拉取監(jiān)控項(xiàng)配置,采集服務(wù)數(shù)據(jù)并每分鐘上報(bào)。

2)數(shù)據(jù)聚合

老版本支持的是RabbitMQ將采集到的數(shù)據(jù),路由至監(jiān)控機(jī)房的RabbitMQ(同機(jī)房則不發(fā)生該行為),由監(jiān)控后臺(tái)服務(wù)消費(fèi);CDN負(fù)責(zé)承載各應(yīng)用的配置供應(yīng)用定時(shí)拉取。新版本vmonitor-gateway作為監(jiān)控?cái)?shù)據(jù)網(wǎng)關(guān),采用http方式上報(bào)監(jiān)控?cái)?shù)據(jù)以及拉取指標(biāo)配置,拋棄了之前使用的RabbitMQ上報(bào)以及CDN同步配置的途徑,避免兩者故障時(shí)對(duì)監(jiān)控上報(bào)的影響。

3)可視化并且支持告警與配置(監(jiān)控后臺(tái)vmonitor)

負(fù)責(zé)前臺(tái)的數(shù)據(jù)多元化展示(包括業(yè)務(wù)指標(biāo)數(shù)據(jù),分機(jī)房匯總數(shù)據(jù),單臺(tái)服務(wù)器數(shù)據(jù),以及業(yè)務(wù)指標(biāo)復(fù)合運(yùn)算呈現(xiàn)),數(shù)據(jù)聚合,告警(目前包括短信及自研消息)等。

4)數(shù)據(jù)存儲(chǔ)

存儲(chǔ)使用HBASE集群和開源的OpenTSDB作為聚合的中介,原始數(shù)據(jù)上報(bào)之后通過OpenTSDB持久化到HBase集群,Redis作為分布式數(shù)據(jù)存儲(chǔ)調(diào)度任務(wù)分配、告警狀態(tài)等信息,后臺(tái)涉及的指標(biāo)和告警配置存儲(chǔ)于MySQL。

三、監(jiān)控采集上報(bào)和存儲(chǔ)監(jiān)控?cái)?shù)據(jù)策略

為降低監(jiān)控接入成本以及避免RabbitMQ上報(bào)故障和CDN同步配置故障對(duì)監(jiān)控體系帶來的影響,將由采集層通過HTTP直接上報(bào)至代理層,并通過采集層和數(shù)據(jù)代理層的隊(duì)列實(shí)現(xiàn)災(zāi)時(shí)數(shù)據(jù)最大程度的挽救。

圖片

詳細(xì)流程說明如下:

1)采集器(vmonitor-collector)根據(jù)監(jiān)控配置每分鐘采集數(shù)據(jù)并壓縮,存儲(chǔ)于本地隊(duì)列(最大長(zhǎng)度100,即最大存儲(chǔ)100分鐘數(shù)據(jù)),通知可進(jìn)行HTTP上報(bào),將數(shù)據(jù)上報(bào)至網(wǎng)關(guān)。

2)網(wǎng)關(guān)(vmonitor-gateway)接收到上報(bào)的數(shù)據(jù)后鑒權(quán),認(rèn)定非法即丟棄;同時(shí)判斷當(dāng)前是否下層異常熔斷,如果發(fā)生則通知采集層重置數(shù)據(jù)退回隊(duì)列。

3)網(wǎng)關(guān)校驗(yàn)上報(bào)時(shí)帶來的監(jiān)控配置版本號(hào),過期則在結(jié)果返回時(shí)將最新監(jiān)控配置一并返回要求采集層更新配置。

4)網(wǎng)關(guān)將上報(bào)的數(shù)據(jù)存儲(chǔ)于該應(yīng)用對(duì)應(yīng)的Redis隊(duì)列中(單個(gè)應(yīng)用緩存隊(duì)列key最大長(zhǎng)度1w);存儲(chǔ)隊(duì)列完成后立即返回HTTP上報(bào),表明網(wǎng)關(guān)已接受到數(shù)據(jù),采集層可移除該條數(shù)據(jù)。

5)網(wǎng)關(guān)對(duì)Redis隊(duì)列數(shù)據(jù)進(jìn)行解壓以及數(shù)據(jù)聚合;如果熔斷器異常則暫停前一行為;完成后通過HTTP存儲(chǔ)至OpenTSDB;如果存儲(chǔ)行為大量異常則觸發(fā)熔斷器。

四、核心指標(biāo)

1、系統(tǒng)監(jiān)控告警和業(yè)務(wù)監(jiān)控告警

將采集到的數(shù)據(jù)通過OpenTSDB存放到HBase中后,通過分布式任務(wù)分發(fā)模塊完成分布式計(jì)算。如果符合業(yè)務(wù)方配置的告警規(guī)則,則觸發(fā)相應(yīng)的告警,對(duì)告警信息進(jìn)行分組并且路由到正確的通知方??梢酝ㄟ^短信自研消息進(jìn)行告警發(fā)送,可通過名字、工號(hào)、拼音查詢錄入需要接收告警的人員,當(dāng)接收到大量重復(fù)告警時(shí)能夠消除重復(fù)的告警信息,所有的告警信息可以通過MySQL表進(jìn)行記錄方便后續(xù)查詢和統(tǒng)計(jì),告警的目的不僅僅是幫助開發(fā)人員及時(shí)發(fā)現(xiàn)故障建立故障應(yīng)急機(jī)制,同時(shí)也可以結(jié)合業(yè)務(wù)特點(diǎn)的監(jiān)控項(xiàng)和告警梳理服務(wù),借鑒行業(yè)最佳監(jiān)控實(shí)踐。告警流程圖如下:

圖片

2、支持的告警類型以及計(jì)算公式

1)最大值:當(dāng)指定字段超過該值時(shí)觸發(fā)報(bào)警(報(bào)警閾值單位:number)。

2)最小值:當(dāng)指定字段低于該值時(shí)觸發(fā)報(bào)警(報(bào)警閾值單位:number)。

3)波動(dòng)量:取當(dāng)前時(shí)間到前15分鐘這段時(shí)間內(nèi)的最大值或者最小值與這15分鐘內(nèi)的平均值做浮動(dòng)百分比報(bào)警,波動(dòng)量需要配置波動(dòng)基線,標(biāo)識(shí)超過該基線數(shù)值時(shí)才做“報(bào)警閥值”判定,低于該基線數(shù)值則不觸發(fā)報(bào)警(報(bào)警閾值單位:percent)。

計(jì)算公式:  

波動(dòng)量-向上波動(dòng)計(jì)算公式:float rate = (float) (max - avg) / (float) avg;

波動(dòng)量-向下波動(dòng)計(jì)算公式:float rate = (float) (avg - min) / (float) avg;

波動(dòng)量-區(qū)間波動(dòng)計(jì)算公式:float rate = (float) (max - min) / (float) max;

4)日環(huán)比:取當(dāng)前時(shí)間與昨天同一時(shí)刻的值做浮動(dòng)百分比報(bào)警(報(bào)警閾值單位:percent)。

計(jì)算公式:float rate = (當(dāng)前值 - 上一周期值)/上一周期值

5)周環(huán)比:取當(dāng)前時(shí)間與上周同一天的同一時(shí)刻的值做浮動(dòng)百分比報(bào)警(報(bào)警閾值單位:percent)。

計(jì)算公式:float rate = (當(dāng)前值 - 上一周期值)/上一周期值

6)小時(shí)日環(huán)比:取當(dāng)前時(shí)間到前一小時(shí)內(nèi)的數(shù)據(jù)值總和與昨天同一時(shí)刻的前一小時(shí)內(nèi)的數(shù)據(jù)值總和做浮動(dòng)百分比報(bào)警(報(bào)警閾值單位:percent)。

計(jì)算公式:float rate = (float) (anHourTodaySum - anHourYesterdaySum) / (float) anHourYesterdaySum。

五、演示效果

1、業(yè)務(wù)指標(biāo)數(shù)據(jù)查詢

1)查詢條件欄“指標(biāo)”可選擇指定指標(biāo)。

2)雙擊圖表上指標(biāo)名稱可展示大圖,底部是根據(jù)起始時(shí)間的指標(biāo)域合計(jì)值。

3)滾輪可以縮放圖表。

圖片

2、系統(tǒng)監(jiān)控&JVM監(jiān)控指標(biāo)數(shù)據(jù)查詢

1)每分鐘頁面自動(dòng)刷新。

2)如果某行,即某臺(tái)機(jī)器整行顯示紅色,則代表該機(jī)器已逾半小時(shí)未上報(bào)數(shù)據(jù),如機(jī)器是非正常下線就要注意排查了。

3)點(diǎn)擊詳情按鈕,可以對(duì)系統(tǒng)&JVM監(jiān)控?cái)?shù)據(jù)進(jìn)行明細(xì)查詢。

圖片

3、業(yè)務(wù)指標(biāo)配置

單個(gè)監(jiān)控指標(biāo)(普通)可以針對(duì)單個(gè)指定Appender的日志文件進(jìn)行數(shù)據(jù)采集。

【必填】【指標(biāo)類型】為“普通”、“復(fù)合”兩種,復(fù)合是將多個(gè)普通指標(biāo)二次聚合,所以正常情況下需要先新增普通指標(biāo)。

【必填】【圖表順序】正序排列,控制指標(biāo)圖表在數(shù)據(jù)頁面上的展示順序。

【必填】【指標(biāo)代碼】默認(rèn)自動(dòng)生成UUID短碼。

【可選】【Appender】為log4j日志文件的appender名稱,要求該appender必須被logger的ref引用;如果使用侵入式采集數(shù)據(jù)則無需指定。

【可選】【關(guān)鍵字】為過濾日志文件行的關(guān)鍵詞。

【可選】【分隔符】是指單行日志列分割的符號(hào),一般為","英文逗號(hào)或其它符號(hào)。

圖片

六、主流監(jiān)控對(duì)比

1、Zabbix

Zabbix 于 1998 年誕生,核心組件采用 C 語言開發(fā),Web 端采用 PHP 開發(fā),它屬于老牌監(jiān)控系統(tǒng)中的優(yōu)秀代表,能夠監(jiān)控網(wǎng)絡(luò)參數(shù),服務(wù)器健康和軟件完整性,使用也很廣泛。

Zabbix采用MySQL 進(jìn)行數(shù)據(jù)存儲(chǔ),所有沒有OpenTSDB支持 Tag的特性,因此沒法按多維度進(jìn)行聚合統(tǒng)計(jì)和告警配置,使用起來不靈活。Zabbix 沒有提供對(duì)應(yīng)的 SDK,應(yīng)用層監(jiān)控支持有限,也沒有我們自研的監(jiān)控提供了侵入式的埋點(diǎn)和采集功能。

總體而言Zabbix 的成熟度更高,高集成度導(dǎo)致靈活性較差,在監(jiān)控復(fù)雜度增加后,定制難度會(huì)升高,而且使用的MySQL關(guān)系型數(shù)據(jù)庫,對(duì)于大規(guī)模的監(jiān)控?cái)?shù)據(jù)插入和查詢是個(gè)問題。

圖片

2、Open-Falcon

OpenFalcon 是一款企業(yè)級(jí)、高可用、可擴(kuò)展的開源監(jiān)控解決方案,提供實(shí)時(shí)報(bào)警、數(shù)據(jù)監(jiān)控等功能,采用 Go 和 Python 語言開發(fā),由小米公司開源。使用 Falcon 可以非常容易的監(jiān)控整個(gè)服務(wù)器的狀態(tài),比如磁盤空間,端口存活,網(wǎng)絡(luò)流量等等?;?Proxy-gateway,很容易通過自主埋點(diǎn)實(shí)現(xiàn)應(yīng)用層的監(jiān)控(比如監(jiān)控接口的訪問量和耗時(shí))和其他個(gè)性化監(jiān)控需求,集成方便。

圖片

官方的架構(gòu)圖如下:

圖片

3、Prometheus

Prometheus是由SoundCloud開發(fā)的開源監(jiān)控報(bào)警系統(tǒng)和時(shí)序列數(shù)據(jù)庫(TSDB),Prometheus使用Go語言開發(fā),是Google BorgMon監(jiān)控系統(tǒng)的開源版本。

和小米的Open-Falcon一樣,借鑒 OpenTSDB,數(shù)據(jù)模型中引入了 Tag,這樣能支持多維度的聚合統(tǒng)計(jì)以及告警規(guī)則設(shè)置,大大提高了使用效率。監(jiān)控?cái)?shù)據(jù)直接存儲(chǔ)在 Prometheus Server 本地的時(shí)序數(shù)據(jù)庫中,單個(gè)實(shí)例可以處理數(shù)百萬的 Metrics,架構(gòu)簡(jiǎn)單,不依賴外部存儲(chǔ),單個(gè)服務(wù)器節(jié)點(diǎn)可直接工作。

圖片

官方的架構(gòu)圖如下:

圖片

4、vivo服務(wù)端監(jiān)控vmonitor

vmonitor作為監(jiān)控后臺(tái)管理系統(tǒng),可以進(jìn)行可視化查看,告警的配置,業(yè)務(wù)指標(biāo)的配置等,具備JVM監(jiān)控、系統(tǒng)監(jiān)控和業(yè)務(wù)監(jiān)控的功能。通過采集層(vmonitor-collector采集器)和數(shù)據(jù)代理層(vmonitor-gateway網(wǎng)關(guān))的隊(duì)列實(shí)現(xiàn)災(zāi)時(shí)數(shù)據(jù)最大程度的挽救。

提供了SDK方便業(yè)務(wù)方集成,支持日志輸出過濾和侵入式代碼上報(bào)數(shù)據(jù)等應(yīng)用層監(jiān)控統(tǒng)計(jì),基于OpenTSDB時(shí)序開源數(shù)據(jù)庫,對(duì)其源碼進(jìn)行了改造,新增了nimavg函數(shù),配合自帶的zimsum函數(shù)滿足空值插入需求,具有強(qiáng)大的數(shù)據(jù)聚合能力,可以提供實(shí)時(shí)、多維度、多渠道的告警服務(wù)。

圖片

七、總結(jié)

本文主要介紹了vivo服務(wù)端監(jiān)控架構(gòu)的設(shè)計(jì)與演進(jìn)之路,是基于java技術(shù)棧做的一套實(shí)時(shí)監(jiān)控系統(tǒng),同時(shí)也簡(jiǎn)單列舉了行業(yè)內(nèi)主流的幾種類型的監(jiān)控系統(tǒng),希望有助于大家對(duì)監(jiān)控系統(tǒng)的認(rèn)識(shí),以及在技術(shù)選型時(shí)做出更合適的選擇。

監(jiān)控體系里面涉及到的面很廣,是一個(gè)龐大復(fù)雜的體系,本文只是介紹了服務(wù)端監(jiān)控里的JVM監(jiān)控,系統(tǒng)監(jiān)控以及業(yè)務(wù)監(jiān)控(包含日志監(jiān)控和工具類代碼侵入式上報(bào)),未涉及到客戶端監(jiān)控和全鏈路監(jiān)控等,如果想理解透徹,必須理論結(jié)合實(shí)踐再做深入。

責(zé)任編輯:張燕妮 來源: vivo互聯(lián)網(wǎng)技術(shù)
相關(guān)推薦

2022-11-28 08:20:54

重構(gòu)組件系統(tǒng)

2018-10-09 12:02:05

筆記本

2025-01-06 12:31:18

2017-01-11 08:45:31

編程開發(fā)ETL

2022-05-17 13:40:44

居家辦公蘋果微軟

2016-10-28 13:14:25

2016-11-02 15:47:12

盈高科技準(zhǔn)入控制

2015-09-21 09:38:14

營(yíng)銷H5

2015-09-21 11:34:59

H5發(fā)展

2018-11-07 19:46:30

本地ERP

2024-10-28 12:54:36

2024-09-04 15:44:52

2025-02-13 10:37:36

2023-07-13 15:10:06

2017-07-27 16:18:18

開源項(xiàng)目使用

2020-03-12 10:33:40

運(yùn)維架構(gòu)技術(shù)

2022-08-31 08:14:46

算法key鏈表

2015-11-10 10:12:42

重構(gòu)系統(tǒng).程序員

2020-10-25 19:58:04

Pythonic代碼語言

2023-08-01 08:54:02

接口冪等網(wǎng)絡(luò)
點(diǎn)贊
收藏

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

亚洲国产国产亚洲一二三| av免费在线一区| av电影在线观看不卡| 88xx成人精品| 一级特黄曰皮片视频| www.久久99| 精品国产精品三级精品av网址| 九色91视频| 夜夜爽8888| 成人精品一区二区三区电影| 亚洲色大成网站www久久九九| 国产成人精品一区二区三区福利| 四虎精品永久在线| 午夜av一区| 亚洲欧美日韩精品久久| 国产成人亚洲综合无码| 日本在线视频1区| 极品美女销魂一区二区三区免费| 在线播放日韩精品| 欧美精品第三页| 亚洲男同gay网站| 国产亚洲短视频| 不卡视频一区| 在线观看国产精品入口男同| 国产精品啊啊啊| 色av中文字幕一区| 少妇精品一区二区三区| 视频一区日韩精品| 欧美性猛交xxxxxx富婆| 日本一区二区三区免费看| 亚洲成人77777| 另类中文字幕网| www国产精品视频| 一区二区三区免费在线观看视频 | 亚洲欧美手机在线| 88xx成人免费观看视频库| 91视频国产观看| 99一区二区| 国产毛片一区二区三区va在线 | 韩国无码av片在线观看网站| a天堂中文在线| 久久精品人人做人人综合| 国产偷久久久精品专区| 亚洲av无码一区二区乱子伦| 九色综合狠狠综合久久| 国产精品久久久久久久7电影| 少妇太紧太爽又黄又硬又爽| 亚洲日本成人| 69视频在线免费观看| 精品成人久久久| 国产日韩高清一区二区三区在线| 九九热最新视频//这里只有精品| 欧美激情图片小说| 亚洲欧美综合久久久| 久久精品在线播放| 国产人妻精品一区二区三区不卡| 97色伦图片97综合影院| 精品国产一区二区在线 | 噜噜噜在线观看播放视频| caoporen国产精品视频| 九色91国产| 国模精品一区二区| 国产欧美一区二区精品性色超碰 | 中文字幕三级电影| 欧美顶级毛片在线播放| 亚洲精品美女在线观看播放| 成人网站免费观看| 亚洲资源网你懂的| 亚洲石原莉奈一区二区在线观看| 国产123在线| 91久久国产| 欧美福利视频在线| 88av在线播放| 欧美18xxxx| 亚洲天堂免费视频| 污污的视频免费观看| 国产成人免费av一区二区午夜| 欧美一级二级三级蜜桃| 亚洲最大免费视频| 人体久久天天| 中文字幕在线视频日韩| 欧美三级小视频| 国产一区二区精品| 国产精品丝袜高跟| 亚洲精品国产av| 久久久久久久久久看片| 亚洲一区二区三区加勒比| 深夜国产在线播放| 欧美日韩在线影院| 一起操在线视频| 99久久香蕉| 69av一区二区三区| 国产香蕉精品视频| 神马久久一区二区三区| 久久精品国产成人精品| 亚洲激情视频一区| 日本不卡视频一二三区| 91观看网站| 欧美女优在线| 亚洲免费观看高清完整版在线| 日韩五码在线观看| 成人黄色毛片| 欧美精品一区二区三区在线| www.日本高清视频| 黄色一区二区三区四区| 国产精品久久久久999| 精品国产亚洲AV| 不卡区在线中文字幕| 亚洲日本理论电影| 小早川怜子影音先锋在线观看| 欧美日韩不卡一区二区| 亚洲午夜福利在线观看| 亚洲欧美综合| 国产精品亚洲美女av网站| 人妻精品一区二区三区| 国产精品白丝在线| 狠狠操精品视频| 国产精品流白浆在线观看| 色婷婷**av毛片一区| 日日夜夜综合网| 国产91精品入口| 一区二区三区四区免费观看| 美女100%一区| 亚洲精品久久久一区二区三区| 51精品免费网站| 日本午夜精品视频在线观看| 精品日产一区2区三区黄免费 | 亚洲欧洲国产专区| 午夜免费一区二区| 午夜先锋成人动漫在线| 欧美黑人巨大xxx极品| 一二三四区视频| 中文在线免费一区三区高中清不卡| 欧美精品久久久久久久免费| 亚洲一区二区三区四区电影| 精品精品国产国产自在线| 欧美一级做a爰片免费视频| 久久午夜色播影院免费高清| 成年人网站免费视频| 国产丝袜一区| 欧美激情中文字幕乱码免费| 国产高清精品软件丝瓜软件| 亚洲视频狠狠干| 亚洲精品中文字幕乱码无线| 性欧美69xoxoxoxo| 91亚洲国产成人精品性色| 日本三级视频在线观看| 欧美午夜寂寞影院| 中文天堂资源在线| 美女精品自拍一二三四| 亚洲一区二区三区欧美| 国产欧美自拍| 久久亚洲精品国产亚洲老地址| 国产精品久久久久久久免费| 国产精品国产三级国产aⅴ入口| 污片在线免费看| 久久久久久久久国产一区| 91久久久久久久久久| 国产福利视频在线| 日韩美女视频一区二区在线观看| 国产精品二区视频| 啪啪激情综合网| 97精品欧美一区二区三区| 这里只有久久精品视频| 国产三级精品在线| 91小视频在线播放| 欧美黄色一区| 久久国产精品-国产精品| 英国三级经典在线观看| 亚洲系列中文字幕| 国产精品久久777777换脸| 一区二区在线电影| 波多野结衣加勒比| 婷婷亚洲图片| 99porn视频在线| 激情黄产视频在线免费观看| 在线日韩欧美视频| 国产成人精品a视频| 五月天久久比比资源色| 亚洲精品视频网址| 国产精品影视天天线| 9久久9毛片又大又硬又粗| 超碰成人久久| 欧美亚洲另类制服自拍| 国产日本在线观看| 日韩欧美国产精品| 日韩综合在线观看| 亚洲欧洲综合另类| 一区二区三区免费在线观看视频| 毛片不卡一区二区| 欧美图片激情小说| 日产精品一区二区| 成人动漫视频在线观看免费| 高清不卡亚洲| 麻豆乱码国产一区二区三区| 亚洲人在线观看视频| 亚洲一区视频在线| 中文字幕黄色网址| 成人黄色在线看| 天堂一区在线观看| 999在线观看精品免费不卡网站| 一本久道久久综合| 日韩成人av在线资源| 亚洲xxx大片| 电影亚洲精品噜噜在线观看| 久久久久久久久国产| 超碰97在线免费观看| 精品久久一区二区三区| 91黄色在线视频| 日韩人在线观看| 久久久精品人妻一区二区三区四 | 精品少妇一区二区三区免费观看 | 老司机免费视频一区二区三区| 加勒比成人在线| 天天精品视频| 日韩欧美在线电影| 欧美日日夜夜| 岛国视频一区免费观看| 色8久久久久| 国产精品99久久99久久久二8| av手机在线观看| 欧美高清视频一区二区| 国产在线激情视频| 中文字幕欧美日韩| 国产日本在线观看| 亚洲欧美精品在线| 香蕉av一区二区三区| 日韩一级二级三级精品视频| 怡红院成永久免费人全部视频| 欧美性开放视频| 国产精品一区二区6| 亚洲国产一区二区三区青草影视 | jizz日韩| 中文字幕日韩高清| 北岛玲日韩精品一区二区三区| 亚洲精品在线91| 天天干天天色天天| 亚洲成人久久电影| 国产91免费在线观看| 日韩女优电影在线观看| 精品国产黄色片| 欧美一区二区三区四区高清| 97人人爽人人爽人人爽| 欧美日韩国产片| 99久久免费国产精精品| 欧美人与禽zozo性伦| 国产精品人人妻人人爽| 欧美一区二区在线播放| 国产精品视频一区二区三区,| 欧美日韩国产首页在线观看| 国产又粗又猛视频| 51午夜精品国产| 国产成人精品一区二三区四区五区 | www.好吊操| 99国产精品| 无码人妻h动漫| 日韩精品乱码av一区二区| 久久久久久三级| 国产一区福利在线| 中文字幕乱码在线人视频| 从欧美一区二区三区| 丰满岳乱妇一区二区| 91丨九色丨蝌蚪富婆spa| av网站免费在线播放| 久久久久久久精| 免费一级suv好看的国产网站| 亚洲欧美综合色| 精品99在线观看| 精品久久久久久久中文字幕| 伊人成年综合网| 欧美一区二区私人影院日本| 亚洲欧美另类一区| 日韩国产中文字幕| 香蕉视频网站在线观看| 久操成人在线视频| 天堂а√在线最新版中文在线| 国产精品av在线播放| www 久久久| 狠狠干一区二区| 欧美亚洲国产一区| 免费极品av一视觉盛宴| 亚洲欧美日韩精品一区二区| 国模私拍视频在线观看| 不卡视频在线观看| 国产成人在线网址| 亚洲福中文字幕伊人影院| 波多野结衣一区二区三区在线 | 一级做a爱视频| 99riav久久精品riav| av片在线免费看| 高清成人在线观看| 在线免费观看黄色小视频| 亚洲欧美自拍偷拍色图| 一级片中文字幕| 欧美一区二区视频网站| 欧美日韩国产中文字幕在线| 欧美精品在线第一页| 日韩美女在线看免费观看| 亚洲综合在线做性| 精品久久91| 国产精品国产亚洲精品看不卡| 精品在线观看免费| 丝袜美腿中文字幕| 亚洲综合在线观看视频| 中文字幕免费观看视频| 日韩av中文字幕在线播放| a视频在线观看| 国产精品免费小视频| 日韩精选视频| 国产精品一区二区欧美黑人喷潮水| 成人综合专区| 国产视频九色蝌蚪| 国产成人精品综合在线观看| 综合 欧美 亚洲日本| 好吊成人免视频| 亚洲精品久久久久avwww潮水| 综合av色偷偷网| 欧美电影免费观看高清完整| 国产高清在线一区二区| 天天超碰亚洲| 99re精彩视频| 国产婷婷色一区二区三区四区| 日本三级片在线观看| 日韩欧美一区二区不卡| 黄在线免费看| 成人福利视频网| 日韩欧美一区免费| 污视频免费在线观看网站| 久久综合九色综合97_久久久| www.av视频在线观看| 午夜成人免费电影| www久久久久久| 久久精品国产一区| 色婷婷成人网| 亚洲 日韩 国产第一区| 麻豆成人在线| 90岁老太婆乱淫| 色88888久久久久久影院野外 | 亚洲国产中文在线| 国产日韩第一页| 国产原创一区二区| 亚洲综合网在线| 日韩一区二区中文字幕| av在线免费观看网址| 7777精品伊久久久大香线蕉语言| 久久久久av| 欧美体内she精高潮| 亚洲一区二区三区四区五区黄| www.精品视频| 欧美激情欧美狂野欧美精品 | 国产精品综合一区二区三区| 精品国产视频一区二区三区| 日韩午夜在线播放| 第四色日韩影片| 蜜桃在线一区二区三区精品| 午夜在线播放视频欧美| 日本一级免费视频| 欧美午夜精品免费| 国产在线观看a视频| 亚洲专区中文字幕| 激情文学一区| 一卡二卡三卡四卡| 欧美性xxxxx极品少妇| 永久免费av在线| 97超碰人人看人人| 在线亚洲观看| 精品国产aaa| 91精品国产手机| 高清视频在线观看三级| 欧美亚洲免费高清在线观看| 日韩成人精品在线观看| 午夜精品福利在线视频| 亚洲国产精品中文| 电影亚洲一区| 成人黄色片免费| 2021中文字幕一区亚洲| 亚洲视频中文字幕在线观看| 欧美美女15p| 台湾亚洲精品一区二区tv| 牛夜精品久久久久久久| 亚洲综合一区二区三区| 毛片免费在线播放| 亚洲一区二区在线| 国产欧美亚洲一区| 99久久精品久久亚洲精品| 精品久久久久久久久久久院品网| 欧美gay视频| 喜爱夜蒲2在线| 久久久噜噜噜久久人人看 | 精品亚洲porn| 一级片中文字幕| 久久精品视频导航| 羞羞答答一区二区| 99999精品| 日本高清不卡一区| 污视频网站免费在线观看| 日本在线观看一区二区三区| 国产a视频精品免费观看| 国产一区二区视频免费| 久久久亚洲欧洲日产国码aⅴ|