InglesPransesEspanyol

OnWorks favicon

rrdtutorial - Online sa Cloud

Magpatakbo ng rrdtutorial sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command rrdtutorial na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


rrdtutorial - Tutorial sa RRDtool ni Alex van den Bogaerdt

DESCRIPTION


Ang RRDtool ay isinulat ni Tobias Oetiker[protektado ng email]> na may mga kontribusyon mula sa maraming tao
sa buong mundo. Ang dokumentong ito ay isinulat ni Alex van den Bogaerdt
<[protektado ng email]> para matulungan kang maunawaan kung ano ang RRDtool at kung para saan ang magagawa nito
iyo.

Ang dokumentasyong ibinigay kasama ng RRDtool ay maaaring masyadong teknikal para sa ilang tao. Ito
Narito ang tutorial upang matulungan kang maunawaan ang mga pangunahing kaalaman ng RRDtool. Dapat itong maghanda sa iyo
basahin mo mismo ang dokumentasyon. Ipinapaliwanag din nito ang mga pangkalahatang bagay tungkol sa mga istatistika
na may pagtuon sa networking.

PAGTUTURO


mahalaga
Mangyaring huwag lumaktaw sa dokumentong ito! Ang unang bahagi ng dokumentong ito ay nagpapaliwanag sa
basics at maaaring boring. Ngunit kung hindi mo naiintindihan ang mga pangunahing kaalaman, ang mga halimbawa ay hindi
maging makabuluhan sa iyo.

Minsan nagbabago ang mga bagay. Ang halimbawang ito ay ginamit upang magbigay ng mga numero tulad ng "0.04" sa halip na
"4.00000e-02". Pareho lang talaga ang mga numerong iyon, iba lang ang pagkakasulat. huwag
maalarma kung ang isang hinaharap na bersyon ng rrdtool ay nagpapakita ng bahagyang naiibang anyo ng output.
Ang mga halimbawa sa dokumentong ito ay tama para sa bersyon 1.2.0 ng RRDtool.

Gayundin, kung minsan ang mga bug ay nangyayari. Maaari rin nilang maimpluwensyahan ang kinalabasan ng mga halimbawa.
Ang halimbawa ng speed4.png ay naghihirap mula dito (ang paghawak ng hindi kilalang data sa isang if-
mali ang pahayag). Magiging maayos ang normal na data (ang isang bug sa rrdtool ay hindi magtatagal)
ngunit ang mga espesyal na kaso tulad ng NaN, INF at iba pa ay maaaring tumagal nang kaunti. Subukan ang ibang bersyon kung
kaya mo, o mamuhay lang kasama nito.

Inayos ko ang halimbawa ng speed4.png (at nagdagdag ng tala). Maaaring may iba pang mga halimbawa na
magdusa mula sa pareho o isang katulad na bug. Subukang ayusin ito sa iyong sarili, na isang mahusay
ehersisyo. Ngunit mangyaring huwag isumite ang iyong resulta bilang pag-aayos sa pinagmulan ng dokumentong ito.
Talakayin ito sa listahan ng gumagamit, o sumulat sa akin.

Ano is RRDtool?
Ang RRDtool ay tumutukoy sa Round Robin Database tool. Ang round robin ay isang pamamaraan na gumagana sa isang
nakapirming dami ng data, at isang pointer sa kasalukuyang elemento. Mag-isip ng isang bilog na may ilan
mga tuldok na naka-plot sa gilid. Ang mga tuldok na ito ay ang mga lugar kung saan maaaring mag-imbak ng data. Gumuhit ng isang
arrow mula sa gitna ng bilog hanggang sa isa sa mga tuldok; ito ang pointer. Kapag ang
Ang kasalukuyang data ay binabasa o nakasulat, ang pointer ay gumagalaw sa susunod na elemento. Habang kami ay nasa a
bilog na walang simula o wakas, maaari kang magpatuloy at magpatuloy at magpatuloy. Pagkatapos ng a
habang, lahat ng magagamit na lugar ay gagamitin at ang proseso ay awtomatikong muling ginagamit ang luma
mga lokasyon. Sa ganitong paraan, hindi lalago ang dataset at samakatuwid ay nangangailangan ng hindi
pagpapanatili. Gumagana ang RRDtool sa Round Robin Databases (RRDs). Iniimbak at kinukuha nito
data mula sa kanila.

Ano data maaari be ilagay sa an RRD?
Pangalanan mo ito, malamang na magkasya ito hangga't ito ay isang uri ng data ng serye ng oras. Ito
nangangahulugan na kailangan mong sukatin ang ilang halaga sa ilang mga punto sa oras at ibigay ito
impormasyon sa RRDtool. Kung magagawa mo ito, maiimbak ito ng RRDtool. Ang mga halaga
dapat numerical ngunit hindi kailangang maging integer, gaya ng kaso sa MRTG (ang susunod na
Ang seksyon ay magbibigay ng higit pang mga detalye sa mas espesyal na aplikasyong ito).

Maraming mga halimbawa sa ibaba ang nagsasalita tungkol sa SNMP na isang acronym para sa Simple Network Management
Protocol. Ang "Simple" ay tumutukoy sa protocol. Hindi ito nangangahulugan na ito ay simple upang pamahalaan o
subaybayan ang isang network. Pagkatapos mong gawin ang iyong paraan sa pamamagitan ng dokumentong ito, dapat ay sapat na ang iyong nalalaman upang
magagawang maunawaan kung ano ang pinag-uusapan ng mga tao. Sa ngayon, alamin na lang na kaya ng SNMP
gamitin para mag-query ng mga device para sa mga value ng mga counter na pinapanatili nila. Ito ay ang halaga mula sa mga iyon
mga counter na gusto naming itabi sa RRD.

Ano maaari I do sa ito kasangkapan?
Ang RRDtool ay nagmula sa MRTG (Multi Router Traffic Grapher). Nagsimula ang MRTG bilang isang maliit na maliit
script para sa pag-graph ng paggamit ng koneksyon ng isang unibersidad sa Internet. Mamaya ang MRTG
(ab-)ginamit bilang tool para sa pag-graph ng iba pang pinagmumulan ng data kabilang ang temperatura, bilis, boltahe,
bilang ng mga printout at iba pa.

Malamang na magsisimula kang gumamit ng RRDtool upang mag-imbak at magproseso ng data na nakolekta sa pamamagitan ng SNMP.
Ang data ay malamang na mga byte (o bits) na inilipat mula at papunta sa isang network o a
kompyuter. Ngunit maaari rin itong magamit upang magpakita ng mga tidal wave, solar radiation, kapangyarihan
pagkonsumo, bilang ng mga bisita sa isang eksibisyon, antas ng ingay malapit sa isang paliparan,
temperatura sa iyong paboritong lokasyon ng bakasyon, temperatura sa refrigerator at anuman ang iyong
maaaring magkaroon ng imahinasyon.

Kailangan mo lang ng sensor para sukatin ang data at ma-feed ang mga numero sa RRDtool.
Hinahayaan ka ng RRDtool na lumikha ng isang database, mag-imbak ng data dito, kunin ang data na iyon at lumikha
mga graph sa PNG na format para ipakita sa isang web browser. Ang mga PNG na larawan ay nakadepende sa
data na iyong nakolekta at maaaring, halimbawa, isang pangkalahatang-ideya ng average na paggamit ng network,
o ang mga taluktok na naganap.

Ano if I pa rin mayroon problema pagkatapos pagbabasa ito dokumento?
Una sa lahat: basahin itong muli! Baka may na-miss ka. Kung hindi ka makapag-compile
ang mga mapagkukunan at mayroon kang isang medyo karaniwang OS, malamang na hindi ito kasalanan ng RRDtool.
Maaaring may mga pre-compiled na bersyon sa Internet. Kung galing sila sa pinagkakatiwalaan
mga mapagkukunan, kumuha ng isa sa mga iyon.

Kung sa kabilang banda ang programa ay gumagana ngunit hindi nagbibigay sa iyo ng inaasahang resulta, ito ay gagana
maging problema sa pag-configure nito. Suriin ang iyong configuration at ihambing ito sa
mga sumusunod na halimbawa.

Mayroong isang mailing list at isang archive nito. Basahin ang listahan sa loob ng ilang linggo at hanapin ang
archive. Ito ay itinuturing na bastos na magtanong lamang nang hindi naghahanap sa archive: iyong
ang problema ay maaaring nalutas na para sa ibang tao! Ito ay totoo para sa karamihan, kung hindi
lahat, mga mailing list at hindi lamang para sa partikular na ito. Tingnan mo sa documentation yan
kasama ang RRDtool para sa lokasyon at paggamit ng listahan.

Iminumungkahi kong maglaan ka ng ilang sandali upang mag-subscribe sa mailing list ngayon sa pamamagitan ng pagpapadala ng email
sa[protektado ng email]> na may paksang "mag-subscribe". Kung gusto mo
umalis sa listahang ito, magsulat lamang ng isang email sa parehong address ngunit ngayon ay may paksa ng
"mag-unsubscribe".

Gaano habilin ikaw Tulungan Ako?
Sa pamamagitan ng pagbibigay sa iyo ng ilang detalyadong paglalarawan na may mga detalyadong halimbawa. Ipinapalagay ko na sumusunod
ang mga tagubilin sa pagkakasunod-sunod na ipinakita ay magbibigay sa iyo ng sapat na kaalaman sa RRDtool sa
eksperimento para sa iyong sarili. Kung hindi ito gumana sa unang pagkakataon, huwag sumuko. Basahin muli ang
bagay na naintindihan mo, maaaring may napalampas ka.

Sa pamamagitan ng pagsunod sa mga halimbawa nakakakuha ka ng ilang hands-on na karanasan at, mas mahalaga, ang ilan
background na impormasyon kung paano ito gumagana.

Kakailanganin mong malaman ang tungkol sa mga numerong hexadecimal. Kung hindi, magsimula sa
nagbabasa ng bin_dec_hex bago ka magpatuloy dito.

Iyong una Pag-ikot Robin Database
Sa aking opinyon ang pinakamahusay na paraan upang matuto ng isang bagay ay ang aktwal na gawin ito. Bakit hindi magsimula ng tama
ngayon? Gagawa kami ng database, maglalagay ng ilang value dito at i-extract muli ang data na ito. Iyong
ang output ay dapat na kapareho ng output na kasama sa dokumentong ito.

Magsisimula kami sa ilang madaling bagay at ihambing ang isang kotse sa isang router, o ihambing ang mga kilometro
(milya kung gusto mo) na may mga bit at byte. Pareho lang ito: ilang numero sa paglipas ng panahon.

Ipagpalagay na mayroon kaming device na naglilipat ng mga byte papunta at mula sa Internet. Pinapanatili ng device na ito
isang counter na nagsisimula sa zero kapag ito ay naka-on, na tumataas sa bawat byte na iyon
inilipat. Ang counter na ito ay malamang na may pinakamataas na halaga. Kung maabot ang halagang ito at
ang isang dagdag na byte ay binibilang, ang counter ay magsisimula muli sa zero. Ito ay kapareho ng marami
mga counter sa mundo tulad ng mileage counter sa isang kotse.

Karamihan sa mga talakayan tungkol sa networking ay nag-uusap tungkol sa mga bit per second kaya masanay na tayo
kaagad. Ipagpalagay na ang isang byte ay walong bits at magsimulang mag-isip sa mga bits hindi byte. Ang counter,
gayunpaman, nagbibilang pa rin ng mga byte! Sa mundo ng SNMP, karamihan sa mga counter ay 32 bits. yun
nangangahulugang nagbibilang sila mula 0 hanggang 4294967295. Gagamitin namin ang mga halagang ito sa mga halimbawa.
Ang device, kapag tinanong, ay nagbabalik ng kasalukuyang halaga ng counter. Alam namin ang oras na iyon
ay lumipas mula noong huli nating tinanong kaya alam na natin kung ilang byte ang nailipat ***on
average*** bawat segundo. Hindi ito napakahirap kalkulahin. Una sa mga salita, pagkatapos ay sa
mga kalkulasyon:

1. Kunin ang kasalukuyang counter, ibawas ang dating halaga mula dito.

2. Gawin ang parehong sa kasalukuyang oras at sa nakaraang oras (sa mga segundo).

3. Hatiin ang kinalabasan ng (1) sa kinalabasan ng (2), ang resulta ay ang dami ng byte bawat
pangalawa. I-multiply ng walo para makuha ang bilang ng mga bits per second (bps).

bps = (counter_now - counter_before) / (time_now - time_before) * 8

Para sa ilang tao, maaaring makatulong na isalin ito sa isang halimbawa ng sasakyan. Huwag mong subukan ito
halimbawa, at kung gagawin mo, huwag mo akong sisihin sa mga resulta!

Ang mga taong hindi sanay na mag-isip sa kilometro bawat oras ay maaaring magsalin ng karamihan sa milya bawat
oras sa pamamagitan ng paghahati ng km sa 1.6 (sapat na malapit). Gagamitin ko ang mga sumusunod na pagdadaglat:

m: metro
km: kilometro (= 1000 metro).
h: oras
s: pangalawa
km/h: kilometro bawat oras
m/s: metro bawat segundo

Nagmamaneho ka ng kotse. Sa 12:05 nabasa mo ang counter sa dashboard at ito ay nagsasabi sa iyo
na ang kotse ay lumipat ng 12345 km hanggang sa sandaling iyon. Sa 12:10 tumingin ka muli, ito ay nagbabasa
12357 km. Nangangahulugan ito na naglakbay ka ng 12 km sa loob ng limang minuto. Isang scientist ang magsasalin
na sa metro bawat segundo at ito ay gumagawa ng magandang paghahambing sa problema ng (bytes
bawat limang minuto) kumpara sa (mga bit bawat segundo).

Naglakbay kami ng 12 kilometers which is 12000 meters. Ginawa namin iyon sa loob ng limang minuto o 300
segundo. Ang aming bilis ay 12000m / 300s o 40m/s.

Maaari rin nating kalkulahin ang bilis sa km/h: 12 beses 5 minuto ay isang oras, kaya kailangan nating gawin
i-multiply ang 12 km sa 12 upang makakuha ng 144 km/h. Para sa aming mga kaibigan na nagsasalita ng katutubong Ingles: iyon ay 90
mph kaya huwag subukan ang halimbawang ito sa bahay o kung saan ako nakatira :)

Tandaan: ang mga numerong ito ay mga average lamang. Walang paraan upang malaman mula sa
mga numero, kung nagmamaneho ka sa palaging bilis. Mayroong isang halimbawa mamaya sa tutorial na ito
na nagpapaliwanag nito.

Sana maintindihan mo na walang pagkakaiba sa pagkalkula ng m/s o bps; tanging paraan
iba ang aming kinokolektang data. Maging ang k from kilo ay kapareho ng sa networking terms
ang ibig sabihin ng k ay 1000.

Gagawa kami ngayon ng isang database kung saan maaari naming panatilihin ang lahat ng mga kagiliw-giliw na numero. Ang paraan
ginamit upang simulan ang programa ay maaaring bahagyang naiiba mula sa OS sa OS, ngunit ipinapalagay ko na maaari mong malaman
ito kung ito ay gumagana naiiba sa iyo. Tiyaking hindi mo i-overwrite ang anumang file sa iyong
system kapag isinasagawa ang sumusunod na utos at i-type ang buong linya bilang isang mahabang linya (I
kinailangan itong hatiin para madaling mabasa) at laktawan ang lahat ng mga character na '\'.

rrdtool create test.rrd \
--simula 920804400 \
DS:speed:COUNTER:600:U:U \
RRA:AVERAGE:0.5:1:24 \
RRA:AVERAGE:0.5:6:10

(Kaya ipasok ang: "rrdtool create test.rrd --start 920804400 DS ...")

Ano ay naging nilikha?
Gumawa kami ng round robin database na tinatawag na test (test.rrd) na magsisimula sa tanghali ng araw na I
nagsimulang isulat ang dokumentong ito, ika-7 ng Marso, 1999 (ang petsang ito ay isinasalin sa 920804400
segundo tulad ng ipinaliwanag sa ibaba). Ang aming database ay nagtataglay ng isang data source (DS) na pinangalanang "speed" na
kumakatawan sa isang counter. Ang counter na ito ay binabasa tuwing limang minuto (ito ang default
kaya hindi mo kailangang maglagay ng "--step=300"). Sa parehong database dalawang round robin
Ang mga archive (RRAs) ay pinapanatili, ang isa ay nag-a-average ng data sa tuwing ito ay binabasa (hal., mayroong
walang katamtaman) at nagpapanatili ng 24 na sample (24 na beses 5 minuto ay 2 oras). Yung isa
may average na 6 na halaga (kalahating oras) at naglalaman ng 10 ganoong average (hal. 5 oras).

Gumagana ang RRDtool sa mga espesyal na time stamp na nagmumula sa mundo ng UNIX. Ang time stamp na ito ay ang
bilang ng mga segundo na lumipas mula noong Enero 1, 1970 UTC. Ang halaga ng time stamp ay
isinalin sa lokal na oras at samakatuwid ay magiging iba ang hitsura nito para sa iba't ibang time zone.

Malamang na wala ka sa parehong bahagi ng mundo gaya ko. Nangangahulugan ito ng iyong oras
iba ang zone. Sa lahat ng halimbawa kung saan pinag-uusapan ko ang oras, maaaring mali ang mga oras
ikaw. Ito ay may maliit na epekto sa mga resulta ng mga halimbawa, itama lamang ang mga oras habang
pagbabasa. Bilang halimbawa: kung saan makikita ko ang "12:05" makikita ng mga taga-UK ang "11:05".

Kailangan na nating punan ang ating database ng ilang numero. Magpapanggap kaming nabasa ang
sumusunod na mga numero:

12:05 12345 km
12:10 12357 km
12:15 12363 km
12:20 12363 km
12:25 12363 km
12:30 12373 km
12:35 12383 km
12:40 12393 km
12:45 12399 km
12:50 12405 km
12:55 12411 km
13:00 12415 km
13:05 12420 km
13:10 12422 km
13:15 12423 km

Pinuno namin ang database tulad ng sumusunod:

pagsubok sa pag-update ng rrdtool.rrd 920804700:12345 920805000:12357 920805300:12363
pagsubok sa pag-update ng rrdtool.rrd 920805600:12363 920805900:12363 920806200:12373
pagsubok sa pag-update ng rrdtool.rrd 920806500:12383 920806800:12393 920807100:12399
pagsubok sa pag-update ng rrdtool.rrd 920807400:12405 920807700:12411 920808000:12415
pagsubok sa pag-update ng rrdtool.rrd 920808300:12420 920808600:12422 920808900:12423

Ito ay mababasa: i-update ang aming database ng pagsubok gamit ang mga sumusunod na numero

oras 920804700, halaga 12345
oras 920805000, halaga 12357

atbp.

Gaya ng nakikita mo, posibleng mag-feed ng higit sa isang value sa database sa isa
utos. Kinailangan kong huminto sa tatlo para sa pagiging madaling mabasa ngunit ang tunay na maximum sa bawat linya ay OS
umaasa

Maaari na naming makuha ang data mula sa aming database gamit ang "rrdtool fetch":

rrdtool fetch test.rrd AVERAGE --simulan 920804400 --end 920809200

Dapat itong ibalik ang sumusunod na output:

pabilisin

920804700: nan
920805000: 4.0000000000e-02
920805300: 2.0000000000e-02
920805600: 0.0000000000e+00
920805900: 0.0000000000e+00
920806200: 3.3333333333e-02
920806500: 3.3333333333e-02
920806800: 3.3333333333e-02
920807100: 2.0000000000e-02
920807400: 2.0000000000e-02
920807700: 2.0000000000e-02
920808000: 1.3333333333e-02
920808300: 1.6666666667e-02
920808600: 6.6666666667e-03
920808900: 3.3333333333e-03
920809200: nan
920809500: nan

Tandaan na maaari kang makakuha ng higit pang mga row kaysa sa iyong inaasahan. Ang dahilan nito ay humihingi ka
isang hanay ng oras na nagtatapos sa 920809200. Ang numerong nakasulat sa likod ng 920809200: sa
Sinasaklaw ng listahan sa itaas ang hanay ng oras mula 920808900 hanggang 920809200, BUKOD 920809200. Kaya
upang maging sigurado, matatanggap mo ang entry mula 920809200 hanggang 920809500 pati na rin dahil ito
KASAMA ang 920809200. Maaari mo ring makita ang "NaN" sa halip na "nan" ito ay nakasalalay sa OS. "NaN"
ibig sabihin ay "Not A Number". Kung ang iyong OS ay nagsusulat ng "U" o "UNKN" o isang katulad na iyon
Sige. Kung may iba pang mali, malamang na ito ay dahil sa isang pagkakamali na ginawa mo (ipagpalagay na
na tama ang tutorial ko syempre :-). Sa kasong iyon: tanggalin ang database at subukan
muli.

Ang kahulugan ng output sa itaas ay magiging malinaw sa ibaba.

oras sa lumikha ilan graphics
Subukan ang sumusunod na utos:

rrdtool graph speed.png \
--simula 920804400 --tapos 920808000 \
DEF:myspeed=test.rrd:speed:AVERAGE \
LINE2:myspeed#FF0000

Lilikha ito ng speed.png na magsisimula sa 12:00 at magtatapos sa 13:00. May definition
ng isang variable na tinatawag na myspeed, gamit ang data mula sa RRA "speed" out sa database na "test.rrd".
Ang linya na iginuhit ay 2 pixel ang taas at kumakatawan sa variable na myspeed. Ang kulay ay pula
(tinukoy ng rgb-representation nito, tingnan sa ibaba).

Mapapansin mo na ang simula ng graph ay hindi sa 12:00 ngunit sa 12:05. Ito ay dahil ang
wala kaming sapat na data upang sabihin ang average bago ang oras na iyon. Mangyayari lang ito kapag
nakakaligtaan mo ang ilang mga sample, hindi ito mangyayari ng marami, sana.

Kung ito ay gumana: congratulations! Kung hindi, tingnan kung ano ang naging mali.

Ang mga kulay ay binuo mula sa pula, berde at asul. Para sa bawat isa sa mga bahagi, tukuyin mo
magkano ang gagamitin sa hexadecimal kung saan ang 00 ay nangangahulugang hindi kasama at ang FF ay nangangahulugan na ganap na kasama.
Ang "kulay" na puti ay pinaghalong pula, berde at asul: FFFFFF Ang "kulay" na itim ay lahat
mga kulay off: 000000

pula #FF0000
berde #00FF00
asul #0000FF
magenta #FF00FF (pinaghalong pula at asul)
kulay abo #555555 (isang-katlo ng lahat ng bahagi)

Bukod pa rito, maaari kang (na may kamakailang RRDtool) magdagdag ng alpha channel (transparency). Ang
Ang default ay magiging "FF" na nangangahulugang hindi transparent.

Ang PNG na nilikha mo ay maaaring ipakita gamit ang iyong paboritong viewer ng imahe. Mga web browser
ipapakita ang PNG sa pamamagitan ng URL na "file:///the/path/to/speed.png"

Graphics sa ilan matematika
Kapag tinitingnan ang larawan, mapapansin mo na ang pahalang na axis ay may label na 12:10, 12:20,
12:30, 12:40 at 12:50. Minsan ang isang label ay hindi magkasya (12:00 at 13:00 ay malamang
kandidato) kaya sila ay nilaktawan.

Ipinapakita ng vertical axis ang saklaw na ipinasok namin. Nagbigay kami ng mga kilometro at kapag hinati
sa pamamagitan ng 300 segundo, nakakakuha tayo ng napakaliit na numero. Upang maging eksakto, ang unang halaga ay 12
(12357-12345) at hinati sa 300 ito ay nagiging 0.04, na ipinapakita ng RRDtool bilang "40 m"
ibig sabihin ay "40/1000". Ang "m" (milli) ay walang kinalaman sa mga metro (m din), kilometro o
millimeters! Hindi alam ng RRDtool ang tungkol sa mga pisikal na unit ng aming data, gumagana lang ito
walang sukat na mga numero.

Kung sinukat namin ang aming mga distansya sa metro, ito ay magiging (12357000-12345000)/300 =
12000 / 300 = 40.

Dahil ang karamihan sa mga tao ay may mas magandang pakiramdam para sa mga numero sa hanay na ito, itatama namin iyon. kaya namin
muling likhain ang aming database at iimbak ang tamang data, ngunit mayroong isang mas mahusay na paraan: ginagawa namin ang ilan
mga kalkulasyon habang ginagawa ang png file!

rrdtool graph speed2.png \
--simula 920804400 --tapos 920808000 \
--vertical-label m/s \
DEF:myspeed=test.rrd:speed:AVERAGE \
CDEF:realspeed=myspeed,1000,\* \
LINE2:realspeed#FF0000

Tandaan: Kailangan kong takasan ang multiplication operator * na may backslash. Kung hindi ko gagawin, ang
Maaaring bigyang-kahulugan ito ng operating system at gamitin ito para sa pagpapalawak ng pangalan ng file. Maaari ka ring maglagay
ang linya sa loob ng mga panipi ay ganito:

"CDEF:realspeed=myspeed,1000,*" \

Ito ay bumagsak sa: ito ay RRDtool na dapat makita ang *, hindi ang iyong shell. At ito ang iyong shell
interpreting \, hindi RRDtool. Maaaring kailanganin mong ayusin ang mga halimbawa nang naaayon kung mangyari
gumamit ng operating system o shell na iba ang kilos.

Pagkatapos tingnan ang PNG na ito, napansin mong nawala ang "m" (milli). Ito ay kung ano ang
tama ang magiging resulta. Gayundin, may idinagdag na label sa larawan. Bukod sa mga bagay
nabanggit sa itaas, ang PNG ay dapat magmukhang pareho.

Ang mga kalkulasyon ay tinukoy sa bahagi ng CDEF sa itaas at nasa Reverse Polish Notation
("RPN"). Ang hiniling namin sa RRDtool na gawin ay: "kunin ang data source myspeed at ang numero
1000; paramihin ang mga iyon". Huwag nang mag-abala pa sa RPN, ipapaliwanag ito mamaya sa higit pa
detalye. Gayundin, maaaring gusto mong basahin ang aking tutorial sa mga CDEF at ang tutorial ni Steve Rader sa RPN.
Ngunit tapusin muna ang tutorial na ito.

Maghintay ka! Kung maaari nating i-multiply ang mga halaga sa 1000, dapat din itong maipakita
kilometro bawat oras mula sa parehong data!

Upang baguhin ang isang halaga na sinusukat sa metro bawat segundo:

Kalkulahin ang mga metro bawat oras: halaga * 3600
Kalkulahin ang mga kilometro bawat oras: halaga / 1000
Magkasama itong gumagawa ng: value * (3600/1000) o value * 3.6

Sa aming halimbawang database, nagkamali kami at kailangan naming bayaran ito sa pamamagitan ng
pagpaparami ng 1000. Paglalapat ng pagwawasto na iyon:

value * 3.6 * 1000 == value * 3600

Ngayon, likhain natin itong PNG, at magdagdag ng higit pang mahika ...

rrdtool graph speed3.png \
--simula 920804400 --tapos 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
"CDEF:kmh=myspeed,3600,*" \
CDEF:mabilis=kmh,100,GT,kmh,0,IF \
CDEF:mabuti=kmh,100,GT,0,kmh,IF \
HRULE:100#0000FF:"Pinapayagan ang maximum" \
AREA:good#00FF00:"Magandang bilis" \
AREA:fast#FF0000:"Masyadong mabilis"

Tandaan: dito gumagamit kami ng isa pang paraan upang makatakas sa * operator sa pamamagitan ng paglalagay ng buong string
dobleng panipi.

Mukhang mas maganda ang graph na ito. Ang bilis ay ipinapakita sa km/h at mayroong dagdag na linya na may
ang pinakamataas na pinahihintulutang bilis (sa kalsadang dinadaanan ko). Nagpalit din ako ng kulay dati
bilis ng pagpapakita at binago ito mula sa isang linya patungo sa isang lugar.

Ang mga kalkulasyon ay mas kumplikado ngayon. Para sa mga sukat ng bilis sa loob ng limitasyon ng bilis nila
ay:

Suriin kung ang kmh ay higit sa 100 ( kmh,100 ) GT
Kung gayon, ibalik ang 0, kung hindi, kmh ((( kmh,100 ) GT ), 0, kmh) KUNG

Para sa mga halagang lampas sa limitasyon ng bilis:

Suriin kung ang kmh ay higit sa 100 ( kmh,100 ) GT
Kung gayon, ibalik ang kmh, kung hindi, ibalik ang 0 ((( kmh,100) GT ), kmh, 0) KUNG

Graphics Salamangka
Gusto kong maniwala na halos walang mga limitasyon sa kung paano maaaring manipulahin ng RRDtool graph ang data.
Hindi ko ipapaliwanag kung paano ito gumagana, ngunit tingnan ang sumusunod na PNG:

rrdtool graph speed4.png \
--simula 920804400 --tapos 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
CDEF:nonans=myspeed,UN,0,myspeed,IF \
CDEF:kmh=nonans,3600,* \
CDEF:mabilis=kmh,100,GT,100,0,IF \
CDEF:over=kmh,100,GT,kmh,100,-,0,IF \
CDEF:mabuti=kmh,100,GT,0,kmh,IF \
HRULE:100#0000FF:"Pinapayagan ang maximum" \
AREA:good#00FF00:"Magandang bilis" \
AREA:fast#550000:"Masyadong mabilis" \
STACK:over#FF0000:"Over speed"

Tandaan ang tala sa simula? Kinailangan kong tanggalin ang hindi kilalang data mula sa halimbawang ito. Ang
Ang 'nonans' CDEF ay bago, at ang ika-6 na linya (na dating ika-5 linya) ay nagbabasa noon
'CDEF:kmh=myspeed,3600,*'

Gumawa tayo ng mabilis at maruming HTML page para tingnan ang tatlong PNG:

Bilis







Pangalanan ang file na "speed.html" o katulad nito, at tingnan ito sa iyong web browser.

Ngayon, ang kailangan mo lang gawin ay regular na sukatin ang mga halaga at i-update ang database. kapag ikaw
gustong tingnan ang data, muling likhain ang mga PNG at tiyaking i-refresh ang mga ito sa iyong browser.
(Tandaan: ang pag-click lang sa reload ay maaaring hindi sapat, lalo na kapag may mga proxy. Subukan
shift-reload o ctrl-F5).

update in Katotohanan
Nagamit na namin ang command na "update": kumuha ito ng isa o higit pang mga parameter sa anyo ng
" : ". Ikalulugod mong malaman na maaari mong tukuyin ang kasalukuyang oras sa pamamagitan ng pagpuno
sa isang "N" bilang oras. O maaari mong gamitin ang function na "oras" sa Perl (ang pinakamaikling halimbawa
sa tutorial na ito):

perl -e 'oras ng pag-print, "\n" '

Paano magpatakbo ng isang programa sa mga regular na pagitan ay tiyak sa OS. Ngunit narito ang isang halimbawa sa pseudo
code:

- Kunin ang halaga at ilagay ito sa variable na "$speed"
- bilis ng pag-update ng rrdtool.rrd N:$bilis

(huwag subukan ito sa aming database ng pagsubok, gagamitin namin ito sa karagdagang mga halimbawa)

Ito lang. Patakbuhin ang script sa itaas tuwing limang minuto. Kapag kailangan mong malaman kung ano ang
hitsura ng mga graph, patakbuhin ang mga halimbawa sa itaas. Maaari mo ring ilagay ang mga ito sa isang script. Pagkatapos
sa pagpapatakbo ng script na iyon, tingnan ang pahinang index.html na aming ginawa sa itaas.

ilan mga salita on SNMP
Naiisip ko ang napakakaunting mga tao na makakakuha ng totoong data mula sa kanilang sasakyan tuwing lima
minuto. Ang lahat ng iba pang mga tao ay kailangang manirahan para sa ibang uri ng counter. kaya mo
sukatin ang bilang ng mga pahinang inilimbag ng isang printer, halimbawa, ang mga tasa ng kape na ginawa ni
ang coffee machine, isang device na nagbibilang ng kuryenteng ginamit, anuman. Anumang pagdaragdag
maaaring subaybayan at i-graph ang counter gamit ang mga bagay na natutunan mo sa ngayon. Mamaya na tayo
magagawang subaybayan din ang iba pang mga uri ng mga halaga tulad ng temperatura.

Maraming taong interesado sa RRDtool ang gagamit ng counter na sumusubaybay sa mga octet (bytes)
inilipat ng isang network device. Kaya gawin na lang natin sa susunod. Magsisimula tayo sa isang
paglalarawan kung paano mangalap ng datos.

Ang ilang mga tao ay gagawa ng isang puna na may mga tool na maaaring gawin ang koleksyon ng data na ito
ikaw. Tama sila! Gayunpaman, sa palagay ko ay mahalaga na maunawaan mo na hindi sila
kailangan. Kapag kailangan mong tukuyin kung bakit nagkamali ang mga bagay kailangan mong malaman kung paano sila
gumagana.

Ang isang tool na ginamit sa halimbawa ay napag-usapan nang napakaikling sa simula nito
dokumento, ito ay tinatawag na SNMP. Ito ay isang paraan ng pakikipag-usap sa mga naka-network na kagamitan. Ang gamit ko
sa ibaba ay tinatawag na "snmpget" at ito ay kung paano ito gumagana:

snmpget password ng device OID

or

snmpget -v[bersyon] -c[password] device OID

Para sa device, papalitan mo ang pangalan, o ang IP address, ng iyong device. Para sa password mo
gamitin ang "komunidad read string" bilang ito ay tinatawag sa SNMP mundo. Para sa ilang device ang
default ng "pampubliko" ay maaaring gumana, gayunpaman ito ay maaaring hindi paganahin, baguhin o protektado para sa
privacy at seguridad na dahilan. Basahin ang dokumentasyong kasama ng iyong device o
programa.

Pagkatapos ay mayroong parameter na ito, na tinatawag na OID, na nangangahulugang "object identifier".

Kapag nagsimula kang matuto tungkol sa SNMP, mukhang nakakalito. Hindi naman ganoon kahirap
kapag tiningnan mo ang Management Information Base ("MIB"). Ito ay isang nakabaligtad na puno na
naglalarawan ng data, na may isang solong node bilang ugat at mula doon ay isang bilang ng mga sanga. Ang mga ito
ang mga sangay ay napupunta sa isa pang node, nagsanga sila, atbp. Ang lahat ng mga sangay ay may pangalan at
sila ang bumubuo sa landas na ating sinusundan hanggang sa ibaba. Ang mga sangay na sinusundan namin ay
pinangalanan: iso, org, dod, internet, mgmt at mib-2. Ang mga pangalang ito ay maaari ding isulat bilang
mga numero at 1 3 6 1 2 1.

iso.org.dod.internet.mgmt.mib-2 (1.3.6.1.2.1)

Mayroong maraming pagkalito tungkol sa nangungunang tuldok na ginagamit ng ilang mga programa. Walang*
nangungunang tuldok sa isang OID. Gayunpaman, maaaring gamitin ng ilang mga programa ang nasa itaas na bahagi ng mga OID bilang a
default. Upang ipahiwatig ang pagkakaiba sa pagitan ng mga pinaikling OID at mga buong OID na kailangan nila a
nangungunang tuldok kapag tinukoy mo ang kumpletong OID. Kadalasan ang mga programang iyon ay iiwan ang
default na bahagi kapag ibinalik ang data sa iyo. Upang gumawa ng mga bagay na mas masahol pa, mayroon silang ilan
mga default na prefix...

Ok, magpatuloy tayo sa simula ng ating OID: mayroon tayong 1.3.6.1.2.1 Mula doon, tayo ay
lalo na interesado sa mga "interface" ng sangay na mayroong numero 2 (hal., 1.3.6.1.2.1.2
o 1.3.6.1.2.1.mga interface).

Una, kailangan nating kumuha ng ilang SNMP program. Tingnan muna kung mayroong isang pre-compiled package
magagamit para sa iyong OS. Ito ang ginustong paraan. Kung hindi, kailangan mong makuha ang
pinagmumulan ng iyong sarili at i-compile ang mga iyon. Ang Internet ay puno ng mga mapagkukunan, mga programa atbp. Hanapin
impormasyon gamit ang isang search engine o anumang gusto mo.

Ipagpalagay na nakuha mo ang programa. Subukan munang mangolekta ng ilang data na available sa karamihan
mga sistema. Tandaan: mayroong isang maikling pangalan para sa bahagi ng puno na pinaka-interesante sa atin
sa mundong ginagalawan natin!

Magbibigay ako ng isang halimbawa na maaaring magamit sa Fedora Core 3. Kung hindi ito gumagana para sa iyo,
gawin ang iyong paraan sa pamamagitan ng manual ng snmp at iakma ang halimbawa upang gawin itong gumana.

snmpget -v2c -c pampublikong myrouter system.sysDescr.0

Dapat sumagot ang device na may paglalarawan ng sarili nito, marahil ay walang laman. Hanggang sa nakuha mo
isang wastong sagot mula sa isang device, marahil ay gumagamit ng ibang "password", o ibang device,
walang kwenta ang ipagpatuloy.

snmpget -v2c -c pampublikong myrouter interface.ifNumber.0

Sana makakuha ka ng isang numero bilang isang resulta, ang bilang ng mga interface. Kung gayon, maaari kang magpatuloy
at subukan ang ibang program na tinatawag na "snmpwalk".

snmpwalk -v2c -c public myrouter interfaces.ifTable.ifEntry.ifDescr

Kung babalik ito na may kasamang listahan ng mga interface, malapit ka na. Narito ang isang halimbawa:
[user@host /home/alex]$ snmpwalk -v2c -c public cisco 2.2.1.2

interfaces.ifTable.ifEntry.ifDescr.1 = "BRI0: B-Channel 1"
interfaces.ifTable.ifEntry.ifDescr.2 = "BRI0: B-Channel 2"
interfaces.ifTable.ifEntry.ifDescr.3 = "BRI0" Hex: 42 52 49 30
interfaces.ifTable.ifEntry.ifDescr.4 = "Ethernet0"
interfaces.ifTable.ifEntry.ifDescr.5 = "Loopback0"

Sa kagamitang ito ng cisco, gusto kong subaybayan ang interface ng "Ethernet0" at mula sa
sa itaas ng output nakikita ko na ito ay numero apat. Susubukan ko:

[user@host /home/alex]$ snmpget -v2c -c public cisco 2.2.1.10.4 2.2.1.16.4

interfaces.ifTable.ifEntry.ifInOctets.4 = 2290729126
interfaces.ifTable.ifEntry.ifOutOctets.4 = 1256486519

Kaya ngayon mayroon akong dalawang OID na susubaybayan at sila ay (buo, sa oras na ito):

1.3.6.1.2.1.2.2.1.10

at

1.3.6.1.2.1.2.2.1.16

parehong may interface number na 4.

Huwag magpaloko, hindi ito ang aking unang pagsubok. Medyo tumagal din bago ko maintindihan
ano ang ibig sabihin ng lahat ng mga numerong ito. Malaki ang maitutulong nito kapag naisalin ang mga ito sa deskriptibo
text... At least, kapag pinag-uusapan ng mga tao ang tungkol sa mga MIB at OID ay alam mo kung ano ang lahat
tungkol sa. Huwag kalimutan ang numero ng interface (0 kung hindi ito nakadepende sa interface) at subukan
snmpwalk kung hindi ka makakuha ng sagot mula sa snmpget.

Kung naiintindihan mo ang seksyon sa itaas at kumuha ng mga numero mula sa iyong device, magpatuloy sa
ang tutorial na ito. Kung hindi, pagkatapos ay bumalik at muling basahin ang bahaging ito.

A tunay mundo halimbawa
Simulan na ang kasiyahan. Una, lumikha ng isang bagong database. Naglalaman ito ng data mula sa dalawang counter,
tinatawag na input at output. Ang data ay inilalagay sa mga archive na average nito. Kumuha sila ng 1, 6, 24
o 288 sample sa isang pagkakataon. Pumapasok din sila sa mga archive na nagpapanatili ng maximum na mga numero. Ito
ipapaliwanag mamaya. Ang oras sa pagitan ng mga sample ay 300 segundo, isang magandang simula
punto, na kapareho ng limang minuto.

1 sample na "averaged" ay nananatili ng 1 yugto ng 5 minuto
6 na sample na na-average ay naging isang average sa 30 minuto
24 na sample na na-average ay naging isang average sa 2 oras
288 sample na na-average ay naging isang average sa 1 araw

Subukan nating maging tugma sa MRTG na nag-iimbak ng tungkol sa sumusunod na dami ng data:

600 5 minutong sample: 2 araw at 2 oras
600 30 minutong sample: 12.5 araw
600 2-oras na sample: 50 araw
732 1-araw na sample: 732 araw

Ang mga saklaw na ito ay idinagdag, kaya ang kabuuang dami ng data na nakaimbak sa database ay
humigit-kumulang 797 araw. Iniimbak ng RRDtool ang data sa ibang paraan, hindi nito sinisimulan ang "lingguhan"
archive kung saan huminto ang "araw-araw" na archive. Para sa parehong mga archive ang pinakahuling data ay magiging
malapit sa "ngayon" at samakatuwid ay kakailanganin nating magpanatili ng higit pang data kaysa sa ginagawa ng MRTG!

Kakailanganin namin ang:

600 sample ng 5 minuto (2 araw at 2 oras)
700 sample ng 30 minuto (2 araw at 2 oras, kasama ang 12.5 araw)
775 sample ng 2 oras (sa itaas + 50 araw)
797 sample ng 1 araw (sa itaas + 732 araw, na-round up sa 797)

rrdtool lumikha myrouter.rrd \
DS:input:COUNTER:600:U:U \
DS:output:COUNTER:600:U:U \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:600 ​​\
RRA:MAX:0.5:6:700 ​​\
RRA:MAX:0.5:24:775 ​​\
RRA:MAX:0.5:288:797

Ang susunod na gagawin ay ang mangolekta ng data at iimbak ito. Narito ang isang halimbawa. Ito ay nakasulat
bahagyang nasa pseudo code, kakailanganin mong malaman kung ano ang eksaktong gagawin sa iyong OS na gagawin
gumagana ito.

habang hindi ang katapusan ng sansinukob
do
makakuha ng resulta ng
komunidad ng snmpget router 2.2.1.10.4
sa variable na $in
makakuha ng resulta ng
komunidad ng snmpget router 2.2.1.16.4
sa variable na $out

rrdtool update myrouter.rrd N:$in:$out

maghintay ng 5 minuto
tapos

Pagkatapos, pagkatapos mangolekta ng data para sa isang araw, subukang gumawa ng larawan gamit ang:

rrdtool graph myrouter-day.png --start -86400 \
DEF:inoctets=myrouter.rrd:input:AVERAGE \
DEF:outoctets=myrouter.rrd:output:AVERAGE \
AREA:inoctets#00FF00:"Sa trapiko" \
LINE1:outoctets#0000FF:"Out traffic"

Dapat itong makagawa ng isang larawan na may isang araw na halaga ng trapiko. Ang isang araw ay 24 na oras ng 60
minuto ng 60 segundo: 24*60*60=86400, magsisimula kami ngayon sa minus 86400 segundo. Tinutukoy namin
(na may mga DEF) inoctets at outoctets bilang mga average na halaga mula sa database myrouter.rrd
at gumuhit ng isang lugar para sa "in" na trapiko at isang linya para sa "out" na trapiko.

Tingnan ang larawan at panatilihin ang pag-log ng data sa loob ng ilang araw. Kung gusto mo, maaari mong subukan ang
mga halimbawa mula sa database ng pagsubok at tingnan kung makakakuha ka ng iba't ibang opsyon at kalkulasyon
gumagana.

Mungkahi: Ipakita sa mga byte bawat segundo at sa mga bit bawat segundo. Gawin ang Ethernet graphics
maging pula kung sila ay higit sa apat na megabit bawat segundo.

Pagpapatatag Pag-andar
Ilang talata sa likod na binanggit ko ang posibilidad na panatilihin ang pinakamataas na halaga sa halip na
ang mga average na halaga. Tayo'y pumunta sa ito ng kaunti pa.

Alalahanin ang lahat ng bagay tungkol sa bilis ng sasakyan. Ipagpalagay na nagmaneho kami sa 144 km/h sa loob ng 5
minuto at pagkatapos ay pinigilan ng pulis sa loob ng 25 minuto. Sa pagtatapos ng lecture namin
kukunin ang aming laptop at gagawa at tingnan ang larawang kinuha mula sa database. Kung titingnan natin
ang pangalawang RRA na ginawa namin, magkakaroon kami ng average mula sa 6 na sample. Ang mga sample
ang susukatin ay magiging 144+0+0+0+0+0=144, hinati sa 30 minuto, itinatama para sa error ng
1000, isinalin sa km/h, na may resultang 24 km/h. Kukuha pa sana ako ng ticket pero hindi
para bumilis na :)

Malinaw, sa kasong ito, hindi natin dapat tingnan ang mga average. Sa ilang mga kaso sila ay madaling gamitin.
Kung gusto mong malaman kung ilang km ang iyong nilakbay, ang average na larawan ay magiging tama
isa titingin. Sa kabilang banda, para sa bilis na aming nilakbay, ang maximum na mga numero
mas kawili-wili ang nakikita. Mamaya makikita natin ang higit pang mga uri.

Ito ay pareho para sa data. Kung gusto mong malaman ang halaga, tingnan ang mga average. Kung gusto mo
para malaman ang rate, tingnan ang maximum. Sa paglipas ng panahon, lalo silang maghihiwalay. Sa
ang huling database na ginawa namin, mayroong dalawang archive na nagpapanatili ng data bawat araw. Ang
Ang archive na nagpapanatili ng mga average ay magpapakita ng mababang mga numero, ang archive na nagpapakita ng maxima ay magkakaroon
mas mataas na mga numero.

Para sa aking sasakyan, isasalin ito sa mga average bawat araw na 96/24=4 km/h (habang naglalakbay ako ng mga 94
kilometro sa isang araw) sa mga araw ng trabaho, at pinakamataas na 120 km/h (ang pinakamataas kong bilis na
maabot araw-araw).

Malaking pagkakaiba. Huwag tumingin sa pangalawang graph upang tantiyahin ang mga distansya na aking nilakbay
at huwag tumingin sa unang graph upang tantiyahin ang aking bilis. Ito ay gagana kung ang mga sample ay
magkalapit, dahil nasa limang minuto sila, ngunit hindi kung karaniwan mo.

Sa ilang mga araw, nagpapatuloy ako sa mahabang biyahe. Kung pupunta ako sa buong Europa at maglakbay ng 12 oras, ang
ang unang graph ay tataas sa humigit-kumulang 60 km/h. Ang pangalawa ay magpapakita ng 180 km/h. Ibig sabihin nito
Naglakbay ako sa layo na 60 km/h beses 24 h = 1440 km. Ginawa ko ito nang may mas mataas na bilis at
maximum na humigit-kumulang 180 km/h. Gayunpaman, malamang na hindi ito nangangahulugan na naglakbay ako ng 8 oras
sa patuloy na bilis na 180 km/h!

Ito ay isang tunay na halimbawa: sumabay sa daloy sa Germany (mabilis!) at huminto ng ilang beses para sa
gas at kape. Dahan-dahang magmaneho sa Austria at Netherlands. Mag-ingat sa
mga bundok at nayon. Kung titingnan mo ang mga graph na ginawa mula sa limang minuto
mga average na makakakuha ka ng isang ganap na naiibang larawan. Makikita mo ang parehong mga halaga sa
average at maximum na mga graph (sa kondisyon na sinusukat ko bawat 300 segundo). Magagawa mo sana
tingnan kung kailan ako huminto, kapag ako ay nasa top gear, kapag ako ay nagmaneho sa mga mabilis na highway atbp. Ang
mas mataas ang granularity ng data, kaya mas marami kang makikita. Gayunpaman, ito ay tumatagal ng 12
sample bawat oras, o 288 value bawat araw, kaya magiging maraming data ito sa mas mahabang panahon
ng oras. Samakatuwid, ina-average namin ito, sa kalaunan ay isang halaga bawat araw. Mula sa isang halagang ito, tayo
hindi makakita ng maraming detalye, siyempre.

Tiyaking naiintindihan mo ang huling ilang talata. Walang halaga sa isang linya lamang at a
ilang axis, kailangan mong malaman kung ano ang ibig sabihin ng mga ito at bigyang-kahulugan ang data sa naaangkop na paraan.
Ito ay totoo para sa lahat ng data.

Ang pinakamalaking pagkakamali na maaari mong gawin ay ang paggamit ng nakolektang data para sa isang bagay na hindi
angkop para sa. Mas makabubuti kung wala ka ng graph.

Natin suriin Ano ikaw ngayon dapat kilala
Alam mo kung paano lumikha ng isang database at maaaring maglagay ng data dito. Maaari mong ilabas ang mga numero
muli sa pamamagitan ng paglikha ng isang imahe, gawin ang matematika sa data mula sa database at tingnan ang resulta
sa halip na ang raw data. Alam mo ang tungkol sa pagkakaiba sa pagitan ng mga average at maximum, at
kung kailan gagamitin ang alin (o hindi bababa sa dapat kang magkaroon ng ideya).

Magagawa ng RRDtool ang higit pa sa natutunan natin hanggang ngayon. Bago ka magpatuloy sa iba
ng doc na ito, inirerekumenda kong basahin mong muli mula sa simula at subukan ang ilang mga pagbabago sa
mga halimbawa. Tiyaking lubos mong naiintindihan ang lahat. Magiging sulit ang pagsisikap at pagtulong
ikaw ay hindi lamang sa natitirang bahagi ng tutorial na ito, kundi pati na rin sa iyong pang-araw-araw na pagsubaybay nang matagal
pagkatapos mong basahin ang panimula na ito.

data pinagmulan Uri
Sige, gusto mong magpatuloy. Maligayang pagbabalik at maghanda para sa mas mabilis na pagpasok
ang mga halimbawa at paliwanag.

Alam mo na upang matingnan ang isang counter sa paglipas ng panahon, kailangan mong kumuha ng dalawang numero at
hatiin ang pagkakaiba ng mga ito sa pagitan ng oras na lumipas. Makatuwiran ito para sa mga halimbawa
Binigyan kita pero may iba pang posibilidad. Halimbawa, nabawi ko ang
temperatura mula sa aking router sa tatlong lugar lalo na ang pumapasok, ang tinatawag na hot-spot at
ang tambutso. Ang mga halagang ito ay hindi mga counter. Kung kukunin ko ang pagkakaiba ng dalawang sample
at hatiin iyon ng 300 segundo hihilingin ko ang pagbabago ng temperatura bawat segundo.
Sana ito ay zero! Kung hindi, malamang nasusunog ang computer room :)

Kaya anong magagawa natin? Maaari naming sabihin sa RRDtool na iimbak ang mga halaga na sinusukat namin nang direkta bilang sila
ay (ito ay hindi ganap na totoo ngunit sapat na malapit). Magiging maganda ang hitsura ng mga graph na gagawin namin
mas mabuti, magpapakita sila ng medyo pare-parehong halaga. Alam ko kapag abala ang router (gumagana ito
-> ito ay gumagamit ng mas maraming kuryente -> ito ay bumubuo ng mas maraming init -> ang temperatura ay tumataas). alam ko
kapag ang mga pinto ay naiwang bukas (ang silid ay naka-air condition) -> ang mainit na hangin mula sa iba
ng gusali ay dumadaloy sa silid ng kompyuter -> tumataas ang temperatura ng pumapasok). Atbp. Ang
uri ng data na ginagamit namin kapag lumilikha ng database bago ay counter, mayroon na kaming iba
uri ng data at sa gayon ay ibang pangalan para dito. Ito ay tinatawag na GAUGE. Mayroong higit pang mga naturang data
mga uri:

- COUNTER alam na natin ang isang ito
- GAUGE ngayon lang namin natutunan ang isang ito
- DERIVE
- GANAP

Ang dalawang karagdagang uri ay DERIVE at ABSOLUTE. Ang absolute ay maaaring gamitin tulad ng counter na may
isang pagkakaiba: Ipinapalagay ng RRDtool na na-reset ang counter kapag nabasa ito. Iyon ay: ang delta nito ay
kilala nang walang pagkalkula ng RRDtool samantalang ang RRDtool ay kailangang kalkulahin ito para sa counter
uri. Halimbawa: ang aming unang halimbawa (12345, 12357, 12363, 12363) ay mababasa: hindi alam, 12, 6,
0. Ang natitirang mga kalkulasyon ay mananatiling pareho. Yung isa, derive, parang counter.
Hindi tulad ng counter, maaari rin itong bumaba kaya maaari itong magkaroon ng negatibong delta. Muli, ang natitira sa
ang mga kalkulasyon ay nananatiling pareho.

Subukan natin silang lahat:

rrdtool create all.rrd --start 978300900 \
DS:a:COUNTER:600:U:U \
DS:b:GAUGE:600:U:U \
DS:c:DERIVE:600:U:U \
DS:d:ABSOLUTE:600:U:U \
RRA:AVERAGE:0.5:1:10
rrdtool update all.rrd \
978301200:300:1:600:300 \
978301500:600:3:1200:600 \
978301800:900:5:1800:900 \
978302100:1200:3:2400:1200 \
978302400:1500:1:2400:1500 \
978302700:1800:2:1800:1800 \
978303000:2100:4:0:2100 \
978303300:2400:6:600:2400 \
978303600:2700:4:600:2700 \
978303900:3000:2:1200:3000
rrdtool graph all1.png -s 978300600 -e 978304200 -h 400 \
DEF:linea=all.rrd:a:AVERAGE LINE3:linea#FF0000:"Line A" \
DEF:lineb=all.rrd:b:AVERAGE LINE3:lineb#00FF00:"Line B" \
DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"Line C" \
DEF:lined=all.rrd:d:AVERAGE LINE3:lined#000000:"Line D"

RRDtool sa ilalim ang Microscope
· Ang Linya A ay isang COUNTER na uri, kaya dapat itong patuloy na tumaas at dapat kalkulahin ng RRDtool
ang mga pagkakaiba. Gayundin, kailangang hatiin ng RRDtool ang pagkakaiba sa dami ng oras
lipas na. Dapat itong magtapos bilang isang tuwid na linya sa 1 (ang mga delta ay 300, ang oras ay
300).

· Ang Linya B ay may uri ng GAUGE. Ang mga ito ay "tunay" na mga halaga kaya dapat silang tumugma sa kung ano ang inilalagay natin sa: a
parang alon.

· Ang Linya C ay may uri na DERIVE. Dapat itong isang counter na maaaring bumaba. Ginagawa ito sa pagitan
2400 at 0, na may 1800 sa pagitan.

· Ang Linya D ay may uri na ABSOLUTE. Ito ay tulad ng counter ngunit ito ay gumagana sa mga halaga na wala
pagkalkula ng pagkakaiba. Ang mga numero ay pareho at tulad ng nakikita mo (sana) ito
ay may ibang resulta.

Isinasalin ito sa mga sumusunod na halaga, simula sa 23:10 at magtatapos sa 00:10 sa susunod
araw (kung saan ang ibig sabihin ng "u" ay hindi alam/na-unplot):

- Linya A: uu 1 1 1 1 1 1 1 1 1 u
- Linya B: u 1 3 5 3 1 2 4 6 4 2 u
- Linya C: uu 2 2 2 0 -2 -6 2 0 2 u
- Linya D: u 1 2 3 4 5 6 7 8 9 10 u

Kung ipinapakita ng iyong PNG ang lahat ng ito, alam mong naipasok mo nang tama ang data, ang RRDtool
gumagana nang maayos ang executable, hindi ka niloloko ng iyong viewer, at matagumpay kang nakapasok
taong 2000 :)

Maaari mong subukan ang parehong halimbawa ng apat na beses, sa bawat oras na may isa lamang sa mga linya.

Balikan natin muli ang data:

· Linya A: 300,600,900 at iba pa. Ang counter delta ay pare-parehong 300 at gayundin ang oras
delta. Ang isang numerong hinati sa sarili ay palaging 1 (maliban kapag hinahati sa zero which is
hindi natukoy/ilegal).

Bakit hindi alam ang unang punto? Alam namin kung ano ang inilagay namin sa database,
tama ba? Totoo, Ngunit wala kaming halaga upang kalkulahin ang delta mula sa, kaya hindi namin alam
kung saan tayo nagsimula. Mali na ipagpalagay na nagsimula tayo sa zero kaya hindi!

· Linya B: Walang dapat kalkulahin. Ang mga numero ay tulad ng mga ito.

· Linya C: Muli, hindi alam ang halaga ng pagsisimula. Ang parehong kuwento ay hawak tulad ng para sa linya A. Sa
sa kasong ito ang mga delta ay hindi pare-pareho, samakatuwid ang linya ay hindi rin. Kung ilalagay natin
ang parehong mga numero sa database tulad ng ginawa namin para sa linya A, nakuha namin ang parehong
linya. Hindi tulad ng type counter, ang ganitong uri ay maaaring bumaba at inaasahan kong ipakita sa iyo sa ibang pagkakataon kung bakit
ito ay gumagawa ng isang pagkakaiba.

· Linya D: Dito kinakalkula ng device ang mga delta. Samakatuwid, alam natin ang unang delta at
ito ay nakabalangkas. Nagkaroon kami ng parehong input tulad ng sa linya A, ngunit ang kahulugan ng input na ito ay
iba at sa gayon ay iba ang linya. Sa kasong ito, tumataas ang delta sa bawat pagkakataon
na may 300. Ang time delta ay nananatili sa isang pare-parehong 300 at samakatuwid ay ang paghahati ng dalawa
nagbibigay ng pagtaas ng halaga.

Kontrahin Balot
Mayroong ilang higit pang mga pangunahing kaalaman upang ipakita. Ang ilang mahahalagang opsyon ay kailangan pa ring saklawin at kami
hindi pa tumitingin sa mga counter wrap. Una ang counter wrap: Sa aming sasakyan napansin namin na ang
Ipinapakita ng counter ang 999987. Naglalakbay kami ng 20 km at ang counter ay dapat pumunta sa 1000007. Sa kasamaang palad,
six digits lang ang nasa counter namin so it really shows 000007. If we would plot that
sa isang uri na DERIVE, nangangahulugan ito na ang counter ay ibinalik sa 999980 km. Ito ay hindi, at
dapat mayroong ilang proteksyon para dito. Ang proteksyon na ito ay magagamit lamang para sa uri
COUNTER na dapat gamitin para sa ganitong uri ng counter pa rin. Paano ito gumagana? Uri
hindi dapat bababa ang counter at samakatuwid ay dapat ipalagay ng RRDtool na nakabalot ito kung bumaba
bumaba! Kung negatibo ang delta, maaari itong mabayaran sa pamamagitan ng pagdaragdag ng maximum
halaga ng counter + 1. Para sa aming sasakyan ito ay magiging:

Delta = 7 - 999987 = -999980 (sa halip na 1000007-999987=20)

Tunay na delta = -999980 + 999999 + 1 = 20

Sa oras ng pagsulat ng dokumentong ito, alam ng RRDtool ang mga counter na alinman sa 32 bits o
64 bits ng laki. Maaaring pangasiwaan ng mga counter na ito ang mga sumusunod na magkakaibang halaga:

- 32 bits: 0 .. 4294967295
- 64 bits: 0 .. 18446744073709551615

Kung kakaiba sa iyo ang mga numerong ito, maaari mong tingnan ang mga ito sa kanilang hexadecimal form:

- 32 bits: 0 .. FFFFFFFF
- 64 bits: 0 .. FFFFFFFFFFFFFFFFFF

Parehong pinangangasiwaan ng RRDtool ang parehong mga counter. Kung ang isang overflow ay nangyari at ang delta ay magiging
negatibo, idinaragdag muna ng RRDtool ang maximum ng isang maliit na counter + 1 sa delta. Kung ang delta
ay negatibo pa rin, ito ay dapat na ang malaking counter na nakabalot. Idagdag ang maximum na posible
halaga ng malaking counter + 1 at ibawas ang maling idinagdag na maliit na halaga.

May panganib dito: ipagpalagay na ang malaking counter ay nakabalot habang nagdaragdag ng isang malaking delta, ito
maaaring mangyari, ayon sa teorya, na ang pagdaragdag ng mas maliit na halaga ay gagawing positibo ang delta.
Sa malabong pagkakataong ito, hindi magiging tama ang mga resulta. Ang pagtaas ay dapat na halos bilang
mataas ang pinakamataas na counter value para mangyari iyon, kaya malamang na magkakaroon ka
ilang iba pang mga problema pati na rin at ang partikular na problemang ito ay hindi magiging katumbas ng halaga
nag-iisip tungkol sa. Kahit na, nagsama ako ng isang halimbawa, para ikaw mismo ang makapaghusga.

Ang susunod na seksyon ay nagbibigay sa iyo ng ilang mga numerong halimbawa para sa mga counter-wrap. Subukang gawin ang
kalkulasyon mo sa sarili mo o maniwala ka lang sa akin kung hindi kaya ng calculator mo ang mga numero :)

Mga numero ng pagwawasto:

- 32 bit: (4294967295 + 1) = 4294967296
- 64 bits: (18446744073709551615 + 1)
- pagwawasto1 = 18446744069414584320

Bago: 4294967200
Pagtaas: 100
Dapat maging: 4294967300
Ngunit ang totoo ay: 4
Delta: -4294967196
Pagwawasto1: -4294967196 + 4294967296 = 100

Bago: 18446744073709551000
Pagtaas: 800
Dapat maging: 18446744073709551800
Ngunit ang totoo ay: 184
Delta: -18446744073709550816
Pagwawasto1: -18446744073709550816
+ 4294967296 = -18446744069414583520
Pagwawasto2: -18446744069414583520
+18446744069414584320 = 800

Bago: 18446744073709551615 ( maximum na halaga )
Pagtaas: 18446744069414584320 ( walang katotohanan na pagtaas, minimum para sa
Dapat maging: 36893488143124135935 ang halimbawang ito upang gumana )
Ngunit ang totoo ay: 18446744069414584319
Delta: -4294967296
Pagwawasto1: -4294967296 + 4294967296 = 0
(hindi negatibo -> walang pagwawasto2)

Bago: 18446744073709551615 ( maximum na halaga )
Pagtaas: 18446744069414584319 ( isang mas kaunting pagtaas )
Dapat maging: 36893488143124135934
Ngunit ang totoo ay: 18446744069414584318
Delta: -4294967297
Pagwawasto1: -4294967297 + 4294967296 = -1
Pagwawasto2: -1 + 18446744069414584320 = 18446744069414584319

Gaya ng nakikita mo mula sa huling dalawang halimbawa, kailangan mo ng mga kakaibang numero para mabigo ang RRDtool
(sa kondisyon na ito ay walang bug siyempre), kaya hindi ito dapat mangyari. Gayunpaman, SNMP o ano pa man
paraan na pinili mo upang mangolekta ng data, maaari ring mag-ulat ng mga maling numero paminsan-minsan. Kami
hindi mapipigilan ang lahat ng pagkakamali, ngunit may ilang bagay na magagawa natin. Ang RRDtool ay "lumikha"
Ang command ay tumatagal ng dalawang espesyal na parameter para dito. Tinutukoy nila ang minimum at maximum na pinapayagan
mga halaga. Hanggang ngayon, ginamit namin ang "U", ibig sabihin ay "hindi kilala". Kung magbibigay ka ng mga halaga para sa isa o pareho
ng mga ito at kung ang RRDtool ay tumatanggap ng mga punto ng data na nasa labas ng mga limitasyong ito, hindi nito babalewalain
ang mga halagang iyon. Para sa isang thermometer sa degrees Celsius, ang absolute minimum ay nasa ilalim lamang
-273. Para sa aking router, maaari kong ipagpalagay na ang minimum na ito ay mas mataas kaya itatakda ko ito sa 10,
kung saan ang pinakamataas na temperatura ay itatakda ko sa 80. Anumang mas mataas at ang aparato ay mawawala
ng kaayusan.

Para sa bilis ng aking sasakyan, hindi ko inaasahan ang mga negatibong numero at hindi ko rin inaasahan
isang bilis na mas mataas kaysa sa 230. Anumang iba pa, at tiyak na nagkaroon ng error. Tandaan: ang
ang kabaligtaran ay hindi totoo, kung ang mga numero ay pumasa sa tseke na ito, hindi ito nangangahulugan na sila na
tama. Palaging hatulan ang graph na may malusog na dosis ng hinala kung tila kakaiba ito sa iyo.

data Pag-resampling
Ang isang mahalagang katangian ng RRDtool ay hindi pa naipaliwanag: halos imposible na
mangolekta ng data at i-feed ito sa RRDtool sa mga eksaktong agwat. Ang RRDtool samakatuwid ay nag-interpolate
ang data, kaya nakaimbak ang mga ito sa eksaktong mga pagitan. Kung hindi mo alam kung ano ang ibig sabihin nito o kung paano
gumagana ito, pagkatapos narito ang tulong na hinahanap mo:

Ipagpalagay na ang isang counter ay tataas ng eksaktong isa para sa bawat segundo. Gusto mong sukatin ito sa 300
segundong pagitan. Dapat mong kunin ang mga halaga na eksaktong 300 ang pagitan. Gayunpaman, dahil sa
iba't ibang pagkakataon na huli ka ng ilang segundo at ang pagitan ay 303. Ang delta ay
maging 303 din sa kasong iyon. Malinaw, hindi dapat ilagay ng RRDtool ang 303 sa database at gumawa
naniniwala ka na tumaas ng 303 ang counter sa loob ng 300 segundo. Ito ay kung saan ang RRDtool
interpolates: binabago nito ang 303 na halaga na parang nai-imbak ito nang mas maaga at gagawin nito
maging 300 sa loob ng 300 segundo. Sa susunod na ikaw ay nasa tamang oras. Nangangahulugan ito na ang
kasalukuyang interval ay 297 segundo at ang counter ay tumaas ng 297. Muli, RRDtool
interpolate at nag-iimbak ng 300 gaya ng nararapat.

sa RRD sa realidad

oras+000: 0 delta="U" oras+000: 0 delta="U"
oras+300: 300 delta=300 oras+300: 300 delta=300
oras+600: 600 delta=300 oras+603: 603 delta=303
oras+900: 900 delta=300 oras+900: 900 delta=297

Gumawa tayo ng dalawang magkaparehong database. Pinili ko ang hanay ng oras 920805000 hanggang 920805900 bilang
ito ay napakahusay sa mga halimbawang numero.

rrdtool create seconds1.rrd \
--simula 920804700 \
DS:seconds:COUNTER:600:U:U \
RRA:AVERAGE:0.5:1:24

Gumawa ng kopya

para sa Unix: cp segundo1.rrd segundo2.rrd
para sa Dos: kopyahin ang mga segundo1.rrd segundo2.rrd
para sa vms: paano ko malalaman :)

Maglagay ng ilang data

rrdtool update seconds1.rrd \
920805000:000 920805300:300 920805600:600 920805900:900
rrdtool update seconds2.rrd \
920805000:000 920805300:300 920805603:603 920805900:900

Lumikha ng output

rrdtool graph seconds1.png \
--simula 920804700 --tapos 920806200 \
--taas 200 \
--upper-limit 1.05 --lower-limit 0.95 --rigid \
DEF:seconds=seconds1.rrd:seconds:AVERAGE \
CDEF:unknown=segundo,UN \
LINE2:segundo#0000FF \
AREA:unknown#FF0000
rrdtool graph seconds2.png \
--simula 920804700 --tapos 920806200 \
--taas 200 \
--upper-limit 1.05 --lower-limit 0.95 --rigid \
DEF:seconds=seconds2.rrd:seconds:AVERAGE \
CDEF:unknown=segundo,UN \
LINE2:segundo#0000FF \
AREA:unknown#FF0000

Tingnan ang parehong mga larawan nang magkasama (idagdag ang mga ito sa iyong index.html file) at ihambing. Parehong mga graph
dapat magpakita ng pareho, sa kabila ng pagkakaiba ng input.

BALUTIN


Oras na para tapusin ang tutorial na ito. Sinakop namin ang lahat ng mga pangunahing kaalaman para magawa mo
gumana sa RRDtool at basahin ang karagdagang dokumentasyong magagamit. Marami pa
upang matuklasan ang tungkol sa RRDtool at makakahanap ka ng higit pang mga gamit para sa paketeng ito. Kaya mo
madaling gumawa ng mga graph gamit lamang ang mga halimbawang ibinigay at gamit lamang ang RRDtool. Kaya mo rin
gamitin ang isa sa mga dulo sa harap sa RRDtool na magagamit.

MAILINGLIST


Tandaang mag-subscribe sa mailing list ng RRDtool. Kahit na hindi ka sumasagot sa mga mail
na dumarating, nakakatulong ito sa iyo at sa iba pang mga user. Ang daming bagay na alam ko
tungkol sa MRTG (at samakatuwid tungkol sa RRDtool) natutunan ko habang binabasa lang ang listahan nang wala
pag-post dito. Hindi ko na kinailangan pang itanong ang mga pangunahing tanong dahil sinasagot ang mga ito sa FAQ
(basahin ito!) at sa iba't ibang mga mail ng ibang mga gumagamit. Sa libu-libong mga gumagamit sa buong
mundo, palaging may mga magtatanong na masasagot mo dahil nagbabasa ka
ito at iba pang dokumentasyon at hindi nila ginawa.

Gumamit ng rrdtutorial online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad