MRTG
Официальный сайт MRTG (Multi Router Traffic Grapher): http://oss.oetiker.ch/mrtg/
- Устанавливаем пакет:
# apt-get install mrtg
Узнать что у нас есть для mrtg в репозитории можно командой:
# apt-cache search mrtg
наверняка там найдётся что-то полезное
- Устанавливаем наблюдение за активностью трафика, проходящего через наши сетевые карты и за загруженностью процессора. Статистику обновляем каждые пять минут. Редактируем /etc/mrtg/mrtg.cfg (либо /etc/mrtg.cfg):
### Global Defaults WorkDir: /var/www/html/reports/mrtg Refresh: 300 Interval: 5 WriteExpires: Yes IconDir: images/ LogDir: /var/log # LogFormat: rrdtool RunAsDaemon: No Language: russian Background[_]: #FFFFC0 ### eth0 info Target[eth0]: `/etc/mrtg/count.sh eth0` Options[eth0]: nopercent,growright,bits Title[eth0]: teo eth0 Traffic PageTop[eth0]: <h1>teo - внутренняя сеть </h1> MaxBytes[eth0]: 99999999 kilo[eth0]: 1024 YLegend[eth0]: bits per second ShortLegend[eth0]: bit/s LegendO[eth0]: out: LegendI[eth0]: in : ### eth1 info Target[eth1]: `/etc/mrtg/count.sh eth1` Options[eth1]: nopercent,growright, bits Title[eth1]: teo eth1 Traffic PageTop[eth1]: <h1>teo - внешняя сеть</h1> MaxBytes[eth1]: 99999999 kilo[eth1]: 1024 YLegend[eth1]: bits per second ShortLegend[eth1]: bit/s LegendO[eth1]: out: LegendI[eth1]: in : ### CPU info Target[machine]: `/usr/lib/mrtg2/helpers/cpuinfo.pl localhost linux` MaxBytes[machine]: 100 Options[machine]: gauge, nopercent Unscaled[machine]: dwym YLegend[machine]: % of CPU used ShortLegend[machine]: % LegendO[machine]: CPU System: Legend1[machine]: CPU User Legend2[machine]: CPU System Legend3[machine]: Max CPU User Legend4[machine]: Max CPU System LegendI[machine]: CPU User: Title[machine]: Statistics for localhost PageTop[machine]: <H1>CPU usage for localhost</H1> <TABLE> <TR><TD>System:</TD><TD>localhost</TD></TR> </TABLE>
- Создаём скрипт для подсчёта трафика /etc/mrtg/count.sh:
#!/bin/bash # (c) 2002 Denis Kolisnichenko # Usage: /usr/bin/count iface /bin/grep "$1" /proc/net/dev | /bin/awk -F ":" '{ print $2 }' | /bin/awk '{ print $1 "\n" $9 }' UPTIME=`/usr/bin/uptime | /bin/awk -F " " '{ print $3 }'` echo $UPTIME echo $1
В Debian 4 можно использовать awk из пакета gawk.
- Делаем его исполняемым и проверяем работоспособность:
# chmod +x count.sh # count.sh eth0 3383503279 12919350 123 eth0
- Проверяем, что есть скрипт /usr/lib/mrtg2/helpers/cpuinfo.pl. В Debian при установке пакета mrtg-contrib он находится в /usr/share/doc/mrtg/examples/cpuinfo/. Если нет, то можно взять здесь. Для работы этого скрипта нужен sar, который в Debian 4 можно установить с пакетом sysstat
- Проверяем, что добавилось задание для crond. Если существует файл /etc/cron.d/mrtg:
0-59/5 * * * * root /usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg
то всё уже сделано, если же такого файла нет, то добавляем в /etc/crontab вышеуказанную строку.
- Строка изменится если нет пользователя mrtg, тогда убираем параметры --user и --group. Проверить наличие пользователя можно командой:
# id mrtg
- Перезапускаем crond :
# /etc/init.d/crond restart
- Если на сервере установлен Oracle, то путь к рабочему каталогу mrtg будет вреде этого:
WorkDir: /oracle/as9i/Apache/Apache/htdocs/mrtg
а адрес в браузере: http://10.0.0.2:7777/mrtg/eth0.html
- Делаем доступ к этому каталогу только для администраторов.
- Проверяем. В браузере откроем URL http://teo.mynetwork.ru/reports/mrtg/eth0.html