Ponúkané riešenie sa nám naskýta v spolupráci s príkazom ping. S použitím jednoduchých parsovacích skriptov si v nasledujúcich dvoch príkladoch vytvoríme dva prehľady. Prvý sa bude venovať priemernej dobe odozvy, druhý minimálnej a maximálnej hodnote jednotlivých časov odozvy.
1. Priemerná doba odozvy.
Základom bude použitie príkazu ping pre tri ICMP_ECHO packety, takže výsledok môže vyzerať nasledovne. Je možné stanoviť si veľkosť paketov a ostatné parametre ako počet paketov, TTL a iné, pre jednoduchosť pri príklade však vystačíme s paketom o veľkosti 64 bytov.
#ping 111.111.111.111 -c 3 PING domena.sk (111.111.111.111) from 111.111.111.112 : 56(84) bytes of data. 64 bytes from domena.sk (111.111.111.111): icmp_seq=0 ttl=255 time=1.465 sec 64 bytes from domena.sk (111.111.111.111): icmp_seq=1 ttl=255 time=1.989 sec 64 bytes from domena.sk (111.111.111.111): icmp_seq=1 ttl=255 time=1.736 sec --- domena.sk ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/mdev = 1465.547/1727.713/1989.879/262.166 ms
Súhrnnú informáciu priemernej doby odozvy nájdeme na poslednom riadku ako druhú hodnotu. Z toho budeme vychádzať a urobíme si jednoduchý skript, ktorý vyparsuje žiadanú hodnotu a poskytne ju MRTG. Skript môže vyzerať nasledovne. Pomenujeme si ho _ping.
#!/bin/bash
ping 111.111.111.111 -c3 |
grep round-trip|awk'{$t=split($4,i,"/");print i[2]}'
Na STDOUT teda po spustení dostaneme priemernú dobu ozozvy.
Pre MRTG si pripravíme konfiguračný súbor:
WorkDir: /home/httpd/mrtg.domena.sk-443/html/ping/
Options[_]: growright, gauge
Colours[_]:LIGHT_BLU#7aafff,BLU#1000ff,DARK BLU#000066,VIOLET#ff00ff,
GREEN#00ff00
Ylegend[_]: ms response
Target[ping]: `/mrtg/bin/_ping`
SetEnv[ping]: MRTG_INT_IP="111.111.111.111" MRTG_INT_DESCR="Ethernet0"
MaxBytes[ping]:5000
Title[ping]: Doba odozvy
PageTop[ping]: <H1>Doba odozvy</H1>
<TABLE>
<TR><TD>System:</TD> <TD>Test odozva </TD></TR>
</TABLE>
Výsledok môže vyzerať nasledovne:

2. Minimálne a maximálne hodnoty odozvy.
Podľa predchádzajúceho príkladu si z výsledku pingu vyparsujeme hodnoty maximálne a minimálne. To dosiahneme skriptom _pingrange, ktorý môže vyzerať nasledovne:
#!/bin/bash
ping 62.168.111.197 -c3 |
grep round-trip|awk '{$t=split($4,i,"/");print i[1] "\ n" i[3]}'
Pre mrtg si pripravíme príslušný konfiguračný súbor. Ako v predchádzajúcom prípade, je nutné pužiť voľbu gauge, ktorá udáva, že hodnota je aktuálny stav a nie kumulovaná hodnota v časovom rade.
WorkDir: /home/httpd/mrtg.domena.sk-443/html/pingrange/
Options[_]: growright, gauge
Colours[_]:LIGHT_BLU#7aafff,BLU#1000ff,DARK BLU#000066,VIOLET#ff00ff,
GREEN#00ff00
Ylegend[_]: ms response
Target[ping]: `/mrtg/bin/_pingrange`
SetEnv[ping]: MRTG_INT_IP="111.111.111.111" MRTG_INT_DESCR="Ethernet0"
MaxBytes[ping]:5000
Title[ping]: Doba odozvy
PageTop[ping]: <H1>Doba odozvy</H1>
<TABLE>
<TR><TD>System:</TD> <TD>Test odozva - rozsahy</TD></TR>
</TABLE>
A dosiahneme nasledovný výsledok:

Treba si však uvedomiť, že je viac ako etické používať takýto spôsob monitoringu iba vo svojej lokálnej sieti. Pri monitoringu prepoja do internetu, napríklad pingovaním routera svojho ISP je vhodné vopred sa dohodnúť. Iste by sa ani vám nepáčilo, ak by sa zrazu 100 ľudí rozhodlo v päťminútových intervaloch pingovať vaše servery. Nabudúce si ukážeme ďalšie praktické príklady použitia MRTG.