Ini adalah perintah rrdtutorial yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
rrdtutorial - tutorial RRDtool Alex van den Bogaerdt
DESKRIPSI
RRDtool ditulis oleh Tobias Oetiker[email dilindungi]> dengan kontribusi dari banyak orang
di seluruh dunia. Dokumen ini ditulis oleh Alex van den Bogaerdt
<[email dilindungi]> untuk membantu Anda memahami apa itu RRDtool dan apa fungsinya
Anda.
Dokumentasi yang disediakan dengan RRDtool mungkin terlalu teknis bagi sebagian orang. Ini
tutorial di sini untuk membantu Anda memahami dasar-dasar RRDtool. Itu harus mempersiapkan Anda untuk
baca sendiri dokumentasinya. Ini juga menjelaskan hal-hal umum tentang statistik
dengan fokus pada jaringan.
TUTORIAL
penting
Tolong jangan lewati dokumen ini! Bagian pertama dari dokumen ini menjelaskan tentang
dasar dan mungkin membosankan. Tetapi jika Anda tidak memahami dasar-dasarnya, contohnya tidak akan
menjadi sama berartinya bagi Anda.
Terkadang keadaan berubah. Contoh ini digunakan untuk memberikan angka seperti "0.04" sebagai ganti
"4.00000e-02". Itu benar-benar angka yang sama, hanya ditulis berbeda. jangan
waspadalah jika versi rrdtool yang akan datang menampilkan bentuk keluaran yang sedikit berbeda.
Contoh dalam dokumen ini benar untuk RRDtool versi 1.2.0.
Juga, terkadang bug memang terjadi. Mereka juga dapat mempengaruhi hasil dari contoh.
Contoh speed4.png mengalami hal ini (penanganan data yang tidak diketahui dalam if-
pernyataan salah). Data normal akan baik-baik saja (bug di rrdtool tidak akan bertahan lama)
tetapi kasus khusus seperti NaN, INF, dan sebagainya dapat bertahan sedikit lebih lama. Coba versi lain jika
Anda bisa, atau jalani saja.
Saya memperbaiki contoh speed4.png (dan menambahkan catatan). Mungkin ada contoh lain yang
menderita bug yang sama atau serupa. Coba perbaiki sendiri, itu bagus
latihan. Tapi tolong jangan kirimkan hasil Anda sebagai perbaikan ke sumber dokumen ini.
Diskusikan di daftar pengguna, atau tulis kepada saya.
Apa is alat RRD?
RRDtool mengacu pada alat Database Round Robin. Round robin adalah teknik yang bekerja dengan
jumlah data yang tetap, dan penunjuk ke elemen saat ini. Pikirkan sebuah lingkaran dengan beberapa
titik diplot di tepi. Titik-titik ini adalah tempat di mana data dapat disimpan. Menggambar dan
panah dari pusat lingkaran ke salah satu titik; ini penunjuknya. Ketika
data saat ini dibaca atau ditulis, penunjuk bergerak ke elemen berikutnya. Saat kita berada di
lingkaran tidak ada awal atau akhir, Anda bisa terus dan terus dan terus. Setelah
sementara, semua tempat yang tersedia akan digunakan dan proses secara otomatis menggunakan kembali yang lama
lokasi. Dengan cara ini, kumpulan data tidak akan bertambah besar dan karenanya tidak memerlukan
pemeliharaan. RRDtool bekerja dengan Round Robin Databases (RRD). Ini menyimpan dan mengambil
data dari mereka.
Apa data bisa be menempatkan ke an RRD?
Sebut saja, itu mungkin akan cocok selama itu semacam data deret waktu. Ini
berarti Anda harus dapat mengukur beberapa nilai pada beberapa titik waktu dan memberikan ini
informasi ke RRDtool. Jika Anda dapat melakukan ini, RRDtool akan dapat menyimpannya. Nilai
harus numerik tetapi tidak harus bilangan bulat, seperti halnya dengan MRTG (berikutnya
bagian akan memberikan rincian lebih lanjut tentang aplikasi yang lebih khusus ini).
Banyak contoh di bawah ini berbicara tentang SNMP yang merupakan singkatan dari Simple Network Management
Protokol. "Sederhana" mengacu pada protokol. Itu tidak berarti mudah untuk mengelola atau
memantau sebuah jaringan. Setelah mempelajari dokumen ini, Anda seharusnya cukup tahu untuk
dapat memahami apa yang dibicarakan orang. Untuk saat ini, baru sadari bahwa SNMP bisa
digunakan untuk meminta perangkat untuk nilai penghitung yang mereka simpan. Ini adalah nilai dari itu
counter yang ingin kita simpan di RRD.
Apa bisa I do dengan ini alat?
RRDtool berasal dari MRTG (Multi Router Traffic Grapher). MRTG dimulai dari yang kecil
skrip untuk membuat grafik penggunaan koneksi universitas ke Internet. MRTG kemudian
(ab-)digunakan sebagai alat untuk membuat grafik sumber data lain termasuk suhu, kecepatan, tegangan,
jumlah cetakan dan sejenisnya.
Kemungkinan besar Anda akan mulai menggunakan RRDtool untuk menyimpan dan memproses data yang dikumpulkan melalui SNMP.
Data kemungkinan besar akan berupa byte (atau bit) yang ditransfer dari dan ke jaringan atau a
komputer. Tetapi juga dapat digunakan untuk menampilkan gelombang pasang, radiasi matahari, daya
konsumsi, jumlah pengunjung di pameran, tingkat kebisingan di dekat bandara,
suhu di lokasi liburan favorit Anda, suhu di lemari es, dan apa pun yang Anda
imajinasi dapat muncul.
Anda hanya membutuhkan sensor untuk mengukur data dan dapat memasukkan angka ke dalam RRDtool.
RRDtool kemudian memungkinkan Anda membuat database, menyimpan data di dalamnya, mengambil data itu dan membuat
grafik dalam format PNG untuk ditampilkan pada browser web. Gambar PNG tersebut bergantung pada
data yang Anda kumpulkan dan dapat berupa, misalnya, gambaran umum tentang penggunaan jaringan rata-rata,
atau puncak yang terjadi.
Apa if I masih memiliki masalah setelah bacaan ini dokumen?
Pertama-tama: baca lagi! Anda mungkin melewatkan sesuatu. Jika Anda tidak dapat mengkompilasi
sumber dan Anda memiliki OS yang cukup umum, itu mungkin bukan kesalahan RRDtool.
Mungkin ada versi yang telah dikompilasi sebelumnya di Internet. Jika mereka berasal dari tepercaya
sumber, dapatkan salah satunya.
Jika di sisi lain program bekerja tetapi tidak memberikan hasil yang diharapkan, itu akan
menjadi masalah dengan mengkonfigurasinya. Tinjau konfigurasi Anda dan bandingkan dengan
contoh-contoh yang mengikuti.
Ada milis dan arsipnya. Baca daftarnya selama beberapa minggu dan cari
Arsip. Dianggap tidak sopan jika hanya mengajukan pertanyaan tanpa menelusuri arsip: Anda
masalah mungkin sudah dipecahkan untuk orang lain! Ini benar untuk sebagian besar, jika tidak
semua, milis dan tidak hanya untuk yang satu ini. Lihat di dokumentasi bahwa
datang dengan RRDtool untuk lokasi dan penggunaan daftar.
Saya sarankan Anda meluangkan waktu untuk berlangganan milis sekarang dengan mengirim email
ke[email dilindungi]> dengan subjek "berlangganan". Jika Anda ingin
tinggalkan daftar ini, cukup tulis email ke alamat yang sama tetapi sekarang dengan subjek
"berhenti berlangganan".
Seterpercayaapakah Olymp Trade? Kesimpulan akan Anda membantu saya?
Dengan memberi Anda beberapa deskripsi terperinci dengan contoh terperinci. Saya berasumsi bahwa berikut
instruksi dalam urutan yang disajikan akan memberi Anda pengetahuan yang cukup tentang RRDtool untuk
percobaan untuk diri sendiri. Jika tidak berhasil pertama kali, jangan menyerah. Baca ulang
hal-hal yang Anda mengerti, Anda mungkin telah melewatkan sesuatu.
Dengan mengikuti contoh, Anda mendapatkan beberapa pengalaman langsung dan, yang lebih penting, beberapa
informasi latar belakang cara kerjanya.
Anda perlu mengetahui sesuatu tentang bilangan heksadesimal. Jika tidak, mulailah dengan
membaca bin_dec_hex sebelum Anda melanjutkan di sini.
Anda pertama bulat robin Basis Data
Menurut pendapat saya, cara terbaik untuk mempelajari sesuatu adalah dengan benar-benar melakukannya. Mengapa tidak memulai dengan benar?
sekarang? Kami akan membuat database, menaruh beberapa nilai di dalamnya dan mengekstrak data ini lagi. Milikmu
output harus sama dengan output yang disertakan dalam dokumen ini.
Kami akan mulai dengan beberapa hal mudah dan membandingkan mobil dengan router, atau membandingkan kilometer
(mil jika Anda mau) dengan bit dan byte. Semuanya sama: beberapa angka selama beberapa waktu.
Asumsikan kita memiliki perangkat yang mentransfer byte ke dan dari Internet. Perangkat ini menyimpan
penghitung yang dimulai dari nol saat dihidupkan, meningkat dengan setiap byte yang
ditransfer. Penghitung ini mungkin akan memiliki nilai maksimum. Jika nilai ini tercapai dan
byte tambahan dihitung, penghitung dimulai dari nol. Ini sama dengan banyak
penghitung di dunia seperti penghitung jarak tempuh di dalam mobil.
Sebagian besar diskusi tentang jaringan berbicara tentang bit per detik, jadi mari kita biasakan itu
segera. Asumsikan satu byte adalah delapan bit dan mulailah berpikir dalam bit, bukan byte. penghitung,
namun, masih menghitung byte! Di dunia SNMP sebagian besar penghitung adalah 32 bit. Itu
berarti mereka menghitung dari 0 hingga 4294967295. Kami akan menggunakan nilai-nilai ini dalam contoh.
Perangkat, ketika ditanya, mengembalikan nilai penghitung saat ini. Kita tahu waktu itu
telah berlalu sejak terakhir kali kami bertanya jadi kami sekarang tahu berapa banyak byte yang telah ditransfer ***on
rata-rata*** per detik. Ini tidak terlalu sulit untuk dihitung. Pertama dalam kata-kata, lalu dalam
perhitungan:
1. Ambil penghitung saat ini, kurangi nilai sebelumnya dari itu.
2. Lakukan hal yang sama dengan waktu sekarang dan waktu sebelumnya (dalam detik).
3. Bagi hasil (1) dengan hasil (2), hasilnya adalah jumlah byte per
kedua. Kalikan dengan delapan untuk mendapatkan jumlah bit per detik (bps).
bps = (counter_now - counter_before) / (time_now - time_before) * 8
Bagi sebagian orang mungkin membantu untuk menerjemahkan ini ke contoh mobil. Jangan mencoba ini
contoh, dan jika Anda melakukannya, jangan salahkan saya atas hasilnya!
Orang yang tidak terbiasa berpikir dalam kilometer per jam dapat menerjemahkan sebagian besar ke dalam mil per
jam dengan membagi km dengan 1.6 (cukup dekat). Saya akan menggunakan singkatan berikut:
m: meteran
km: kilometer (= 1000 meter).
h: jam
s: kedua
km/jam: kilometer per jam
m/s: meter per detik
Anda sedang mengendarai mobil. Pada 12:05 Anda membaca penghitung di dasbor dan itu memberi tahu Anda
bahwa mobil telah bergerak sejauh 12345 km sampai saat itu. Pada 12:10 Anda melihat lagi, itu berbunyi
12357 kilometer. Ini berarti Anda telah menempuh jarak 12 km dalam lima menit. Seorang ilmuwan akan menerjemahkan
itu menjadi meter per detik dan ini membuat perbandingan yang bagus untuk masalah (byte
per lima menit) versus (bit per detik).
Kami melakukan perjalanan 12 kilometer yaitu 12000 meter. Kami melakukannya dalam lima menit atau 300
detik. Kecepatan kami adalah 12000m / 300s atau 40 m/s.
Kita juga bisa menghitung kecepatan dalam km/jam: 12 kali 5 menit adalah satu jam, jadi kita harus
kalikan 12 km dengan 12 untuk mendapatkan 144 km/jam. Untuk teman berbahasa Inggris asli kami: itu 90
mph jadi jangan coba contoh ini di rumah atau di tempat saya tinggal :)
Ingat: angka-angka ini hanya rata-rata. Tidak ada cara untuk mengetahuinya dari
angka, jika Anda mengemudi dengan kecepatan konstan. Ada contoh nanti di tutorial ini
yang menjelaskan ini.
Saya harap Anda mengerti bahwa tidak ada perbedaan dalam menghitung m/s atau bps; hanya jalan
kami mengumpulkan data yang berbeda. Bahkan k dari kilo sama dengan istilah jaringan
k juga berarti 1000.
Sekarang kita akan membuat database di mana kita dapat menyimpan semua nomor yang menarik ini. Metode
digunakan untuk memulai program mungkin sedikit berbeda dari OS ke OS, tetapi saya berasumsi Anda dapat mengetahuinya
itu keluar jika bekerja berbeda pada Anda. Pastikan Anda tidak menimpa file apa pun di
sistem saat menjalankan perintah berikut dan ketik seluruh baris sebagai satu baris panjang (I
harus membaginya agar mudah dibaca) dan melewatkan semua karakter '\'.
rrdtool buat test.rrd \
--mulai 920804400 \
DS:kecepatan:COUNTER:600:U:U \
RRA: RATA-RATA: 0.5:1:24 \
RRA: RATA-RATA: 0.5:6:10
(Jadi masukkan: "rrdtool create test.rrd --start 920804400 DS ...")
Apa memiliki menjadi dibuat?
Kami membuat database round robin yang disebut test (test.rrd) yang dimulai pada siang hari saya
mulai menulis dokumen ini, 7 Maret 1999 (tanggal ini diterjemahkan menjadi 920804400
detik seperti yang dijelaskan di bawah). Basis data kami menyimpan satu sumber data (DS) bernama "kecepatan" yang
mewakili penghitung. Penghitung ini dibaca setiap lima menit (ini adalah default
oleh karena itu Anda tidak perlu memasukkan "--step=300"). Dalam database yang sama dua round robin
arsip (RRA) disimpan, rata-rata data setiap kali dibaca (misalnya, ada
tidak ada yang rata-rata) dan menyimpan 24 sampel (24 kali 5 menit adalah 2 jam). Yang lain
rata-rata 6 nilai (setengah jam) dan berisi 10 rata-rata tersebut (misalnya 5 jam).
RRDtool bekerja dengan stempel waktu khusus yang berasal dari dunia UNIX. Stempel waktu ini adalah
jumlah detik yang berlalu sejak 1 Januari 1970 UTC. Nilai cap waktu adalah
diterjemahkan ke dalam waktu lokal dan karena itu akan terlihat berbeda untuk zona waktu yang berbeda.
Kemungkinannya adalah Anda tidak berada di bagian dunia yang sama dengan saya. Ini berarti waktumu
zona berbeda. Dalam semua contoh di mana saya berbicara tentang waktu, jamnya mungkin salah untuk
Anda. Ini memiliki sedikit pengaruh pada hasil contoh, cukup perbaiki jam sementara
membaca. Sebagai contoh: di mana saya akan melihat "12:05" orang-orang Inggris akan melihat "11:05".
Kita sekarang harus mengisi database kita dengan beberapa angka. Kami akan berpura-pura telah membaca
nomor berikut:
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
Kami mengisi database sebagai berikut:
tes pembaruan rrdtool.rrd 920804700:12345 920805000:12357 920805300:12363
tes pembaruan rrdtool.rrd 920805600:12363 920805900:12363 920806200:12373
tes pembaruan rrdtool.rrd 920806500:12383 920806800:12393 920807100:12399
tes pembaruan rrdtool.rrd 920807400:12405 920807700:12411 920808000:12415
tes pembaruan rrdtool.rrd 920808300:12420 920808600:12422 920808900:12423
Ini berbunyi: perbarui basis data pengujian kami dengan nomor-nomor berikut:
waktu 920804700, nilai 12345
waktu 920805000, nilai 12357
dan sebagainya.
Seperti yang Anda lihat, dimungkinkan untuk memasukkan lebih dari satu nilai ke dalam database dalam satu
memerintah. Saya harus berhenti di tiga untuk keterbacaan tetapi maksimum sebenarnya per baris adalah OS
tergantung.
Kami sekarang dapat mengambil data dari database kami menggunakan "rrdtool fetch":
rrdtool fetch test.rrd RATA-RATA --start 920804400 --end 920809200
Itu harus mengembalikan output berikut:
kecepatan
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
Perhatikan bahwa Anda mungkin mendapatkan lebih banyak baris daripada yang Anda harapkan. Alasan untuk ini adalah karena Anda meminta
rentang waktu yang berakhir pada 920809200. Angka yang tertulis di belakang 920809200: di
daftar di atas mencakup rentang waktu dari 920808900 hingga 920809200, TIDAK TERMASUK 920809200. Oleh karena itu
untuk memastikan, Anda menerima entri dari 920809200 hingga 920809500 juga karena itu
TERMASUK 920809200. Anda mungkin juga melihat "NaN" alih-alih "nan" ini bergantung pada OS. "NaN"
singkatan dari "Bukan Angka". Jika OS Anda menulis "U" atau "UNKN" atau yang serupa itu
baik. Jika ada yang salah, itu mungkin karena kesalahan yang Anda buat (dengan asumsi
bahwa tutorial saya benar tentu saja :-). Dalam hal ini: hapus database dan coba
lagi.
Arti dari output di atas akan menjadi jelas di bawah ini.
Waktu untuk membuat beberapa grafis
Coba perintah berikut:
rrdtool grafik kecepatan.png \
--mulai 920804400 --akhiri 920808000 \
DEF:kecepatan saya=test.rrd:kecepatan:RATA-RATA \
LINE2:kecepatanku#FF0000
Ini akan membuat speed.png yang dimulai pada 12:00 dan berakhir pada 13:00. Ada definisinya
dari variabel yang disebut myspeed, menggunakan data dari RRA "speed" dari database "test.rrd".
Garis yang ditarik adalah 2 piksel tinggi dan mewakili variabel myspeed. Warnanya merah
(ditentukan oleh rgb-representasinya, lihat di bawah).
Anda akan melihat bahwa awal grafik tidak pada 12:00 tetapi pada 12:05. Hal ini karena
kami memiliki data yang tidak cukup untuk memberi tahu rata-rata sebelum waktu itu. Ini hanya akan terjadi ketika
Anda melewatkan beberapa sampel, ini tidak akan banyak terjadi, semoga.
Jika ini berhasil: selamat! Jika tidak, periksa apa yang salah.
Warna dibangun dari merah, hijau dan biru. Untuk setiap komponen, Anda tentukan
berapa banyak yang digunakan dalam heksadesimal di mana 00 berarti tidak disertakan dan FF berarti disertakan sepenuhnya.
"Warna" putih adalah campuran merah, hijau dan biru: FFFFFF "Warna" hitam adalah segalanya
warna mati: 000000
merah #FF0000
hijau #00FF00
biru #0000FF
magenta #FF00FF (campuran merah dengan biru)
abu-abu #555555 (sepertiga dari semua komponen)
Selain itu Anda dapat (dengan RRDtool terbaru) menambahkan saluran alfa (transparansi). NS
defaultnya adalah "FF" yang artinya tidak transparan.
PNG yang baru saja Anda buat dapat ditampilkan menggunakan penampil gambar favorit Anda. browser web
akan menampilkan PNG melalui URL "file:///the/path/to/speed.png"
Grafis dengan beberapa matematika
Saat melihat gambar, Anda melihat bahwa sumbu horizontal diberi label 12:10, 12:20,
12:30, 12:40 dan 12:50. Terkadang label tidak sesuai (kemungkinan pukul 12:00 dan 13:00
kandidat) sehingga mereka dilewati.
Sumbu vertikal menampilkan rentang yang kita masukkan. Kami menyediakan kilometer dan ketika dibagi
dengan 300 detik, kami mendapatkan angka yang sangat kecil. Tepatnya, nilai pertama adalah 12
(12357-12345) dan dibagi 300 ini menghasilkan 0.04, yang ditampilkan oleh RRDtool sebagai "40 m"
artinya "40/1000". "m" (mili) tidak ada hubungannya dengan meter (juga m), kilometer atau
milimeter! RRDtool tidak tahu tentang unit fisik data kami, itu hanya bekerja dengan
bilangan tak berdimensi.
Jika kita mengukur jarak kita dalam meter, ini akan menjadi (12357000-12345000)/300 =
12000 / 300 = 40.
Karena kebanyakan orang lebih memahami angka dalam rentang ini, kami akan memperbaikinya. Kita bisa
membuat ulang database kami dan menyimpan data yang benar, tetapi ada cara yang lebih baik: kami melakukan beberapa
perhitungan saat membuat file png!
rrdtool grafik speed2.png \
--mulai 920804400 --akhiri 920808000 \
--vertikal-label m/s \
DEF:kecepatan saya=test.rrd:kecepatan:RATA-RATA \
CDEF:kecepatan nyata=kecepatan saya,1000,\* \
LINE2:kecepatan nyata#FF0000
Catatan: Saya harus keluar dari operator perkalian * dengan garis miring terbalik. Jika tidak,
sistem operasi dapat menafsirkannya dan menggunakannya untuk perluasan nama file. Anda juga bisa menempatkan
baris dalam tanda kutip seperti:
"CDEF:realspeed=kecepatan saya,1000,*" \
Intinya adalah: RRDtool yang seharusnya melihat *, bukan shell Anda. Dan itu adalah cangkangmu
menafsirkan \, bukan RRDtool. Anda mungkin perlu menyesuaikan contoh yang sesuai jika Anda kebetulan
menggunakan sistem operasi atau shell yang berperilaku berbeda.
Setelah melihat PNG ini, Anda melihat "m" (mili) telah menghilang. Ini apa
hasil yang benar akan. Juga, label telah ditambahkan ke gambar. Selain hal-hal
disebutkan di atas, PNG akan terlihat sama.
Perhitungan ditentukan dalam bagian CDEF di atas dan dalam Notasi Polandia Terbalik
("RPN"). Apa yang kami minta RRDtool lakukan adalah: "ambil sumber data myspeed dan nomornya
1000; kalikan itu". Jangan repot-repot dengan RPN, nanti akan dijelaskan lebih lanjut
rinci. Juga, Anda mungkin ingin membaca tutorial saya tentang CDEF dan tutorial Steve Rader tentang RPN.
Tapi selesaikan dulu tutorial ini.
Tunggu sebentar! Jika kita dapat mengalikan nilai dengan 1000, seharusnya juga dapat ditampilkan
kilometer per jam dari data yang sama!
Untuk mengubah nilai yang diukur dalam meter per detik:
Hitung meter per jam: nilai * 3600
Hitung kilometer per jam: nilai / 1000
Bersama-sama ini menghasilkan: nilai * (3600/1000) atau nilai * 3.6
Dalam contoh database kami, kami membuat kesalahan dan kami perlu mengkompensasinya dengan
mengalikan dengan 1000. Menerapkan koreksi itu:
nilai * 3.6 * 1000 == nilai * 3600
Sekarang mari kita buat PNG ini, dan tambahkan lebih banyak keajaiban ...
rrdtool grafik speed3.png \
--mulai 920804400 --akhiri 920808000 \
--vertical-label km/j \
DEF:kecepatan saya=test.rrd:kecepatan:RATA-RATA \
"CDEF:kmh=kecepatan saya,3600*" \
CDEF:cepat=kmh,100,GT,kmh,0,JIKA \
CDEF:baik=kmh,100,GT,0,kmh,JIKA \
HRULE:100#0000FF:"Maksimum yang diizinkan" \
AREA:bagus#00FF00:"Kecepatan bagus" \
AREA:cepat#FF0000:"Terlalu cepat"
Catatan: di sini kita menggunakan cara lain untuk keluar dari operator * dengan memasukkan seluruh string ke dalam
kutipan ganda.
Grafik ini terlihat jauh lebih baik. Kecepatan ditunjukkan dalam km/jam dan bahkan ada garis tambahan dengan
kecepatan maksimum yang diizinkan (di jalan yang saya lalui). Saya juga mengubah warna yang digunakan untuk
kecepatan tampilan dan mengubahnya dari garis menjadi area.
Perhitungannya sekarang lebih rumit. Untuk pengukuran kecepatan dalam batas kecepatan mereka
adalah:
Periksa apakah kmh lebih besar dari 100 ( kmh,100 ) GT
Jika ya, kembalikan 0, jika tidak kmh ((( kmh,100 ) GT ), 0, kmh) JIKA
Untuk nilai di atas batas kecepatan:
Periksa apakah kmh lebih besar dari 100 ( kmh,100 ) GT
Jika ya, kembalikan kmh, jika tidak, kembalikan 0 ((( kmh,100) GT ), kmh, 0) JIKA
Grafis Sihir
Saya suka percaya bahwa hampir tidak ada batasan bagaimana grafik RRDtool dapat memanipulasi data.
Saya tidak akan menjelaskan cara kerjanya, tapi lihatlah PNG berikut ini:
rrdtool grafik speed4.png \
--mulai 920804400 --akhiri 920808000 \
--vertical-label km/j \
DEF:kecepatan saya=test.rrd:kecepatan:RATA-RATA \
CDEF:nonans=kecepatan saya,UN,0,kecepatan saya,JIKA \
CDEF:kmh=nonans,3600* \
CDEF:cepat=kmh,100,GT,100,0,JIKA \
CDEF: lebih=kmh,100,GT,kmh,100,-,0,JIKA \
CDEF:baik=kmh,100,GT,0,kmh,JIKA \
HRULE:100#0000FF:"Maksimum yang diizinkan" \
AREA:bagus#00FF00:"Kecepatan bagus" \
AREA:cepat#550000:"Terlalu cepat" \
STACK:lebih#FF0000:"Kecepatan lebih"
Ingat catatan di awal? Saya harus menghapus data yang tidak dikenal dari contoh ini. NS
CDEF 'nonans' baru, dan baris ke-6 (yang dulunya adalah baris ke-5) digunakan untuk membaca
'CDEF:kmh=kecepatanku,3600,*'
Mari buat halaman HTML cepat dan kotor untuk melihat tiga PNG:
Kecepatan
Beri nama file "speed.html" atau yang serupa, dan lihat di browser web Anda.
Sekarang, yang harus Anda lakukan adalah mengukur nilai secara teratur dan memperbarui database. ketika kamu
ingin melihat data, membuat ulang PNG dan pastikan untuk menyegarkannya di browser Anda.
(Catatan: hanya dengan mengklik reload mungkin tidak cukup, terutama ketika proxy terlibat. Coba
shift-reload atau ctrl-F5).
Pembaruan in Kenyataan
Kami telah menggunakan perintah "perbarui": dibutuhkan satu atau lebih parameter dalam bentuk
" : ". Anda akan senang mengetahui bahwa Anda dapat menentukan waktu saat ini dengan mengisi
dalam "N" sebagai waktu. Atau Anda dapat menggunakan fungsi "waktu" di Perl (contoh terpendek
dalam tutorial ini):
perl -e 'waktu cetak, "\n" '
Cara menjalankan program secara berkala adalah khusus untuk OS. Tapi di sini adalah contoh dalam pseudo
kode:
- Dapatkan nilainya dan masukkan ke dalam variabel "$speed"
- kecepatan pembaruan rrdtool.rrd N:$kecepatan
(jangan coba ini dengan database pengujian kami, kami akan menggunakannya dalam contoh lebih lanjut)
Ini semua. Jalankan skrip di atas setiap lima menit. Ketika Anda perlu tahu apa itu
grafik terlihat seperti, jalankan contoh di atas. Anda juga bisa memasukkannya ke dalam skrip. Setelah
menjalankan skrip itu, lihat halaman index.html yang kami buat di atas.
Beberapa kata on SNMP
Saya bisa membayangkan sangat sedikit orang yang bisa mendapatkan data nyata dari mobil mereka setiap lima
menit. Semua orang lain harus puas dengan penghitung jenis lain. Anda bisa
mengukur jumlah halaman yang dicetak oleh printer, misalnya, cangkir kopi yang dibuat oleh
mesin kopi, perangkat yang menghitung listrik yang digunakan, apa pun. Setiap kenaikan
penghitung dapat dipantau dan digambarkan menggunakan hal-hal yang Anda pelajari sejauh ini. Nanti kita
juga dapat memantau jenis nilai lainnya seperti suhu.
Banyak orang yang tertarik dengan RRDtool akan menggunakan penghitung yang melacak oktet (byte)
ditransfer oleh perangkat jaringan. Jadi mari kita lakukan itu selanjutnya. Kita akan mulai dengan
penjelasan tentang cara mengumpulkan data.
Beberapa orang akan berkomentar bahwa ada alat yang dapat melakukan pengumpulan data ini untuk
Anda. Mereka benar! Namun, saya merasa penting bagi Anda untuk memahami bahwa mereka tidak
diperlukan. Ketika Anda harus menentukan mengapa ada yang salah, Anda perlu tahu bagaimana mereka
kerja.
Salah satu alat yang digunakan dalam contoh telah dibicarakan secara singkat di awal ini
dokumen, itu disebut SNMP. Ini adalah cara berbicara dengan peralatan jaringan. Alat yang saya gunakan
di bawah ini disebut "snmpget" dan ini cara kerjanya:
snmpget kata sandi perangkat OID
or
snmpget -v[versi] -c[kata sandi] perangkat OID
Untuk perangkat Anda mengganti nama, atau alamat IP, perangkat Anda. Untuk kata sandi Anda
gunakan "string baca komunitas" seperti yang disebut di dunia SNMP. Untuk beberapa perangkat:
default "publik" mungkin berfungsi, namun ini dapat dinonaktifkan, diubah, atau dilindungi untuk
alasan privasi dan keamanan. Baca dokumentasi yang disertakan dengan perangkat Anda atau
program.
Lalu ada parameter ini, yang disebut OID, yang berarti "pengidentifikasi objek".
Ketika Anda mulai belajar tentang SNMP, kelihatannya sangat membingungkan. Tidak terlalu sulit
ketika Anda melihat Basis Informasi Manajemen ("MIB"). Ini adalah pohon terbalik yang
menggambarkan data, dengan satu node sebagai root dan dari sana sejumlah cabang. Ini
cabang berakhir di simpul lain, mereka bercabang, dll. Semua cabang memiliki nama dan
mereka membentuk jalan yang kita ikuti sampai ke bawah. Cabang yang kami ikuti adalah
bernama: iso, org, dod, internet, mgmt dan mib-2. Nama-nama ini juga dapat ditulis sebagai
angka dan 1 3 6 1 2 1.
iso.org.dod.internet.mgmt.mib-2 (1.3.6.1.2.1)
Ada banyak kebingungan tentang titik awal yang digunakan beberapa program. Tidak ada*
titik terdepan dalam OID. Namun, beberapa program dapat menggunakan bagian OID di atas sebagai:
bawaan. Untuk menunjukkan perbedaan antara OID yang disingkat dan OID penuh, mereka membutuhkan:
titik awal saat Anda menentukan OID lengkap. Seringkali program-program tersebut akan mengabaikan
bagian default saat mengembalikan data kepada Anda. Untuk memperburuk keadaan, mereka memiliki beberapa
awalan default ...
Oke, mari kita lanjutkan ke awal OID kami: kami memiliki 1.3.6.1.2.1 Dari sana, kami
sangat tertarik pada "antarmuka" cabang yang memiliki nomor 2 (mis., 1.3.6.1.2.1.2
atau 1.3.6.1.2.1.interfaces).
Pertama, kita harus mendapatkan beberapa program SNMP. Lihat dulu apakah ada paket yang sudah dikompilasi sebelumnya
tersedia untuk OS Anda. Ini adalah cara yang disukai. Jika tidak, Anda harus mendapatkan
sumber sendiri dan kompilasi mereka. Internet penuh dengan sumber, program, dll. Temukan
informasi menggunakan mesin pencari atau apa pun yang Anda inginkan.
Asumsikan Anda mendapatkan programnya. Pertama coba kumpulkan beberapa data yang tersedia di sebagian besar
sistem. Ingat: ada nama pendek untuk bagian pohon yang paling menarik bagi kita
di dunia tempat kita hidup!
Saya akan memberikan contoh yang dapat digunakan pada Fedora Core 3. Jika tidak berhasil untuk Anda,
kerjakan dengan cara Anda melalui manual snmp dan sesuaikan contoh untuk membuatnya berfungsi.
snmpget -v2c -c publik myrouter system.sysDescr.0
Perangkat harus menjawab dengan deskripsi dirinya sendiri, mungkin yang kosong. Sampai kamu punya
jawaban yang valid dari perangkat, mungkin menggunakan "kata sandi" yang berbeda, atau perangkat yang berbeda,
tidak ada gunanya melanjutkan.
snmpget -v2c -c publik myrouter interfaces.ifNumber.0
Semoga Anda mendapatkan nomor sebagai hasilnya, jumlah antarmuka. Jika demikian, Anda dapat melanjutkan
dan coba program lain yang disebut "snmpwalk".
snmpwalk -v2c -c publik myrouter interfaces.ifTable.ifEntry.ifDescr
Jika kembali dengan daftar antarmuka, Anda hampir sampai. Berikut ini contohnya:
[pengguna@host /home/alex]$ snmpwalk -v2c -c publik 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"
Pada peralatan cisco ini, saya ingin memantau antarmuka "Ethernet0" dan dari
output di atas saya melihat bahwa itu adalah nomor empat. Saya coba:
[pengguna@host /home/alex]$ snmpget -v2c -c publik cisco 2.2.1.10.4 2.2.1.16.4
interfaces.ifTable.ifEntry.ifInOctets.4 = 2290729126
interfaces.ifTable.ifEntry.ifOutOctets.4 = 1256486519
Jadi sekarang saya memiliki dua OID untuk dipantau dan mereka (secara penuh, kali ini):
1.3.6.1.2.1.2.2.1.10
dan
1.3.6.1.2.1.2.2.1.16
keduanya dengan nomor antarmuka 4.
Jangan tertipu, ini bukan percobaan pertama saya. Butuh beberapa waktu bagi saya juga untuk mengerti
apa arti semua angka ini. Itu sangat membantu ketika mereka diterjemahkan ke dalam deskriptif
teks ... Setidaknya, ketika orang berbicara tentang MIB dan OID, Anda tahu apa itu semua
tentang. Jangan lupa nomor antarmuka (0 jika tidak tergantung antarmuka) dan coba
snmpwalk jika Anda tidak mendapatkan jawaban dari snmpget.
Jika Anda memahami bagian di atas dan mendapatkan nomor dari perangkat Anda, lanjutkan dengan
tutorial ini. Jika tidak, kembali dan baca kembali bagian ini.
A Nyata Dunia Example
Biarkan kesenangan dimulai. Pertama, buat database baru. Ini berisi data dari dua counter,
disebut masukan dan keluaran. Data dimasukkan ke dalam arsip yang rata-rata. Mereka mengambil 1, 6, 24
atau 288 sampel sekaligus. Mereka juga masuk ke arsip yang menyimpan jumlah maksimum. Ini
akan dijelaskan nanti. Waktu di antara sampel adalah 300 detik, awal yang baik
titik, yang sama dengan lima menit.
1 sampel "rata-rata" menginap 1 periode 5 menit
6 sampel rata-rata menjadi satu rata-rata dalam 30 menit
24 sampel rata-rata menjadi satu rata-rata dalam 2 jam
288 sampel rata-rata menjadi satu rata-rata dalam 1 hari
Mari kita coba kompatibel dengan MRTG yang menyimpan tentang jumlah data berikut:
600 sampel 5 menit: 2 hari dan 2 jam
600 sampel 30 menit: 12.5 hari
600 sampel 2 jam: 50 hari
732 sampel 1 hari: 732 hari
Rentang ini ditambahkan, sehingga jumlah total data yang disimpan dalam database adalah
sekitar 797 hari. RRDtool menyimpan data secara berbeda, itu tidak memulai "mingguan"
arsip tempat arsip "harian" berhenti. Untuk kedua arsip, data terbaru adalah
dekat "sekarang" dan oleh karena itu kita perlu menyimpan lebih banyak data daripada MRTG!
Kita akan butuh:
600 sampel 5 menit (2 hari 2 jam)
700 sampel 30 menit (2 hari dan 2 jam, ditambah 12.5 hari)
775 sampel 2 jam (di atas + 50 hari)
797 sampel 1 hari (di atas + 732 hari, dibulatkan menjadi 797)
rrdtool buat myrouter.rrd \
DS:masukan:COUNTER:600:U:U \
DS:keluaran:COUNTER:600:U:U \
RRA: RATA-RATA: 0.5:1:600 \
RRA: RATA-RATA: 0.5:6:700 \
RRA: RATA-RATA: 0.5:24:775 \
RRA: RATA-RATA: 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
Hal selanjutnya yang harus dilakukan adalah mengumpulkan data dan menyimpannya. Berikut adalah contoh. Ada tertulis
sebagian dalam kode semu, Anda harus mencari tahu apa yang harus dilakukan pada OS Anda untuk membuatnya
itu bekerja.
meski bukan akhir dari alam semesta
do
mendapatkan hasil dari
komunitas router snmpget 2.2.1.10.4
ke dalam variabel $in
mendapatkan hasil dari
komunitas router snmpget 2.2.1.16.4
ke dalam variabel $keluar
rrdtool perbarui myrouter.rrd N:$in:$out
tunggu 5 menit
dilakukan
Kemudian, setelah mengumpulkan data selama sehari, coba buat gambar menggunakan:
rrdtool grafik myrouter-day.png --start -86400 \
DEF:inoctets=myrouter.rrd:input:AVERAGE \
DEF:outoctets=myrouter.rrd:output:RATA-RATA \
AREA:inoctets#00FF00:"Dalam lalu lintas" \
LINE1:outoctets#0000FF:"Lalu lintas keluar"
Ini akan menghasilkan gambar dengan lalu lintas satu hari. Satu hari adalah 24 jam 60
menit 60 detik: 24*60*60=86400, kita mulai sekarang dikurangi 86400 detik. Kami mendefinisikan
(dengan DEF) inoctet dan outoctet sebagai nilai rata-rata dari database myrouter.rrd
dan gambar area untuk lalu lintas "masuk" dan garis untuk lalu lintas "keluar".
Lihat gambar dan simpan data logging selama beberapa hari lagi. Jika Anda suka, Anda bisa mencoba
contoh dari database pengujian dan lihat apakah Anda bisa mendapatkan berbagai opsi dan perhitungan untuk
kerja.
Saran: Tampilkan dalam byte per detik dan dalam bit per detik. Buat grafik Ethernet
menjadi merah jika lebih dari empat megabit per detik.
Konsolidasi Fungsi
Beberapa paragraf ke belakang saya menyebutkan kemungkinan menjaga nilai maksimum alih-alih
nilai rata-rata. Mari kita bahas ini sedikit lagi.
Ingat semua hal tentang kecepatan mobil. Misalkan kita berkendara dengan kecepatan 144 km/jam selama 5
menit dan kemudian dihentikan oleh polisi selama 25 menit. Di akhir kuliah kami
akan mengambil laptop kami dan membuat dan melihat gambar yang diambil dari database. Jika kita melihat
RRA kedua yang kami buat, kami akan memiliki rata-rata dari 6 sampel. sampel
diukur akan menjadi 144+0+0+0+0+0=144, dibagi 30 menit, dikoreksi untuk kesalahan dengan
1000, diterjemahkan ke dalam km/jam, dengan hasil 24 km/jam. Saya masih akan mendapatkan tiket tetapi tidak
untuk ngebut lagi :)
Jelas, dalam hal ini kita tidak harus melihat rata-rata. Dalam beberapa kasus mereka berguna.
Jika Anda ingin tahu berapa km yang telah Anda tempuh, gambar rata-rata adalah yang tepat
satu untuk dilihat. Di sisi lain, untuk kecepatan yang kami tempuh, angka maksimum
dilihat jauh lebih menarik. Nanti kita akan melihat lebih banyak jenis.
Hal yang sama untuk data. Jika Anda ingin mengetahui jumlahnya, lihat rata-ratanya. jika kamu mau
untuk mengetahui tarifnya, lihatlah secara maksimal. Seiring waktu, mereka akan semakin terpisah. Di dalam
database terakhir yang kami buat, ada dua arsip yang menyimpan data per hari. NS
arsip yang menyimpan rata-rata akan menunjukkan angka rendah, arsip yang menunjukkan maxima akan memiliki
angka yang lebih tinggi.
Untuk mobil saya, ini berarti rata-rata per hari 96/24=4 km/jam (saat saya melakukan perjalanan sekitar 94
kilometer per hari) selama hari kerja, dan maksimum 120 km/jam (kecepatan tertinggi saya yang saya
mencapai setiap hari).
Perbedaan besar. Jangan melihat grafik kedua untuk memperkirakan jarak yang saya tempuh
dan jangan melihat grafik pertama untuk memperkirakan kecepatan saya. Ini akan berhasil jika sampelnya
berdekatan, seperti dalam lima menit, tetapi tidak jika Anda rata-rata.
Pada beberapa hari, saya pergi untuk perjalanan panjang. Jika saya pergi melintasi Eropa dan melakukan perjalanan selama 12 jam,
grafik pertama akan naik menjadi sekitar 60 km/jam. Yang kedua akan menunjukkan 180 km/jam. Ini berarti bahwa
Saya menempuh jarak 60 km/jam dikali 24 jam = 1440 km. Saya melakukan ini dengan kecepatan yang lebih tinggi dan
maksimum sekitar 180 km/jam. Namun, itu mungkin tidak berarti bahwa saya bepergian selama 8 jam
dengan kecepatan tetap 180 km/jam!
Ini adalah contoh nyata: ikuti arus melalui Jerman (cepat!) dan berhenti beberapa kali untuk
bensin dan kopi. Berkendara perlahan melalui Austria dan Belanda. Hati-hati dalam
gunung dan desa. Jika Anda melihat grafik yang dibuat dari lima menit
rata-rata Anda akan mendapatkan gambaran yang sama sekali berbeda. Anda akan melihat nilai yang sama pada
grafik rata-rata dan maksimum (asalkan saya mengukur setiap 300 detik). Anda akan dapat
lihat ketika saya berhenti, ketika saya berada di gigi atas, ketika saya berkendara di jalan raya yang cepat, dll
perincian data jauh lebih tinggi, sehingga Anda dapat melihat lebih banyak. Namun, ini membutuhkan waktu 12
sampel per jam, atau 288 nilai per hari, jadi itu akan menjadi banyak data dalam periode yang lebih lama
waktu. Oleh karena itu kami rata-rata, akhirnya menjadi satu nilai per hari. Dari nilai yang satu ini, kita
tidak bisa melihat banyak detail, tentu saja.
Pastikan Anda memahami beberapa paragraf terakhir. Tidak ada nilai hanya dalam garis dan a
beberapa sumbu, Anda perlu tahu apa artinya dan menafsirkan data dengan cara yang tepat.
Ini berlaku untuk semua data.
Kesalahan terbesar yang dapat Anda lakukan adalah menggunakan data yang dikumpulkan untuk sesuatu yang bukan
cocok untuk. Anda akan lebih baik jika Anda tidak memiliki grafik sama sekali.
Mari ulasan apa Anda sekarang harus tahu
Anda tahu cara membuat database dan dapat memasukkan data ke dalamnya. Anda bisa mendapatkan nomornya
lagi dengan membuat gambar, lakukan matematika pada data dari database dan lihat hasilnya
sebagai pengganti data mentah. Anda tahu tentang perbedaan antara rata-rata dan maksimum, dan
kapan harus menggunakan which (atau setidaknya Anda harus punya ide).
RRDtool dapat melakukan lebih dari apa yang telah kita pelajari sampai sekarang. Sebelum Anda melanjutkan dengan yang lain
dari doc ini, saya sarankan Anda membaca ulang dari awal dan mencoba beberapa modifikasi pada
contoh. Pastikan Anda benar-benar memahami semuanya. Ini akan sepadan dengan usaha dan bantuannya
Anda tidak hanya dengan sisa tutorial ini, tetapi juga dalam pemantauan Anda sehari-hari yang panjang
setelah Anda membaca pengantar ini.
Data sumber jenis
Baiklah, Anda ingin melanjutkan. Selamat datang kembali dan bersiaplah untuk peningkatan kecepatan dalam
contoh dan penjelasannya.
Anda tahu bahwa untuk melihat penghitung dari waktu ke waktu, Anda harus mengambil dua angka dan
membagi perbedaan mereka antara waktu yang berlalu. Ini masuk akal untuk contohnya
Saya memberi Anda tetapi ada kemungkinan lain. Misalnya, saya dapat mengambil
suhu dari router saya di tiga tempat yaitu inlet, yang disebut hot-spot dan
knalpot. Nilai-nilai ini bukan penghitung. Jika saya mengambil perbedaan dari dua sampel
dan membaginya dengan 300 detik saya akan meminta perubahan suhu per detik.
Semoga ini nol! Jika tidak, ruang komputer mungkin terbakar :)
Jadi apa yang bisa kita lakukan? Kami dapat memberi tahu RRDtool untuk menyimpan nilai yang kami ukur secara langsung sebagaimana adanya
are (ini tidak sepenuhnya benar tetapi cukup dekat). Grafik yang kita buat akan terlihat banyak
lebih baik, mereka akan menunjukkan nilai yang agak konstan. Saya tahu ketika router sedang sibuk (berfungsi
-> menggunakan lebih banyak listrik -> menghasilkan lebih banyak panas -> suhu naik). aku tahu
ketika pintu dibiarkan terbuka (ruangan ber-AC) -> udara hangat dari yang lain
bangunan mengalir ke ruang komputer -> suhu saluran masuk naik). dll
tipe data yang kami gunakan saat membuat database sebelumnya adalah penghitung, kami sekarang memiliki yang berbeda
tipe data dan dengan demikian nama yang berbeda untuk itu. Ini disebut GAUGE. Ada lebih banyak data seperti itu
jenis:
- COUNTER kita sudah tahu yang ini
- GAUGE kita baru belajar yang ini
- TURUN
- MUTLAK
Dua jenis tambahan adalah TURUN dan MUTLAK. Absolute dapat digunakan seperti counter dengan
satu perbedaan: RRDtool mengasumsikan penghitung diatur ulang saat dibaca. Yaitu: delta-nya adalah
diketahui tanpa perhitungan oleh RRDtool sedangkan RRDtool perlu menghitungnya untuk penghitung
Tipe. Contoh: contoh pertama kita (12345, 12357, 12363, 12363) akan berbunyi: tidak diketahui, 12, 6,
0. Perhitungan lainnya tetap sama. Yang lainnya, turunan, seperti penghitung.
Tidak seperti counter, ia juga dapat mengecil sehingga dapat memiliki delta negatif. Sekali lagi, sisanya
perhitungannya tetap sama.
Mari kita coba semuanya:
rrdtool buat all.rrd --start 978300900 \
DS:a:COUNTER:600:U:U \
DS:b:GAUGE:600:U:U \
DS:c:TURUNAN:600:U:U \
DS:d:ABSOLUTE:600:U:U \
RRA: RATA-RATA: 0.5:1:10
rrdtool perbarui semua.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
grafik rrdtool all1.png -s 978300600 -e 978304200 -h 400 \
DEF:linea=all.rrd:a:RATA-RATA LINE3:linea#FF0000:"Baris A" \
DEF:lineb=all.rrd:b:RATA-RATA LINE3:lineb#00FF00:"Baris B" \
DEF:linec=all.rrd:c:RATA-RATA LINE3:linec#0000FF:"Baris C" \
DEF:lined=all.rrd:d:RATA-RATA LINE3:lined#000000:"Baris D"
alat RRD bawah itu Mikroskop
· Baris A adalah tipe COUNTER, jadi harus terus bertambah dan RRDtool harus menghitung
perbedaan. Juga, RRDtool perlu membagi perbedaan dengan jumlah waktu
bekas. Ini akan berakhir sebagai garis lurus pada 1 (delta adalah 300, waktunya adalah
300).
· Jalur B bertipe GAUGE. Ini adalah nilai "nyata" sehingga harus sesuai dengan apa yang kita masukkan: a
semacam gelombang.
· Baris C bertipe DERIVE. Itu harus menjadi penghitung yang bisa berkurang. Ia melakukannya antara
2400 dan 0, dengan 1800 di antaranya.
· Baris D bertipe MUTLAK. Ini seperti penghitung tetapi bekerja pada nilai tanpa
menghitung selisihnya. Angkanya sama dan seperti yang Anda lihat (semoga) ini
memiliki hasil yang berbeda.
Ini diterjemahkan dalam nilai-nilai berikut, mulai dari 23:10 dan berakhir pada 00:10 berikutnya
hari (di mana "u" berarti tidak diketahui/tidak diplot):
- Jalur A: uu 1 1 1 1 1 1 1 1 1 u
- Jalur B: u 1 3 5 3 1 2 4 6 4 2 u
- Jalur C: uu 2 2 2 0 -2 -6 2 0 2 u
- Jalur D: u 1 2 3 4 5 6 7 8 9 10 u
Jika PNG Anda menunjukkan semua ini, Anda tahu Anda telah memasukkan data dengan benar, RRDtool
executable berfungsi dengan baik, pemirsa Anda tidak menipu Anda, dan Anda berhasil masuk
tahun 2000 :)
Anda dapat mencoba contoh yang sama empat kali, setiap kali hanya dengan satu baris.
Mari kita bahas lagi datanya:
· Jalur A: 300,600,900 dan seterusnya. Counter delta adalah konstanta 300 dan begitu juga waktunya
delta. Suatu bilangan yang dibagi dengan dirinya sendiri selalu 1 (kecuali bila dibagi dengan nol yaitu
tidak ditentukan/ilegal).
Mengapa poin pertama tidak diketahui? Kami tahu apa yang kami masukkan ke dalam database,
Baik? Benar, Tapi kami tidak memiliki nilai untuk menghitung delta, jadi kami tidak tahu
di mana kita mulai. Akan salah untuk menganggap kita mulai dari nol jadi kita tidak melakukannya!
· Jalur B: Tidak ada yang perlu dihitung. Angka-angkanya seperti apa adanya.
· Baris C: Sekali lagi, nilai awal tidak diketahui. Cerita yang sama berlaku untuk baris A. In
hal ini delta tidak konstan, oleh karena itu garis juga tidak. Jika kita akan menempatkan
nomor yang sama dalam database seperti yang kami lakukan untuk baris A, kami akan mendapatkan yang sama
garis. Tidak seperti penghitung tipe, tipe ini dapat berkurang dan saya berharap untuk menunjukkan alasannya nanti
ini membuat perbedaan.
· Jalur D: Di sini perangkat menghitung delta. Oleh karena itu kita tahu delta pertama dan
itu diplot. Kami memiliki input yang sama dengan jalur A, tetapi arti dari input ini adalah
berbeda dan dengan demikian garisnya berbeda. Dalam hal ini delta meningkat setiap kali
dengan 300. Delta waktu tetap pada 300 konstan dan karena itu pembagian keduanya
memberikan nilai yang meningkat.
Melawan Wraps
Ada beberapa dasar lagi untuk ditampilkan. Beberapa opsi penting masih harus dibahas dan kami
belum melihat counter wraps. Pertama bungkus konter: Di mobil kami, kami perhatikan bahwa
penghitung menunjukkan 999987. Kami menempuh jarak 20 km dan penghitung harus menuju 1000007. Sayangnya,
hanya ada enam digit di penghitung kami jadi itu benar-benar menunjukkan 000007. Jika kami merencanakannya
pada tipe TURUN, itu berarti penghitung mundur 999980 km. Bukan, dan
harus ada perlindungan untuk ini. Perlindungan ini hanya tersedia untuk tipe
COUNTER yang seharusnya digunakan untuk penghitung semacam ini. Bagaimana cara kerjanya? Jenis
penghitung tidak boleh berkurang dan oleh karena itu RRDtool harus menganggapnya dibungkus jika itu terjadi
mengurangi! Jika delta negatif, ini dapat dikompensasikan dengan menambahkan maksimum
nilai penghitung + 1. Untuk mobil kami ini akan menjadi:
Delta = 7 - 999987 = -999980 (bukannya 1000007-999987=20)
Delta nyata = -999980 + 999999 + 1 = 20
Pada saat penulisan dokumen ini, RRDtool mengetahui penghitung yang berukuran 32 bit atau
berukuran 64 bit. Penghitung ini dapat menangani nilai yang berbeda berikut:
- 32 bit: 0 .. 4294967295
- 64 bit: 0 .. 18446744073709551615
Jika angka-angka ini terlihat aneh bagi Anda, Anda dapat melihatnya dalam bentuk heksadesimalnya:
- 32 bit: 0 .. FFFFFFFF
- 64 bit: 0 .. FFFFFFFFFFFFFFFF
RRDtool menangani kedua penghitung dengan cara yang sama. Jika terjadi luapan dan delta akan menjadi
negatif, RRDtool pertama-tama menambahkan maksimum penghitung kecil + 1 ke delta. Jika delta
masih negatif, harus counter besar yang dibungkus. Tambahkan semaksimal mungkin
nilai penghitung besar + 1 dan kurangi nilai kecil yang ditambahkan secara keliru.
Ada risiko dalam hal ini: misalkan penghitung besar dibungkus sambil menambahkan delta besar, itu
bisa terjadi, secara teoritis, bahwa menambahkan nilai yang lebih kecil akan membuat delta positif.
Dalam kasus yang tidak mungkin ini, hasilnya tidak akan benar. Peningkatannya harus hampir sama dengan
setinggi nilai penghitung maksimum untuk itu terjadi, jadi kemungkinan besar Anda akan melakukannya
beberapa masalah lain juga dan masalah khusus ini bahkan tidak akan berharga
memikirkan tentang. Padahal, saya menyertakan contoh, jadi Anda bisa menilai sendiri.
Bagian selanjutnya memberi Anda beberapa contoh numerik untuk counter-wraps. Coba lakukan
hitung sendiri atau percaya saja jika kalkulator Anda tidak dapat menangani angka :)
Nomor koreksi:
- 32 bit: (4294967295 + 1) = 4294967296
- 64 bit: (18446744073709551615 + 1)
- koreksi1 = 18446744069414584320
Sebelum: 4294967200
Tingkatkan: 100
Seharusnya menjadi: 4294967300
Tapi sebenarnya: 4
Delta: -4294967196
Koreksi1: -4294967196 + 4294967296 = 100
Sebelum: 18446744073709551000
Tingkatkan: 800
Seharusnya menjadi: 18446744073709551800
Tapi sebenarnya: 184
Delta: -18446744073709550816
Koreksi1: -18446744073709550816
+ 4294967296 = -18446744069414583520
Koreksi2: -18446744069414583520
+ 18446744069414584320 = 800
Sebelum: 18446744073709551615 ( nilai maksimum )
Kenaikan: 18446744069414584320 (peningkatan yang tidak masuk akal, minimum untuk
Seharusnya menjadi: 36893488143124135935 contoh ini berfungsi)
Tapi sebenarnya: 18446744069414584319
Delta: -4294967296
Koreksi1: -4294967296 + 4294967296 = 0
(tidak negatif -> tidak ada koreksi2)
Sebelum: 18446744073709551615 ( nilai maksimum )
Kenaikan : 18446744069414584319 ( kurang satu kenaikan )
Seharusnya menjadi: 36893488143124135934
Tapi sebenarnya: 18446744069414584318
Delta: -4294967297
Koreksi1: -4294967297 + 4294967296 = -1
Koreksi2: -1 + 18446744069414584320 = 18446744069414584319
Seperti yang Anda lihat dari dua contoh terakhir, Anda memerlukan angka aneh agar RRDtool gagal
(asalkan bebas bug tentunya), jadi ini tidak boleh terjadi. Namun, SNMP atau apa pun
metode yang Anda pilih untuk mengumpulkan data, mungkin juga terkadang melaporkan nomor yang salah. Kita
tidak dapat mencegah semua kesalahan, tetapi ada beberapa hal yang dapat kita lakukan. Alat RRD "buat"
perintah mengambil dua parameter khusus untuk ini. Mereka menentukan minimum dan maksimum yang diizinkan
nilai-nilai. Sampai sekarang, kami menggunakan "U", yang berarti "tidak diketahui". Jika Anda memberikan nilai untuk satu atau keduanya
dari mereka dan jika RRDtool menerima titik data yang berada di luar batas ini, itu akan mengabaikan
nilai-nilai itu. Untuk termometer dalam derajat Celcius, minimum absolut hanya di bawah
-273. Untuk router saya, saya dapat menganggap minimum ini jauh lebih tinggi sehingga saya akan mengaturnya ke 10,
dimana sebagai suhu maksimum saya akan mengatur ke 80. Lebih tinggi dan perangkat akan keluar
pesanan.
Untuk kecepatan mobil saya, saya tidak akan pernah mengharapkan angka negatif dan juga saya tidak akan mengharapkannya
kecepatan lebih tinggi dari 230. Ada lagi, dan pasti ada kesalahan. Ingat:
kebalikannya tidak benar, jika angka-angka tersebut lolos dari pemeriksaan ini, itu tidak berarti bahwa mereka adalah
benar. Selalu nilai grafik dengan dosis kecurigaan yang sehat jika tampak aneh bagi Anda.
Data Pengambilan sampel ulang
Salah satu fitur penting dari RRDtool belum dijelaskan: hampir tidak mungkin untuk
mengumpulkan data dan memasukkannya ke dalam RRDtool pada interval yang tepat. RRDtool karena itu interpolasi
data, sehingga mereka disimpan pada interval yang tepat. Jika Anda tidak tahu apa artinya atau bagaimana
itu berhasil, maka inilah bantuan yang Anda cari:
Misalkan penghitung meningkat tepat satu untuk setiap detik. Anda ingin mengukurnya dalam 300
interval detik. Anda harus mengambil nilai yang persis 300 terpisah. Namun, karena
berbagai keadaan Anda terlambat beberapa detik dan intervalnya adalah 303. Delta akan
juga menjadi 303 dalam kasus itu. Jelas, RRDtool tidak boleh memasukkan 303 ke dalam database dan membuat
Anda percaya bahwa penghitung meningkat 303 dalam 300 detik. Di sinilah RRDtool
interpolasi: itu mengubah nilai 303 seolah-olah itu akan disimpan sebelumnya dan itu akan
menjadi 300 dalam 300 detik. Lain kali Anda berada di waktu yang tepat. Ini berarti bahwa
interval saat ini adalah 297 detik dan juga penghitung meningkat sebesar 297. Sekali lagi, RRDtool
interpolasi dan menyimpan 300 sebagaimana mestinya.
di RRD pada kenyataannya
waktu+000: 0 delta="U" waktu+000: 0 delta="U"
waktu+300: 300 delta=300 waktu+300: 300 delta=300
waktu+600: 600 delta=300 waktu+603: 603 delta=303
waktu+900: 900 delta=300 waktu+900: 900 delta=297
Mari kita buat dua database yang identik. Saya telah memilih rentang waktu 920805000 hingga 920805900 sebagai
ini berjalan sangat baik dengan nomor contoh.
rrdtool buat detik1.rrd \
--mulai 920804700 \
DS:detik:COUNTER:600:U:U \
RRA: RATA-RATA: 0.5:1:24
Buat salinan
untuk Unix: cp detik1.rrd detik2.rrd
untuk Dos: salin detik1.rrd detik2.rrd
untuk vms: bagaimana saya tahu :)
Masukkan beberapa data
rrdtool memperbarui detik1.rrd \
920805000:000 920805300:300 920805600:600 920805900:900
rrdtool memperbarui detik2.rrd \
920805000:000 920805300:300 920805603:603 920805900:900
Buat keluaran
rrdtool grafik detik1.png \
--mulai 920804700 --akhiri 920806200 \
--tinggi 200 \
--batas atas 1.05 --batas bawah 0.95 --kaku \
DEF:detik=detik1.rrd:detik:RATA-RATA \
CDEF:tidak diketahui=detik,UN \
LINE2:detik#0000FF \
AREA:tidak diketahui#FF0000
rrdtool grafik detik2.png \
--mulai 920804700 --akhiri 920806200 \
--tinggi 200 \
--batas atas 1.05 --batas bawah 0.95 --kaku \
DEF:detik=detik2.rrd:detik:RATA-RATA \
CDEF:tidak diketahui=detik,UN \
LINE2:detik#0000FF \
AREA:tidak diketahui#FF0000
Lihat kedua gambar bersama-sama (tambahkan ke file index.html Anda) dan bandingkan. Kedua grafik
harus menunjukkan hal yang sama, meskipun inputnya berbeda.
BUNGKUS
Sekarang saatnya untuk menyelesaikan tutorial ini. Kami membahas semua dasar-dasarnya agar Anda dapat
bekerja dengan RRDtool dan membaca dokumentasi tambahan yang tersedia. Masih banyak lagi
untuk mengetahui tentang RRDtool dan Anda akan menemukan lebih banyak kegunaan untuk paket ini. Kamu bisa
mudah membuat grafik hanya dengan menggunakan contoh yang disediakan dan hanya menggunakan RRDtool. Anda juga bisa
gunakan salah satu ujung depan untuk RRDtool yang tersedia.
DAFTAR EMAIL
Ingatlah untuk berlangganan milis RRDtool. Bahkan jika Anda tidak menjawab surat
yang datang, ini membantu Anda dan pengguna lainnya. Banyak hal yang saya tahu
tentang MRTG (dan karena itu tentang RRDtool) saya telah belajar sambil membaca daftar tanpa
posting untuk itu. Saya tidak perlu menanyakan pertanyaan dasar karena sudah dijawab di FAQ
(baca!) dan di berbagai email oleh pengguna lain. Dengan ribuan pengguna di seluruh
dunia, akan selalu ada orang yang mengajukan pertanyaan yang bisa kamu jawab karena kamu membaca
ini dan dokumentasi lainnya dan mereka tidak melakukannya.
Gunakan rrdtutorial online menggunakan layanan onworks.net