Graf ztráty paketů: Porovnání verzí

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání
m (Stránka Graf ztráty paketů přemístěna na stránku Graf ztráty paketů)
 
(Nejsou zobrazeny 3 mezilehlé verze od 2 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:
#!/bin/sh
+
<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 "$RRD" -s 60 \
+
   $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
Řádek 37: Řádek 38:
 
== 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:
#!/bin/sh
+
<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.