четверг, 30 апреля 2009 г.

Получение статистики с сетевой краты: MRTG + Cban

Требования к установке

Для работы MRTG требуются следующие библиотеки:
* gd - graph drawing library. Библиотека, ответственная за формирование графики (http://www.boutell.com/gd/);
* libpng - требуется gd для создания графики в формате png (http://www.libpng.org/pub/png/src/);
* zlib - данная библиотека используется для компрессии созданной графики (ftp://sunsite.cnlab-switch.ch/mirror/infozip/zlib/);

yum install gd, libpng, zlib

Устанавливаем и настраиваем MRTG

Устанавливаем пакtт mrtg

yum install mrtg

В результате получаем в каталоге Apache c содержанием сайта (/var/www/html/) подкаталог mrtg c html-файлами документации. Сюда же будут помещаться результаты визуализации работы MRTG. В /etc/mrtg помещается файл mrtg.cfg с настройками, а в /usr/bin/ утилиты конфигурирования и непосредственно сам исполнимый файл /usr/bin/mrtg.

Далее ставим утилиту cban http://freshmeat.net/urls/5d0c563be5962a838b0babd0e6185b08 (Current BANdwidth by Nicu Pavel), которая будет поставлять нам нужную информацию, обходясь без SNMP.

Тут пришлось внести несколько изминений в программу:

Разворачиваем архив, и кладем файл /bin/cban в /usr/sbin. Также для нас интерес представляет файл /etc/mrtg/sample-mrtg.cfg - это, как и обещает нам название, пример конфига для mrtg. Приведу его полностью, комментируя значения параметров:

Title[eth0]: Traffic eth0 # название генерируемой страницы
MaxBytes[eth0]: 125000 # при получении значения, большего чем заданное,
# значение не учитывается для построения графика
AbsMax[eth0]: 125000 # при получении значения, большего чем заданное, значение
# вообще не учитывается
Options[eth0]: gauge # опция означает, что берется текущее входное значение,
# а не по нарастающему итогу
Target[eth0]: `/usr/sbin/cban -i eth0 -m` # откуда получаем данные
PageTop[eth0]: eth0 statistics # заголовок генерируемой страницы
YLegend[eth0]: Bytes/s # подпись к значению по оси Y графика
ShortLegend[eth0]: B/s # единица измерения. добавляется к максимальному,
# текущему и среднему значению
Legend1[eth0]: Incoming Traffic # подпись для входящего трафика
Legend2[eth0]: Outgoing Traffic # подпись для исходящего трафика
Legend3[eth0]: Maximum Incoming Traffic # подпись для максимального входящего трафика
Legend4[eth0]: Maximum Outgoing Traffic # подпись для максимального исходящего трафика
LegendI[eth0]: In: # краткая подпись для цифровых данных (входящий)
LegendO[eth0]: Out: # краткая подпись для цифровых данных (исходящий)
WithPeak[eth0]: ymwd # строим графики за y-год, m-месяц, w-неделю, d-день

Фактически это готовый конфигурационный файл, работающий и без изменений. Обращаю внимание на строчку "Target[eth0]: `/usr/sbin/cban -i eth0 -m`". В ней прописан вызов нашей утилиты. eth0 - имя отслеживаемого интерфейса локальной машины. При необходимости отслеживать другой интерфейс, Вы должны здесь его указать. Для ознакомления с другими опциями конфигурационного файла, Вы можете просмотреть справочник reference.html, в каталоге Apache c содержанием Вашего сайта (/var/www/html/).

Кроме того, нужно указать каталог, куда будем складывать результаты работы в виде HTML - странички с графиками: WorkDir: /var/www/html/mrtg. По адресу http://ваш_хост/mrtg/reference.html находится документ расписывающий все возможные опции конфигурационного файла.
Запуск MRTG

После того, как мы разобрались с конфигурационным файлом, осталось попробовать запустить исполняемый файл /usr/bin/mrtg и посмотреть что в результате получится. Даем команду:

/usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log

и проверяем каталог, заданный параметром WorkDir на предмет появившихся новых файлов. Если все в порядке, то теперь можно заставить MRTG перегенерировать статистику, например, каждые пять минут:

crontab -e
*/5 * * * * /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log

Собственно всё )