亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        RRDTool在鐵路運維監(jiān)控平臺的應(yīng)用

        2020-04-24 00:30:37李井鑫陳文治
        軟件和集成電路 2020年3期
        關(guān)鍵詞:運維鐵路監(jiān)控

        李井鑫 陳文治

        RRDTool監(jiān)控數(shù)據(jù)存儲技術(shù)結(jié)合Open-Falcon開源監(jiān)控平臺,可以實現(xiàn)針對鐵路云數(shù)據(jù)中心下大規(guī)模實時監(jiān)控數(shù)據(jù)的有效處理,提高運維生產(chǎn)效率。

        隨著鐵路的快速發(fā)展,鐵路監(jiān)控運維平臺在處理大規(guī)模實時數(shù)據(jù)時所面對的任務(wù)也越來越艱巨。本文將以處理大規(guī)模實時監(jiān)控數(shù)據(jù)為切入點,介紹RRDTool的基礎(chǔ)概念與工作原理,簡化大規(guī)模監(jiān)控數(shù)據(jù)的存儲、規(guī)整數(shù)據(jù)的格式,直觀展示被監(jiān)測對象隨時間的變化趨勢。同時結(jié)合Open-Falcon這一開源監(jiān)控平臺采集、存儲和展示大規(guī)模實時數(shù)據(jù),從而實現(xiàn)針對鐵路云數(shù)據(jù)中心下大規(guī)模實時監(jiān)控數(shù)據(jù)的有效處理,提高運維生產(chǎn)效率。

        1 RRDTool介紹

        RRDTool(Round Robin Database Tool)是一套基于RRD(Round Robin Database)數(shù)據(jù)庫的監(jiān)測工具。RRD數(shù)據(jù)庫也就是環(huán)形數(shù)據(jù)庫,主要用來存儲對象隨著時間變化的情況,Tool則用來取RRD存儲的數(shù)據(jù)并展示數(shù)據(jù),方便我們直觀地了解被監(jiān)測對象隨時間變化的情況,比如常見的CPU、內(nèi)存、磁盤等指標的使用情況。相較于傳統(tǒng)的數(shù)據(jù)庫,RRD更適用于高并發(fā)、實時變化、規(guī)模大的數(shù)據(jù)存儲,結(jié)合對應(yīng)的繪圖工具,可以直觀地展示數(shù)據(jù)的變化狀況。

        1.1 RRD

        RRD(Round Robin Database)是一種循環(huán)使用以降低數(shù)據(jù)存儲空間的數(shù)據(jù)庫,十分適用于存儲和時間序列相關(guān)的數(shù)據(jù)。RRD數(shù)據(jù)庫在被創(chuàng)建的時候就已經(jīng)定義好了大小,所以和其他線性增長的數(shù)據(jù)庫不同,RRD的大小可控且不用維護。

        1.1.1RRD數(shù)據(jù)庫的數(shù)據(jù)源類型

        RRD數(shù)據(jù)庫的數(shù)據(jù)源類型主要有四種,以下分別作介紹:

        1)GAUGE:實際值,如圖1所示,記錄鐵路售票系統(tǒng)售票量隨時間的變化曲線。

        2)COUNTER:計數(shù)值,如圖2所示。這是一個只增不減的正整數(shù)。比如,高鐵行駛里程,從高鐵開始運營,里程就從0開始不斷增長。假設(shè)每隔30分鐘監(jiān)測一次高鐵的里程,當RRD收到COUNTER類型的數(shù)據(jù)時,并不會像GAUGE類型那樣直接存儲,而是計算變化率。計算原理:(67890km-67740km)/(11:30-11:00)=5km/min,也就是說速度為5km/min,83.33m/s。RRD對于COUNTER類型的數(shù)據(jù)源存儲的是變化率,對于上述里程表而言就是行駛速度。(注意:第一個存儲值為UNKNOWN,因為沒有更早的數(shù)據(jù)可用于計算,所以此時沒有變化可言)。

        3)ABSOLUTE:ABSOLUTE類型存儲的也是變化率,假設(shè)鐵路運維監(jiān)控平臺每五分鐘都會有監(jiān)控告警信息上報,如果在五分鐘內(nèi)存在告警信息10條,當我們看完這十條告警信息后未讀提醒就會變?yōu)?,然后下一個五分鐘后繼續(xù)看未讀新消息數(shù)。所以該數(shù)值越大,表示每5分鐘內(nèi)收到的未讀消息越多,存在的問題也就越多,具體監(jiān)測表如圖3所示。這樣我們就可以通過計算知道一段時間內(nèi)鐵路運維監(jiān)控平臺所收取到的警告條數(shù),從而得知系統(tǒng)的整體運行情況,計算方式如下:100條/300秒=0.33條/秒。

        4)DERIVE:DERIVE類型存儲的也是變化率,和COUNTER類型不同的是,監(jiān)測值可以增長也可以下降,其計算原理和COUNTER相同,例如某監(jiān)控平臺在一定時間收到的異常數(shù)據(jù)條數(shù),如圖4所示。

        1.2 RRD的數(shù)據(jù)歸檔

        1.2.1RRD的歸檔模型

        RRD的歸檔模型RRA(Round Robin Archive)定義了怎樣來存儲數(shù)據(jù)而非直接存儲原始數(shù)據(jù),RRD提供的歸檔方法有如下4種:

        1)計算最大值MAX(d1,d2,d3,...dn)=最大的那個監(jiān)測值

        2)計算最小值MIN(d1,d2,d3,...dn)=最小的那個監(jiān)測值

        3)計算最后值LAST(d1,d2,d3,...dn)=最后的那個監(jiān)測值

        4)計算平均值A(chǔ)VERAGE(d1,d2,d3,...dn)=(d1+d2+d3...dn)/n

        四種歸檔模型適用于不同的場景,比如一定范圍內(nèi)的極大值、極小值監(jiān)控、最終值監(jiān)控等,其中最常使用的是平均值,展示數(shù)據(jù)在一定時間范圍內(nèi)的變化趨勢。

        1.2.2歸檔的意義

        為什么要對數(shù)據(jù)進行歸檔?這得從監(jiān)測場景的實際需求出發(fā)。通常我們會對最近一小時或一天的監(jiān)測數(shù)據(jù)最關(guān)心,對于一個月或者更久的監(jiān)測數(shù)據(jù)并不關(guān)心。

        假設(shè)存在這樣一個場景,我們每秒監(jiān)測一次某臺服務(wù)器CPU使用率,獲取一個監(jiān)測數(shù)據(jù),那么一年后將獲得:1×60秒×60分鐘×24小時×365天=31536000個監(jiān)測值。

        如果這么多數(shù)據(jù)點在一張圖表上展示,即使一個數(shù)據(jù)點只占一個像素,那么你也可以想象需要多大的圖片才可以對圖形進行展示,而且這樣做將極大地增加繪圖的時間,并且沒有實際效益。但是,如果我們將每60秒監(jiān)測的60個原始數(shù)據(jù)點計算出一個平均值,比如每60個點算一個平均值,這樣數(shù)據(jù)量就比使用原始值降低了60倍!同理,如果我們把每小時監(jiān)測的3600個原始數(shù)據(jù)點計算一個歸檔平均值的話,數(shù)據(jù)點就只有24×365=8760個。這就是繪圖展示監(jiān)測情況的時候要使用RRA歸檔數(shù)據(jù)的原因。

        1.3 RRD的存儲

        RRD文件一般以.rrd結(jié)尾,文件格式大體分為兩部分,其中文件頭信息區(qū)包含一些版本信息和一些與數(shù)據(jù)存儲區(qū)相關(guān)的信息。數(shù)據(jù)存儲區(qū)存儲了實際的數(shù)據(jù)。數(shù)據(jù)的類型是根據(jù)在創(chuàng)建RRD文件時定義的數(shù)據(jù)源(Data Source)屬性和RRA來共同決定。

        1.3.1 環(huán)形的rrd數(shù)據(jù)庫

        對于RRD我們可以把它的存儲空間看成一個圓,具體如圖5所示,上面有很多刻度和一根指向刻度的指針。這些刻度所在的位置就代表用于存儲數(shù)據(jù)的位置。

        所謂指針,我們可以理解為是從圓心指向這些刻度的一條直線,指針會隨著數(shù)據(jù)的讀寫自動移動,并且這個圓沒有起點和終點的概念,也就是說指針隨時間變化可以一直移動,在一段時間后,當所有的空間都存滿了數(shù)據(jù)時,指針就又從它第一個存放數(shù)據(jù)的位置開始存放數(shù)據(jù),并覆蓋掉之前的數(shù)據(jù)。這樣整個存儲空間的大小就是一個固定的數(shù)值。

        2? RRDTool與Open-Falcon的結(jié)合應(yīng)用

        2.1? Open-Falcon

        2.1.1? Open-Falcon簡介

        Open-Falcon為社區(qū)開源的監(jiān)控平臺,由數(shù)據(jù)采集與告警判斷兩部分組成。主要負責監(jiān)控數(shù)據(jù)的采集、上報、告警判定等,可以實現(xiàn)對服務(wù)器、操作系統(tǒng)、中間件、第三方應(yīng)用等進行監(jiān)控,結(jié)合RRDTool的歸檔與存儲的優(yōu)異性能,可以高效的對大規(guī)模的集群與復(fù)雜的應(yīng)用實現(xiàn)高效的監(jiān)控。

        告警判斷部分主要由judge、alarm等組成,其中judge負責判斷數(shù)據(jù)采集組件所采集的數(shù)據(jù)與用戶配置的告警策略是否符合,若符合告警策略則認為該條數(shù)據(jù)為異常數(shù)據(jù),需要告警,便將該數(shù)據(jù)發(fā)送至alarm,由alarm來實現(xiàn)告警,從而幫助運維人員快速的定位問題。

        數(shù)據(jù)采集部分主要由agent、transfer、graph組成,其中agent負責采集監(jiān)控數(shù)據(jù),是所有數(shù)據(jù)的源頭,agent支持單周期內(nèi)上億次的數(shù)據(jù)采集,并且結(jié)合RRD可實現(xiàn)單服務(wù)器200萬指標的上報、歸檔、存儲。agent通過定時采集數(shù)據(jù)(默認每分鐘一次),通過rpc調(diào)用將數(shù)據(jù)發(fā)送給transfer做數(shù)據(jù)規(guī)整,并做一致性hash分片,然后將數(shù)據(jù)發(fā)送給graph來存儲,并由graph提供數(shù)據(jù)查詢的接口。

        2.2? Open-Falcon與RRDTool的結(jié)合應(yīng)用

        2.2.1 RRDTool結(jié)合Open-Falcon存儲數(shù)據(jù)

        Open-Falcon的agent模塊將數(shù)據(jù)采集后通過transfer發(fā)送至graph,采集的數(shù)據(jù)示例如下:

        Endpoint:ffeaee73-5f6d-49f0-9b0e-cf9c4e82ba34, Metric:df.bytes.used.percent,

        Type:GAUGE,

        Tags:dev=/dev/adf1,

        Step:60,

        Time:1570846812,

        Value:20

        Hostip:192.168.17.29

        Endpoint:虛擬機的uuid或物理機的主機名稱。Metric:指標名稱。Type:指標類型。Tags:標簽,可以為空,對指標進一步的分類。Step:采集周期。Time:當前時間時間戳。Value:指標值。Hostip:目標機ip。其中g(shù)raph模塊主要負責操作rrd數(shù)據(jù)庫數(shù)據(jù)存儲數(shù)據(jù),并且每次存入的時候,會自動進行采樣、歸檔。為了不丟失信息,數(shù)據(jù)歸檔的時候,會按照平均值采樣、最大值采樣、最小值采樣存三份。接收到transfe發(fā)送的數(shù)據(jù)之后,graph會按rrd數(shù)據(jù)庫解析數(shù)據(jù)的方式,計算出發(fā)送來的數(shù)據(jù)的UUID和MD5。

        假設(shè)每條數(shù)據(jù)為一個item對象,則計算方式如下所示:

        item.uuid=(item.endpoint+item.metric+item.tags+item.dstype+item.step)

        item.md5=(item.endpoint+item.metric+item.tags)

        計算出指標數(shù)據(jù)的uuid與md5值后,graph會將item進行處理。首先刷入本地緩存,即內(nèi)存隊列中,rrd文件命名規(guī)則為:RRDFileName=item.md5+item.dstype+item.step,然后會建立本地索引,此時會嘗試先增量建立索引,當索引接收到數(shù)據(jù)后,通過計算數(shù)據(jù)的總條數(shù)值(checksum)來確定來自目標機(endpoint)的metric是否是第一次采集數(shù)據(jù)。

        如果不是第一次采集數(shù)據(jù),則在已經(jīng)建索引的數(shù)據(jù)項的緩存(IndexedItemCache)中能夠找到,并且如果uuid沒變則只更新item;如果uuid變了則重新建立索引(index);如果是第一次數(shù)據(jù)采集,那么在IndexedItemCache中找不到,則把它添加到unindexeditemCache中,等待被索引。之后graph會定時在未建索引的數(shù)據(jù)項的緩存(unindexeditemCache)中創(chuàng)建索引,并將它保存到系統(tǒng)對應(yīng)關(guān)聯(lián)的項目數(shù)據(jù)庫中,如PostgreSQL或Mysql數(shù)據(jù)庫,以PostgreSQL為例,則會在PostgreSQL中新建三張表:

        1)endpoint:該表記錄了所有上報數(shù)據(jù)的endpoint,并且為每一個endpoint生成一個id,即endpoint_id。

        2)tag_endpoint:拆解item的每一個tag。用tag和endpoint形成一個主鍵的表,記錄每個endpoint包含的tag。每條記錄生成一個id,為tagendpoint_id。

        3)endpoint_counter:counter是metric+tags組合后的名詞

        最后將內(nèi)存隊列中的數(shù)據(jù)存入rrd數(shù)據(jù)庫中。

        2.2.2 RRDTool結(jié)合Open-Falcon查詢數(shù)據(jù)

        為指標數(shù)據(jù)建立索引的目的是為了更快定位rrd文件,而rrd文件命名是受endpoint、metric、tags、dstype、step決定的,所以當查詢請求時,不可能去遍歷所有的rrd文件,就會先讀取數(shù)據(jù)表的數(shù)據(jù),拼接出rrd文件路徑,然后根據(jù)索引創(chuàng)建的時間范圍進行獲取數(shù)據(jù)。

        查詢數(shù)據(jù)時首先會根據(jù)endpoint和counter,從索引中獲取數(shù)據(jù)的dsType和step從而生成md5:(endpoint + counter)計算md5,然后從indexedItemCache查找md5對應(yīng)的item,如果沒有找到的話,則從數(shù)據(jù)庫中中進行查找,之后根據(jù)endpoint、counter、dsType、step,獲取對應(yīng)的RRD文件名,從而獲取到數(shù)據(jù)。

        當用戶在查詢某個metric在過去一個月或者一年的歷史數(shù)據(jù)時,graph會依據(jù)RRD初始化時定義的采樣頻率,返回采樣過后的數(shù)據(jù),從而極大地提高數(shù)據(jù)查詢速度。

        3 RRDTool與Open-Falcon在鐵路監(jiān)控運維上的應(yīng)用

        Open-Falcon在應(yīng)對硬件、軟件、操作系統(tǒng)等方面提供了多種監(jiān)控指標和便捷的自定義監(jiān)控插件與指標的方式,為運維監(jiān)控提供了很大的靈活性。

        除此以外,強大的性能如單機200萬的指標采集與周期內(nèi)上億次的指標上報,結(jié)合RRDTool的歸檔存儲與動態(tài)展示能力,便捷地解決了鐵路行業(yè)在運維監(jiān)控上的難題。

        3.1 基礎(chǔ)監(jiān)控

        agent內(nèi)置許多監(jiān)控指標,應(yīng)用到鐵路行業(yè),可以實現(xiàn)對基礎(chǔ)的如服務(wù)器的CPU、Load、內(nèi)存、磁盤、IO、網(wǎng)絡(luò)相關(guān)、內(nèi)核參數(shù)、ss統(tǒng)計輸出、端口、核心服務(wù)的進程存活信息、關(guān)鍵業(yè)務(wù)進程資源消耗、NTP offset、DNS解析等指標進行采集。

        以磁盤io寫入速率為例,agent定期采集目標機的io寫入速率的監(jiān)控數(shù)據(jù)并將數(shù)據(jù)發(fā)送至graph寫入數(shù)據(jù)庫中,當我們想了解最近一小時的磁盤io寫入速率,則可以利用RRDTool繪制最近一小時內(nèi)磁盤的寫入速率情況,此時使用的數(shù)據(jù)為agent定期上報的監(jiān)控數(shù)據(jù),我們可以清楚地看見具體某個時間點的具體數(shù)值,如圖6所示。

        當我們想了解最近一個月的磁盤io寫入速率時,我們并不會在意具體哪一天的哪個時間點的使用情況,而是關(guān)注這一個月內(nèi)的整體變化情況,此時就可以利用RRD的歸檔數(shù)據(jù),繪制最近月內(nèi)磁盤的寫入速率情況,重點了解一個月內(nèi)的整體變化情況。

        利用RRD的歸檔數(shù)據(jù)繪制過去一個月內(nèi)的數(shù)據(jù)變化圖,這種方式不僅不影響我們了解某些指標的變化趨勢;而且利用歸檔數(shù)據(jù)可以節(jié)省大量的數(shù)據(jù)存儲空間,節(jié)約系統(tǒng)資源;并且相較于利用一個月內(nèi)的所有的監(jiān)控數(shù)據(jù)繪圖,利用歸檔數(shù)據(jù)時間更短效率更高。

        3.2 自定義監(jiān)控

        agent也可以采集第三方應(yīng)用的監(jiān)控數(shù)據(jù),比如Mysql、云集群與云服務(wù)、RabbitMQ、大數(shù)據(jù)集群與大數(shù)據(jù)服務(wù)等實現(xiàn)監(jiān)控數(shù)據(jù)采集,還可以通過自定義各種插件實現(xiàn)對Linux、Windows、交換機等設(shè)備進行監(jiān)控數(shù)據(jù)的采集。

        以目前應(yīng)用在鐵路行業(yè)最廣的云集群為例,我們可以通過自定義agent插件,以監(jiān)測云集群的狀態(tài)。比如我們想了解最近一小時內(nèi)云集群的nova.api服務(wù)的存活狀態(tài)時就可以通過自定義插件的形式,并同樣將監(jiān)控數(shù)據(jù)發(fā)送至graph并存入RRD數(shù)據(jù)庫中,假設(shè)采集數(shù)據(jù)的指標名稱為service.openstack.nova.api.up,并規(guī)定指標的值(value)為1時代表服務(wù)運行正常,為0時服務(wù)異常。

        此時我們便可以通過RRDTool繪制該服務(wù)的運行狀態(tài)圖,可以很直觀地了解該服務(wù)的整體運行狀況。

        4? 結(jié)束語

        本文對以RRDTool監(jiān)控數(shù)據(jù)存儲技術(shù)為基礎(chǔ)的鐵路運維監(jiān)控平臺在處理大規(guī)模的實時數(shù)據(jù)方面進行了詳細分析,介紹了RRDTool的有關(guān)概念與簡單使用,以及結(jié)合Open-Falcon在鐵路監(jiān)控平臺上的具體應(yīng)用。從RRDTool對數(shù)據(jù)的歸檔結(jié)構(gòu)以及存儲方式,論證了使用它的必要性。

        當然,運維監(jiān)控平臺的優(yōu)化是無止境的,所需解決的問題也遠不止于此,需要不斷面對問題、解決問題從而優(yōu)化系統(tǒng),才能始終保證系統(tǒng)的高效與優(yōu)異。

        猜你喜歡
        運維鐵路監(jiān)控
        The Great Barrier Reef shows coral comeback
        沿著中老鐵路一路向南
        云南畫報(2021年12期)2021-03-08 00:50:54
        運維技術(shù)研發(fā)決策中ITSS運維成熟度模型應(yīng)用初探
        你被監(jiān)控了嗎?
        Zabbix在ATS系統(tǒng)集中監(jiān)控中的應(yīng)用
        風電運維困局
        能源(2018年8期)2018-09-21 07:57:24
        鐵路通信線路維護體制改革探索與實踐
        雜亂無章的光伏運維 百億市場如何成長
        能源(2017年11期)2017-12-13 08:12:25
        看監(jiān)控攝像機的4K之道
        基于ITIL的運維管理創(chuàng)新實踐淺析
        日本中文字幕一区二区有码在线| 成年女人片免费视频播放A| 中文字幕一区二区三区在线看一区| 日韩一区二区av极品| 欧美成人aaa片一区国产精品| 亚洲 欧美 激情 小说 另类 | 久久亚洲日本免费高清一区| 日本熟妇裸体视频在线| 精品一区二区三区在线视频| 日躁夜躁狠狠躁2001| 精品欧美久久99久久久另类专区| 亚洲一区二区三区天堂av | 少妇人妻综合久久中文字幕| 亚洲av无码片一区二区三区| 亚洲免费无毛av一区二区三区| 顶级高清嫩模一区二区| 国产免费爽爽视频在线观看| 亚洲av无码成人精品区天堂 | 国产精品亚洲美女av网站| 自拍视频在线观看首页国产| 青春草在线视频免费观看| 色综合88| 日本一区二区高清在线观看| 无码av专区丝袜专区| 午夜不卡久久精品无码免费| 无码熟妇人妻AV不卡| 一本色道久久88加勒比| 成人免费xxxxx在线观看| 国产一国产一级新婚之夜| 丁香婷婷激情俺也去俺来也| 无人区乱码一区二区三区| 中文字幕无码不卡一区二区三区| 亚洲女同成av人片在线观看| 人妻系列中文字幕av| 美丽人妻在夫前被黑人| 四虎永久免费影院在线| 色噜噜精品一区二区三区| 免费av一区二区三区| 亚洲欧洲精品成人久久曰影片 | 国产欧美日韩专区| 国产av精品久久一区二区|