Graf ztráty paketů: Porovnání verzí
m (Stránka Graf ztráty paketů přemístěna na stránku Graf ztráty paketů) |
|||
(Nejsou zobrazeny 4 mezilehlé verze od 3 dalších uživatelů.) | |||
Řádek 3: | Řádek 3: | ||
== Sběr dat == | == Sběr dat == | ||
Pro vytvoření grafu potřebujeme získat data o aktuální ztrátě. To lze například pomocí tohoto skriptu: | Pro vytvoření grafu potřebujeme získat data o aktuální ztrátě. To lze například pomocí tohoto skriptu: | ||
− | + | <bash> #!/bin/sh | |
rrdtool=/usr/bin/rrdtool | rrdtool=/usr/bin/rrdtool | ||
rrd=/var/www/stats/ploss.rrd | rrd=/var/www/stats/ploss.rrd | ||
Řádek 10: | Řádek 10: | ||
# Vytvorit rrd soubor, pokud neexistuje | # Vytvorit rrd soubor, pokud neexistuje | ||
if [ ! -e "$rrd" ]; then | if [ ! -e "$rrd" ]; then | ||
− | rrdtool create "$ | + | $rrdtool create "$rrd" -s 60 \ |
DS:packetloss:GAUGE:120:0:100 \ | DS:packetloss:GAUGE:120:0:100 \ | ||
RRA:AVERAGE:0.5:1:600 \ | RRA:AVERAGE:0.5:1:600 \ | ||
Řádek 29: | Řádek 29: | ||
exit 0 | exit 0 | ||
+ | </bash> | ||
Skript předpokládá, že příkaz ping (v mém systému z balíku iputils) zná příslušné parametry (pošle 100 paketů v intervalu 0.2s a použije "tichý" mód) a jeho výstup má patřičný formát (obsahuje právě jeden řádek se znakem procenta a přímo před tímto znakem je uvedena procentuální ztráta paketů). Takto může daný výstup z programu ping vypadat | Skript předpokládá, že příkaz ping (v mém systému z balíku iputils) zná příslušné parametry (pošle 100 paketů v intervalu 0.2s a použije "tichý" mód) a jeho výstup má patřičný formát (obsahuje právě jeden řádek se znakem procenta a přímo před tímto znakem je uvedena procentuální ztráta paketů). Takto může daný výstup z programu ping vypadat | ||
100 packets transmitted, 100 received, 0% packet loss, time 20199ms | 100 packets transmitted, 100 received, 0% packet loss, time 20199ms | ||
− | Tento skript by měl být vykonán každou minutu - například z cronu. Parametr -s, čili doba mezi dvěmi měřeními, je nastaven na 60 sekund při vytváření rrd souboru a v | + | Tento skript by měl být vykonán každou minutu - například z cronu. Parametr -s, čili doba mezi dvěmi měřeními, je nastaven na 60 sekund při vytváření rrd souboru a v prvním řádku je u definice vstupních dat řečeno, že po 120 sekundách má být hodnota považována za neznámou. |
== Vytvoření grafu == | == Vytvoření grafu == | ||
Pro vytvoření grafu lze použít následující skript: | Pro vytvoření grafu lze použít následující skript: | ||
− | + | <bash> #!/bin/sh | |
width=600 | width=600 | ||
height=300 | height=300 | ||
Řádek 65: | Řádek 66: | ||
exit 0 | exit 0 | ||
− | + | </bash> | |
Pravidelným voláním tohoto skriptu zajistíme aktualizaci grafu. Narozdíl od sběru dat není nutné použít předem daný interval. Na slabších strojích je lepší zvolit delší prodlevu (případně nižší prioritu). Jednoduchou úpravou můžeme vytvořit skript pro týdenní a měsíční grafy. | Pravidelným voláním tohoto skriptu zajistíme aktualizaci grafu. Narozdíl od sběru dat není nutné použít předem daný interval. Na slabších strojích je lepší zvolit delší prodlevu (případně nižší prioritu). Jednoduchou úpravou můžeme vytvořit skript pro týdenní a měsíční grafy. | ||
Jak vypadají vytvořené grafy si můžete prohlédnoutnout na [http://meliap.hkfree.org/stats/ronja.html http://meliap.hkfree.org/stats/ronja.html]. | Jak vypadají vytvořené grafy si můžete prohlédnoutnout na [http://meliap.hkfree.org/stats/ronja.html http://meliap.hkfree.org/stats/ronja.html]. |
Aktuální verze z 17. 1. 2009, 17:56
Pomocí rrdtool a skriptu využívajícího příkaz ping lze jednoduše vytvořit graf ztráty paketů.
Sběr dat
Pro vytvoření grafu potřebujeme získat data o aktuální ztrátě. To lze například pomocí tohoto skriptu: <bash> #!/bin/sh
rrdtool=/usr/bin/rrdtool rrd=/var/www/stats/ploss.rrd ip=10.107.4.129 # Vytvorit rrd soubor, pokud neexistuje if [ ! -e "$rrd" ]; then $rrdtool create "$rrd" -s 60 \ DS:packetloss:GAUGE:120:0:100 \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:15:672 \ RRA:AVERAGE:0.5:60:744 \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:15:672 \ RRA:MAX:0.5:60:744 fi # Zmerit PL start=`date +%s` ping_output=`ping -i 0.2 -c 100 -q $ip | grep %` cut_after_proc=${ping_output%\%*} ploss=${cut_after_proc##* } #echo "$rrdtool update $rrd \"$start:$ploss\"" $rrdtool update $rrd "$start:$ploss" exit 0
</bash>
Skript předpokládá, že příkaz ping (v mém systému z balíku iputils) zná příslušné parametry (pošle 100 paketů v intervalu 0.2s a použije "tichý" mód) a jeho výstup má patřičný formát (obsahuje právě jeden řádek se znakem procenta a přímo před tímto znakem je uvedena procentuální ztráta paketů). Takto může daný výstup z programu ping vypadat
100 packets transmitted, 100 received, 0% packet loss, time 20199ms
Tento skript by měl být vykonán každou minutu - například z cronu. Parametr -s, čili doba mezi dvěmi měřeními, je nastaven na 60 sekund při vytváření rrd souboru a v prvním řádku je u definice vstupních dat řečeno, že po 120 sekundách má být hodnota považována za neznámou.
Vytvoření grafu
Pro vytvoření grafu lze použít následující skript: <bash> #!/bin/sh
width=600 height=300 rrdtool=/usr/bin/rrdtool stats_dir=/var/www/stats ploss_stats="$stats_dir/ploss.rrd" ploss_graph0="$stats_dir/ploss.png" $rrdtool graph $ploss_graph0.tmp \ --title 'Ztrata paketu na ronje - Poslednich 10 hodin' \ --start 'end-10h' \ --end 'now-1min' \ --upper-limit 100 \ --lower-limit 0 \ --unit '%' \ --vertical-label '%' \ --imgformat 'PNG' \ --width=$width \ --height=$height \ "DEF:pl=$ploss_stats:packetloss:AVERAGE" \ "CDEF:mpl=pl,UN,0,pl,IF" \ "AREA:mpl#ffcccc" \ "LINE1:mpl#ff0000:ztrata paketu" \ "GPRINT:mpl:AVERAGE:prumerna ztrata=%.1lf%%" \ "GPRINT:mpl:MAX:maximalni ztrata=%.1lf%%\\n" && \ mv $ploss_graph0.tmp $ploss_graph0 exit 0
</bash> Pravidelným voláním tohoto skriptu zajistíme aktualizaci grafu. Narozdíl od sběru dat není nutné použít předem daný interval. Na slabších strojích je lepší zvolit delší prodlevu (případně nižší prioritu). Jednoduchou úpravou můžeme vytvořit skript pro týdenní a měsíční grafy.
Jak vypadají vytvořené grafy si můžete prohlédnoutnout na http://meliap.hkfree.org/stats/ronja.html.