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>
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:
Alternatívne môžeme výsledok dosiahnuť aktivovaním služby finger na routeri, čo dosiahneme nasledovným príkazom:
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.