真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

神奇的環(huán)形數(shù)據(jù)庫(kù)工具-rrdtool

一 前言

前段時(shí)間寫(xiě)多主機(jī)性能指標(biāo)監(jiān)控工具res-monitor時(shí)有提到它,這里就專(zhuān)門(mén)對(duì)它做個(gè)介紹吧。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到華陰網(wǎng)站設(shè)計(jì)與華陰網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋華陰地區(qū)。

像res-monitor這類(lèi)工具,既要實(shí)時(shí)獲取數(shù)據(jù),又要實(shí)時(shí)圖形化展示數(shù)據(jù),常規(guī)的是把采集的數(shù)據(jù)存放到數(shù)據(jù)庫(kù),然后再讀數(shù)據(jù)庫(kù)數(shù)據(jù)畫(huà)圖展示,然而,當(dāng)我遇到rrdtool的時(shí)候,眼前一亮,很特別,它一方面可以把數(shù)據(jù)存儲(chǔ)起來(lái),扮演數(shù)據(jù)庫(kù)的角色;另一方面又能根據(jù)存儲(chǔ)的數(shù)據(jù)繪圖,而且圖形表達(dá)能力很強(qiáng),如線狀圖、餅狀圖、柱狀圖、區(qū)域面積圖等;支持高性能的數(shù)據(jù)存儲(chǔ)、繪圖,很方便集成在各種腳本中。從github的修改記錄來(lái)看,它從2012年發(fā)布至今,一直在維護(hù)和更新著,可見(jiàn)其生命力。

Rrdtool很強(qiáng)大,完成數(shù)據(jù)存儲(chǔ)和實(shí)時(shí)展示繪圖等工作,只需要掌握3個(gè)命令,但這三個(gè)命令的參數(shù)相當(dāng)多,使用起來(lái)有點(diǎn)復(fù)雜,另外,需要注意的是,它主要應(yīng)用在linux平臺(tái),在windows上只能用Cygwin打包版本的,而且有些,需要繞過(guò)去。

本文不打算詳細(xì)介紹rrdtool的原理,因?yàn)檫@塊可以看官方文檔,主要是說(shuō)明如何使用它,并給出一些應(yīng)用參考。
Rrdtool網(wǎng)址: https://oss.oetiker.ch/rrdtool/index.en.html

什么是rrd數(shù)據(jù)庫(kù)

Rrdtool是環(huán)形數(shù)據(jù)庫(kù)工具,存儲(chǔ)和讀取的是環(huán)形數(shù)據(jù)庫(kù),表現(xiàn)是后綴為.rrd的二進(jìn)制文件。要大概理解啥是環(huán)形數(shù)據(jù)庫(kù),我對(duì)它的理解就是把它想象成圓形的時(shí)鐘,隨著時(shí)間推移,不斷往里寫(xiě)數(shù)據(jù),同時(shí)有個(gè)標(biāo)記指向當(dāng)前數(shù)據(jù)記錄的最新位置,就像時(shí)鐘上的指針指示當(dāng)前時(shí)間一樣。又因?yàn)樗菆A形的,無(wú)始無(wú)終,可以一直往里寫(xiě)數(shù)據(jù),只是歷史數(shù)據(jù)會(huì)被覆蓋掉,所以,有時(shí)它又被叫做時(shí)序結(jié)構(gòu)數(shù)據(jù)庫(kù)。

rrdtool常用命令

以下僅列出rrdtool的三個(gè)常用命令create、update、graph,看到這些命令格式,大概你就感覺(jué)到這工具使用的復(fù)雜性了。
Create命令格式:

rrdtool create filename [--start|-b start time] [--step|-s step] [--template|-t template-file] [--source|-r source-file] [--no-overwrite|-O] [--daemon|-d address] [DS:ds-name[=mapped-ds-name[[source-index]]]:DST:dst arguments] [RRA:CF:cf arguments]

Update命令格式:

rrdtool {update | updatev} filename [--template|-t ds-name[:ds-name]...] [--skip-past-updates|-s] [--daemon|-d address] [--] N:value[:value]... timestamp:value[:value]... at-timestamp@value[:value]...

Graph命令格式:

rrdtool graph|graphv filename [option ...] [data definition ...] [data calculation ...] [variable definition ...] [graph element ...] [print element ...]

針對(duì)各個(gè)參數(shù)的說(shuō)明實(shí)在太多,不在此列出,建議直接看官方文檔https://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html,該部分:

神奇的環(huán)形數(shù)據(jù)庫(kù)工具-rrdtool

rrdtool應(yīng)用——監(jiān)控帶寬使用情況實(shí)例

命令格式太復(fù)雜,但是,只要搞定上面三個(gè)命令,以后用起來(lái)就輕松了,直接套用格式就行,如下是res-monitor監(jiān)控帶寬使用的命令配置實(shí)例,應(yīng)用在python代碼里,僅供參考哦。
1)    使用create命令創(chuàng)建rrd數(shù)據(jù)庫(kù)文件

rrdtool_create = ('{bin_file} create {rrd_file} -s {interval} '
                  'DS:recvAvg:GAUGE:300:0:U '
                  'DS:sendAvg:GAUGE:300:0:U '
                  'RRA:AVERAGE:0.5:1:600 ')

命令說(shuō)明:
Create命令創(chuàng)建rrd數(shù)據(jù)庫(kù),設(shè)置間隔為5s,定義里個(gè)數(shù)據(jù)源(DS),且數(shù)據(jù)源類(lèi)型是保留原始值(GAUGE),數(shù)據(jù)接收的最大時(shí)間跨度是5分鐘,否則設(shè)置U(unknown),指定按每個(gè)數(shù)據(jù)取平均值(AVERAGE)的方式歸檔存放數(shù)據(jù);

2)    使用update命令更新rrd數(shù)據(jù)庫(kù)

rrdtool_update = '{bin_file} update {rrd_file} N:'

命令說(shuō)明:
Update命令向rrd數(shù)據(jù)庫(kù)寫(xiě)數(shù)據(jù),注意N:后面的數(shù)據(jù)組數(shù)和create指定的數(shù)據(jù)源對(duì)應(yīng),上面create是2個(gè)數(shù)據(jù)源,update的數(shù)據(jù)也只能是2組??梢岳斫獬啥嘈?列的表,每列對(duì)應(yīng)create指定的數(shù)據(jù)源,update就是一行行往里面填數(shù)據(jù)。

3)    使用graph命令讀取rrd數(shù)據(jù)庫(kù)并繪制

    rrdtool_graph = ('{bin_file} graph {rrd_graph} '
                             '--start now-1800s '
                             '--vertical-label "NET Utilization" '
                             '--units-exponent 0 '
                             '--alt-autoscale-max '
                             '--lower-limit 0 '
                             '--title "NET/TOTAL:recv/send(MB/s)" '
                             '--font TITLE:10: Roman.ttf --font AXIS:10: Roman.ttf –font UNIT:10: Roman.ttf --font LEGEND:10: Roman.ttf '
                             'DEF:recvAvgFlow={rrd_relative_file}:recvAvg:AVERAGE '
                             'LINE1:recvAvgFlow#e60000:"recv(MB/s)" '
                             'GPRINT:recvAvgFlow:AVERAGE:"AVERAGE\:%3.1lf" '
                             'GPRINT:recvAvgFlow:MIN:"MIN\:%3.1lf" '
                             'GPRINT:recvAvgFlow:MAX:"MAX\:%3.1lf\\n" '
                             'DEF:sendAvgFlow={rrd_relative_file}:sendAvg:AVERAGE '
                             'LINE1:sendAvgFlow#32cd32:"send(MB/s)" '
                             'GPRINT:sendAvgFlow:AVERAGE:"AVERAGE\:%3.1lf" '
                             'GPRINT:sendAvgFlow:MIN:"MIN\:%3.1lf" '
                             'GPRINT:sendAvgFlow:MAX:"MAX\:%3.1lf\\n" '
                             )

命令說(shuō)明:
Graph命令相當(dāng)復(fù)雜,但表現(xiàn)里很強(qiáng),上面參數(shù)指定圖標(biāo)顯示的時(shí)間跨度,縱橫坐標(biāo)標(biāo)題,圖表是否自動(dòng)縮放,線條顏色,每個(gè)線條對(duì)應(yīng)從哪里取數(shù)據(jù),且顯示MIN\MAX\AVERAGE圖例說(shuō)明等等。

注意:
命令中的變量需要根據(jù)自己的實(shí)際情況替換,自己開(kāi)發(fā)的程序里需要執(zhí)行周期性的數(shù)據(jù)采集操作獲得數(shù)據(jù),然后使用update操作將數(shù)據(jù)寫(xiě)入rrdtool。按上述命令格式配置,最后的效果如下:

神奇的環(huán)形數(shù)據(jù)庫(kù)工具-rrdtool

坑1:
Rrdtool主要被設(shè)計(jì)應(yīng)用在linux平臺(tái)的,命令參數(shù)的分割符就是“:”,但在windows平臺(tái),冒號(hào)是盤(pán)符標(biāo)志,所以,實(shí)際應(yīng)用中需要做轉(zhuǎn)義或者傳入相對(duì)路徑;

坑2:
Windows使用Cygwin打包版本的rrdtool,可能會(huì)報(bào)字體文件缺失,注意下載默認(rèn)的指定文件并指定。


網(wǎng)站名稱(chēng):神奇的環(huán)形數(shù)據(jù)庫(kù)工具-rrdtool
地址分享:http://weahome.cn/article/jjpijc.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部