PDA

View Full Version : Monitoraggio della rete con rrdtool


Yramrag
22-09-2018, 11:08
Qualcuno usa rrdtool per monitorare il traffico / le statistiche del modem?

Ho impostato un paio di rrd e mi sembra funzionare, ma dato che non avevo mai visto/provato rrdtool prima di una settimana fa non vorei aver tralasciato qualcosa per ingenuità :fagiano:

Ho creato i rrd così:

Traffico in ingresso/uscita:
rrdtool create zTraffic.rrd \
--step 300 \
DS:Rx:COUNTER:600:U:U \
DS:Tx:COUNTER:600:U:U \
RRA:AVERAGE:0.5:5m:4M \
RRA:AVERAGE:0.5:1h:4y

Statistiche:
rrdtool create zStats.rrd \
--step 300 \
DS:Actual_Up:GAUGE:600:0:21000 \
DS:Actual_Down:GAUGE:600:0:110000 \
DS:SNR_Margin_Up:GAUGE:600:0:100 \
DS:SNR_Margin_Down:GAUGE:600:0:100 \
DS:Attainable_Up:GAUGE:600:0:21000 \
DS:Attainable_Down:GAUGE:600:0:110000 \
RRA:AVERAGE:0.5:5m:4M \
RRA:AVERAGE:0.5:1h:4y


Dati recuperati via SNMP ogni 5 minuti.

I grafici sono questi:
https://i.postimg.cc/jLjLc5Vw/rrdgraph_1.png (https://postimg.cc/jLjLc5Vw)

Suggerimenti? :mano:

Bovirus
17-10-2018, 13:26
- RRDtool

RRDtool - Home page (https://oss.oetiker.ch/rrdtool/)

RRDtool - Download (https://oss.oetiker.ch/rrdtool/download.en.html)

RRDtool - Download Library (https://oss.oetiker.ch/rrdtool/pub/?M=D)

...

john-doe
30-12-2018, 14:21
Qualcuno usa rrdtool per monitorare il traffico / le statistiche del modem?

Ho impostato un paio di rrd e mi sembra funzionare, ma dato che non avevo mai visto/provato rrdtool prima di una settimana fa non vorei aver tralasciato qualcosa per ingenuità :fagiano:

[CUT]



Ciao,
sto cercando di replicare il tuo ottimo lavoro con uno script Python che recupera i dati via SNMP da uno Zyxel VMG8823 e poi aggiorna degli RRD con rrdtool.
Non mi tornano però i tuoi grafici del traffico, in particolare le unità di misura delle ordinate. Ad esempio il valore massimo del TRAFFIC IN è 1200 k kB/s, quindi 1200*1000 kB/s = 1,2 GB/s. Mi sembra un po' troppo per la tua VDSL chilometrica!
Ho anche una domanda: per tracciare il grafico del traffico, volendo avere in ordinata B/s, è corretto dividere il valore salvato per lo step?
Nel tuo caso una cosa del genere

:
DEF:tx=zTraffic.rrd:Tx:AVERAGE \
CDEF:txs=tx,300,/ \
AREA:txs#00CF00FF:"Bytes sent" \
:

Yramrag
30-12-2018, 18:08
Col tempo ho raffinato lo script, è possibile che il grafico iniziale non fosse del tutto corretto (temo ci fosse un "k" di troppo).

Ad esempio, adesso genero il grafico del traffico in ingresso in questo modo:

rrdtool graph Traffic_IN.png \
--start "00:00 20181229" \
--end "00:00 20181230" \
--width 576 \
--title "Traffic IN" \
--vertical-label "kB/s" \
--left-axis-format "%.0lf" \
--right-axis-format "%.2lf" \
--right-axis 0.000008:0 \
--right-axis-label "Mb/s" \
--units-exponent 3 \
DEF:_rx="$RRD1":Rx:AVERAGE \
DEF:_iflc="$RRD1":ifLastChange_C:AVERAGE \
CDEF:rx=_iflc,0,GT,UNKN,_rx,IF \
AREA:rx#0000FFAA:"Bytes Received\l" \
VDEF:rx_total=rx,TOTAL \
GPRINT:rx_total:"Total\:%.2lf %sB"

Ho preso volutamente il giorno di ieri per evidenziare un picco, e il grafico risultante è questo:

https://i.postimg.cc/Vvx3b3nz/Traffic-IN-20181229.png (https://postimages.org/)

Alcune note:

Il picco tra le 13:00 e le 14:00 di sabato è dovuto all'aggiornamento di windows 10 (versione 1809) su un vecchio protatile, che mi ha comunque saturato la banda: al momento il modem agganciava 12Mb/s scarsi, e anche il task manager riportava lo stesso dato nell'utilizzo della rete.
Il totale trasmesso/ricevuto mi torna: avevo fatto delle prove dall'uffico inviandomi dei file via ftp (l'upload del mio ufficio è migliore del download di casa... ci siamo capiti :asd:); se poi traccio i grafici limitatamente a quel periodo, i totali sono verosimili.
Quello che cerchi di fare probabilmente si può gestire con l'opzione "--right-axis"; vedi anche il mio esempio con le due diverse unità sull'asse verticale (a destra e a sinistra).
La variabile "_iflc" è usata per gestire i casi in cui cade la portante (non è il caso di questo esempio), per ignorare eventuali dati non corretti.

john-doe
30-12-2018, 18:59
Grazie mille, sei un pozzo di idee!

Quello che cerchi di fare probabilmente si può gestire con l'opzione "--right-axis"; vedi anche il mio esempio con le due diverse unità sull'asse verticale (a destra e a sinistra).
In realtà intendevo altro, non mi serviva cambiare unità di misura, ma la mia domanda era davvero "criptica".
Ero convinto che salvando nel RRD dei valori in byte, nel grafico venissero tracciati così. Invece, confermato dal tuo script e da verifiche manuali che ho fatto, rrdtool graph, non so bene per quale implicito meccanismo (*), li graficizza direttamente in byte/s. Quindi provvede lui a "spalmare" i byte sull'intera durata dello step, non serve richiedere la divisione "a mano".

(*) forse è l'AVERAGE del DEF o forse perché le misure sono COUNTER

john-doe
19-01-2019, 10:34
Ero convinto che salvando nel RRD dei valori in byte, nel grafico venissero tracciati così. Invece, confermato dal tuo script e da verifiche manuali che ho fatto, rrdtool graph, non so bene per quale implicito meccanismo (*), li graficizza direttamente in byte/s. Quindi provvede lui a "spalmare" i byte sull'intera durata dello step, non serve richiedere la divisione "a mano".

(*) forse è l'AVERAGE del DEF o forse perché le misure sono COUNTER

Mi rispondo da solo: rrdtool provvede a salvare le grandezze COUNTER direttamente in quantità/secondo.

Maggiori informazioni qui: https://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html, ed in particolare nel seguente paragrafo.

It's always a Rate
RRDtool stores rates in amount/second for COUNTER, DERIVE, DCOUNTER, DDERIVE and ABSOLUTE data. When you plot the data, you will get on the y axis amount/second which you might be tempted to convert to an absolute amount by multiplying by the delta-time between the points. RRDtool plots continuous data, and as such is not appropriate for plotting absolute amounts as for example "total bytes" sent and received in a router. What you probably want is plot rates that you can scale to bytes/hour, for example, or plot absolute amounts with another tool that draws bar-plots, where the delta-time is clear on the plot for each point (such that when you read the graph you see for example GB on the y axis, days on the x axis and one bar for each day).