Hlavní navigace

MRTG - grafické prehľady (8)

18. 12. 2001
Doba čtení: 3 minuty

Sdílet

V minulých častiach sme si ukázali praktické príklady použitia mrtg pre monitoring šírky využitého pásma, dobu odozvy, vyťaženie sql servera, prehľad trafficu na jednotlivých rozhraniach, dnes si ukážeme využitie pre spracovanie prehľadu packetových výpadkov pri ICMP_ECHO a vyťaženie modemového poolu.

Najprv nadviažeme na predchádzajúcu časť, a ukážeme si, ako využiť ping pre zostavenie prehľadu packetových výpadkov na nespoľahlivých prepojoch ako napríklad mikrovlnných. Hor sa do toho…

#ping 111.111.111.111 -c 3 -s 1508

  PING domena.sk (111.111.111.111) from 111.111.111.112 : 56(84) bytes of data.
  1508 bytes from domena.sk (111.111.111.111): icmp_seq=0 ttl=255 time=1.465 sec
  1508 bytes from domena.sk (111.111.111.111): icmp_seq=1 ttl=255 time=1.989 sec

  --- domena.sk ping statistics ---
  3 packets transmitted, 2 packets received, 33% packet loss
  round-trip min/avg/max/mdev = 1465.547/1727.713/1989.879/262.166 ms

Ako vidíme, súhrnný výstup príkazu ping zahŕňa aj percentuálne vyjadrenie straty paketov, čo sa nám bude hodiť pre tvorbu prehľadov v MRTG. Pre presnejšie hodnoty však zvolíme pakety menšej veľkosti, samozrejme podľa zámeru a počet paketov zvýšime na 10. Pripravíme si teda skriptík, ktorý daný host opinguje a z výstupu nám na STDOUT vyparsuje výsledné percento straty paketov. Nazveme si ho napríklad _pingloss,

#!/bin/bash
  ping 111.111.111.111 -c 10 -s 1800| grep "packet loss"|awk '{printf("%d",$7)}'

Skript si otestujeme a vidíme, že pracuje podľa našich predstáv. Teraz je už na nás iba pripraviť si konfiguračný súbor pre MRTG, a výsledok sa dostaví podľa našich očakávaní.

WorkDir: /home/httpd/mrtg.domena.sk-443/html/pingloss/
  Options[_]: growright,  gauge
  Colours[_]:LIGHT_BLU#7aafff,BLU#1000ff,DARK BLU#000066,VIOLET#ff00ff,
    GREEN#00ff00
  Ylegend[_]: % packet loss
  Target[ping]: `/mrtg/bin/_pingloss`
  SetEnv[ping]: MRTG_INT_IP="111.111.111.111" MRTG_INT_DESCR="Ethernet0"
  MaxBytes[ping]:100
  AbsMax[ping]:100
  Title[ping]: Strata paketov %
  PageTop[ping]: <H1>Strata paketov %</H1>
<TABLE>
<TR><TD>System:</TD> <TD>Strata paketov % test </TD></TR>
</TABLE>

Graf

Pre dlhodobé používanie nie je vhodné stanoviť paket príliš veľký, aby sme si zbytočne nezaťažovali lokálnu sieť, takisto je možné počet paketov znížiť na polovicu. Čím viac paketov však použijeme, tým presnejšie budú výstupné hodnoty v grafe.

V druhom príklade si ukážeme ako monitorovať modemový pool pripojený k routeru cisco, respektíve sledovať počet prihlásených užívateľov do ľubovoľného systému.

Prvotná možnosť je použitie rsh, ako sme si ukázali v šiestej časti seriálu, čiže:

ip rcmd rsh-enable
  ip rcmd remote-host root 111.111.111.222 root enable

a využitie príkazu who. Po úspešnom príkaze už iba zostáva spočítať, koľko užívateľov je prihlásených na termináloch typu tty a výsledok je na svete. Toto nám zabezpečí nasledovný skriptík.

#!/bin/bash
  rsh 111.111.111.111 who | grep tty | wc -l | awk '{printf $1 "\n0"}'

Teraz je už iba potrebné pripraviť si konfiguračný súbor pre mrtg, aby sme dosiahli prehľadný graf, ktorý nám dá prehľad o skutočnom vyťažení nášho modemového poolu.

WorkDir: /home/httpd/mrtg.domena.sk-443/html/modemz/
  Options[_]: growright, gauge
  Colours[_]:LIGHT_BLU#7aafff,BLU#1000ff,DARKBLU#000066,VIOLET#ff00ff,
    GREEN#00ff00
  Ylegend[_]:modems used
  Target[modemz]: `/mrtg/bin/_modemz`
  SetEnv[modemz]: MRTG_INT_IP="111.111.111.111" MRTG_INT_DESCR="Ethernet0"
  MaxBytes[modemz]: 16
  Title[modemz]: Vytazenie modem poolu
  PageTop[modemz]: <H1>MODEM POOL</H1>
<TABLE>
<TR><TD>System:</TD> <TD>Pocet vyuzitych modemov </TD></TR>
</TABLE>

Výsledok môže vyzerať napríklad takto:

Graf

Alternatívne môžeme výsledok dosiahnuť aktivovaním služby finger na routeri, čo dosiahneme nasledovným príkazom:

Cloud23

service finger

čím však sprístupníme údaje o prihlásených užívateľoch iným osobám, čo pre nás nemusí byť najvhodnejšie. Potom skript pozmeníme na

#!/bin/bash
  finger  @111.111.111.111 | grep tty | wc -l | awk '{printf $1 "\n0"}'

a výsledok je úplne rovnaký. V tejto forme ho možno použiť aj na sledovanie počtu prihlásených užívateľov na ľubovoľný linuxový stroj so spustenou službou finger v časovom rade. Existuje však nemalé množstvo ďalších príkladov ako mrtg využiť, či už samotné alebo v spolupráci s rdtool.