от v_o_y_a_g_e_r(27-05-2005)

рейтинг (5)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Някога чудили ли сте се в кой момент какъв трафик правите към интернет/локална мрежа?

MRTG (Multi Router Traffic Grapher) дава възможност да се чертаят прилични графики на мрежови интерфейси (и не само – може да си го направите да отчита температурата примерно), като самите графики  излизат в няколко png файла (дневна, седмична, месична, годишна). Автоматично се генерира и един
html файл, и ако се настрои графиките да се записват тези файлове в нещо от сорта /var/www/htdocs/mrtg/ примерно, може много лесно да се види какъв трафик се прави на машината. За целта ни трябват:
1)Инсталиран и работещ apache сървър (не е задължително, но е силно препоръчително. По-нататък ще предполагам че го има, и е настроен, и http://localhost/ директорията е /var/www/htdocs)
2)MRTG – може да се дръпне от http://people.ee.ethz.ch/~oetiker/webto... - инсталирано в /usr/local/mrtg-2
3)!?! няма трето ;)

Така... време е да създадем mrtg.conf – файла съдържащ информация за  устройствата ни, къде ще се записват работните фаилове и всичко свързано с този процес. Ето един примерен mrtg.conf

################## cut here ################
EnableIPv6: no
WorkDir: /home/www/htdocs/mrtg
Options[_]: bits,growright
Refresh: 300
RunAsDaemon: Yes


Title[ppp0]: PPP0 interface activity
Target[ppp0]: `/usr/local/mrtg-2/bin/ifstat.sh ppp0`
MaxBytes[ppp0]: 1250000
################## cut here ################

Съвсем кратко обяснение кое какво е: WorkDir – там излизат графиките и web page-a дето ги обединява.
Options[_]: bits, growright – това указва скоростите ни да са в bps ;) а не в байтове. [_] -  означава default настроики – валидни са за всички интерфейси.
Refresh: 300 – указва през какъв период от време да се правят отчетите (в секунди).
[ppp0] – Име на интерфейса. Не е задължително да е реалното име на интерфейса... (то играе роля за име_на_фаила.* - фаиловете, асоциирани с този интерфеис).
Target[ppp0]: - откъде да се взимат данни за отчетите. Именно този ред прави нещата работещи ;)
MaxBytes – какъв е bandwidth-a на интерфейса

Maniax-а и той има своя принос за тази статия, със следния шел скрипт (точно бях започнал да осъзнавам, че ще ми трябва нещо такова, видях едно скриптче с iptables, ама проблема му беше, че искаше root да върви... А мене това не ми вършеше работа). Благодаря maniax ;).
################## cut here ################
#!/bin/bash
#/usr/local/mrtg-2/bin/ifstat.sh
/sbin/ip -s link show dev $1|grep -A 1 RX|tail -n1 |awk '{print $1}'
/sbin/ip -s link show dev $1|grep -A 1 TX|tail -n1 |awk '{print $1}'
echo $1
echo $1
################## cut here ################
. После всички отчети, получени в резултат изпълнението на този скрипт се записват в .log файла на интерфеиса, и после по него се генерират самите графики. Ако искате да  генерирате графики с по-голяма точност, ще трябва да вържете mrtg-то с rrdtools, но това не е цел на настоящата статия. Самото стартиране на mrtg-то е хубаво да става от шел-скрипт при стартиране на системата (аз поне съм направил така – които иска да си го пуска наръка...)
/usr/local/mrtg-2/bin/mrtg --daemon /etc/mrtg/cfg/mrtg.cfg


<< Малко висш пилотаж - изграждане на статистика с Cacti и RRDt | Как да настроим неподдържаните мултимедийни клавиши. >>