Простая установка MRTG для Red Hat Linux

MRTG расшифровывается как "Multi Router Traffic Grapher". Это сервис, позволяющий посредством протокола SNMP получать из нескольких устройств информацию, и отображать в окне вашего броузера графики загруженности канала (входящий трафик, исходящий, максимальный, средний) с шагом в минуты, часы, дни и за год.

[Андрей Маркелов (www.markelov.net)]

Простая установка MRTG для Red Hat Linux

Впервые опубликованно в журнале "Системный администратор" N2/2004.

Что такое MRTG? MRTG - это Multi Router Traffic Grapher, сервис, позволяющий посредством протокола SNMP получать из нескольких устройств информацию, и отображать в окне вашего броузера графики загруженности канала (входящий трафик, исходящий, максимальный, средний) с шагом в минуты, часы, дни и за год. Пример работы программы Вы можете увидеть на рисунке. Там показаны два графика - за неделю и за месяц. Соответственно с шагом в 30 минут и два часа.

Почему в заглавии статьи есть фраза "простая установка"? Объясняю. В большинстве случаев системному администратору не требуется мониторить кучу точек своей сети посредством SNMP. Для небольшой организации наиболее логичным, и зачастую единственным применением подобного инструмента является мониторинг загрузки внешнего интерфейса прокси-сервера, на который мы и будем локально ставить MRTG. Это значительно упрощает установку программы и исключает использование протокола SNMP.

Опять же из соображений простоты установки выбран Red Hat Linux (ну и конечно из соображений распространенности в России - не забываем, что ряд российских дистрибутивов создан на основе "шапочки"). Это позволит нам избежать этапов компиляции библиотек и самого MRTG.

Однако, необходимо заметить, что применение Multi Router Traffic Grapher не ограниченно лишь указанным дистрибутивом, или вообще операционной системой Linux. При наличии библиотек, перечисленных в следующем разделе и работающего http-сервера, Вы сможете запустить MRTG и на другой системе.

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

Для работы 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/);

Берем с сайта Red Hat (или диска с дистрибутивом) соответствующие rpm-пакеты, и устанавливаем их командной rpm -i <имя пакета>. У меня были установлены следующие версии:

gd-1.8.4-4.rpm
libpng-1.0.12-2.rpm
zlib-1.1.4-8.rpm

Перед тем как устанавливать пакет, Вы можете проверить его наличие в системе, а соответственно и необходимость установки командной rpm -qi <имя пакета>.

Конечно, если у Вас установлена операционная система, не использующая стандарт rpm-пакетов, вам придется зайти на сайт проекта, скачать исходники и скомпилировать исполняемые файлы вручную (собственно, все сводится к стандартным шагам - configure, make, make install).

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

Идем на сайт проекта http://people.ee.ethz.ch/~oetiker/webtools/mrtg/. По ссылке "Download MRTG" качаем собранный под Red Hat rpm-пакет. Ставим аналогично библиотекам, командой rpm -i mrtg-2.x-y-z.i386.rpm. В результате получаем в каталоге Apache c содержанием Вашего сайта (/var/www/html/) подкаталог mrtg c html-файлами документации. Сюда же будут помещаться результаты визуализации работы MRTG. В /etc/mrtg помещается файл mrtg.cfg с настройками, а в /usr/bin/ утилиты конфигурирования и непосредственно сам исполнимый файл /usr/bin/mrtg.

Далее, при стандартной настройке сервиса, нам бы пришлось настраивать SNMP как на устройстве/интерфейсе с которого снимаем информацию, так и на нашей локальной машине, где установлен MRTG. Мы же обойдемся без этого, и по адресу http://freshmeat.net/redir/cban/18710/url_tgz/cban-0.1.8-0.tgz скачаем утилитку cban (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

Поздравляю! Теперь у Вас есть инструмент наглядного и понятного контроля за трафиком в офисе. Да и большому начальнику, при необходимости, можно показывать эти "веселые картинки" :).

Заключение

Должен сказать, что было бы странным, если бы столь мощный инструмент использовался только для мониторинга сетевого трафика. Используя MRTG, Вы можете строить графики загрузки, например памяти или времени отклика Вашей web-странички. Целый ряд addon-ов можно взять по адресу http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/contrib/.

А. Маркелов.
.12.2003

Эту и другие статьи автора вы можете прочесть на сайте www.markelov.net.

[ опубликовано 20/04/2004 ]

Андрей Маркелов (www.markelov.net) - Простая установка MRTG для Red Hat Linux   Версия для печати