Смотрим загрузку сети через MRTG

MRTGMRTG (Multi Router Traffic Grapher) - программа для мониторинга различных ресурсов устройств, компьютеров и даже программ через протокол SNMP.
Для работы программы требуется, чтобы на устройстве был включен протокол SNMP, а если собираемся мониторить данные получаемые с компьютера, то на компьютере должен работать демон программы SNMP.
У меня стояла задача посмотреть насколько загружен узловой коммутатор сети, но данная статья применима ко всем сетевым устройствам, умеющим SNMP протокол. Так что можно следить за загрузкой каналов Lan или Wi-Fi у роутеров, ADSL модемов и прочей домашней техники.

Первым делом проверяем, чтобы на устройстве за который хотим следить

  • был включен протокол SNMP
  • если там есть фаерволл, то разрешаем доступ нашей мониторящей машине (открыть на устройстве UDP 161 порт)
  • рекомендуется изменить строку доступа на чтение параметров SNMP (по умолчанию строка доступа - "public")

Установка MRTG

MRTG имеет следующие зависимости

  • HTTP web сервер
  • perl-SNMP_Session
  • GD библиотека
  • Libpng библиотека
  • zlib библиотека

HTTP web сервер требуется только для просмотра графиков на машине с MRTG. Я рекомендую использовать web сервер apache.
Для установки в Ubuntu (Debian) выполним команду


sudo aptitude install mrtg

После инсталляции конфиг MRTG будет находиться /etc/mrtg, а рабочая директория HTTPсервера в /var/www/mrtg

В FreeBSD инсталляцию пакета лучше всего проводить из портов. От root или sudo выполняем


# cd /usr/ports/net-mgmt/mrtg
# make config && make install clean

Для инсталляции из исходников скачиваем программу со страницы загрузки и конфигурируем с опциями


./configure --prefix=/usr/local/mrtg2 \
            --with-gd-lib \
            --with-gd-inc \
            --with-png-inc=/usr/local/include \
            --with-png-lib=/usr/local/lib

Затем стандартные


#make
#make install

Создание конфигов MRTG

В MRTG пакете есть утилита cfgmaker для содания конфигов устройств. Создаем конфиг для нашего устройства (команда пишется в одну строку)


#cfgmaker --global 'WorkDir: /usr/local/apache/htdocs/stat/mrtg/' public@m254 \
 --output /usr/local/mrtg2/etc/m254.cfg

здесь
--global 'WorkDir: /usr/local/apache/htdocs/stat/mrtg/' - рабочий каталог для mrtg, где будут хранится графики загрузки каналов и конфиг
public@m254 - строка доступа для чтения параметров устройства и имя устройства в сети (можно задавать ip адрес)
--output /usr/local/mrtg2/etc/m254.cfg - куда сохраняем наш конфиг для устройства
Я перечислил только самые необходимые переменные для cfgmaker, полный список команд можно посмотреть по команде


cfgmaker --man

Теперь по полученному конфигу устройства сгенерим страничку html для вывода картинок загрузки портов устройства. Это делается через команду indexmaker.


#indexmaker /usr/local/mrtg2/etc/m254.cfg > /usr/local/apache/htdocs/stat/mrtg/index.html

Убедимся что MRTG и наш конфиг устройства с index.html работают. Выполняем


#mrtg /usr/local/mrtg2/etc/m254.cfg

В рабочей директории /usr/local/apache/htdocs/stat/mrtg/ должны появиться файлы картинок *.png , *.log файлы и вспомогательные html файлы.
Можно набирать в браузере http://сервер/stat/mrtg/ и увидеть пока пустые картинки на портах устройства.
Если снимать статистику раз в 5 минут, то через пол дня увидим примерно следующее:

Общая загрузка по портам


Детальный отчет по загрузке конкретного порта устройства

По умолчанию порты комутатора просто пронумерована или имеют свои специфические обозначения. Эти обозначения можно исправить отредактировав вручную файл index.html в рабочей директории.

Для автоматического сбора статистики в /etc/crontab добавляем строку


*/5  *  *  *  *  root  /usr/local/mrtg2/bin/mrtg /usr/local/mrtg2/etc/m254.cfg 1> /dev/null 2>&1
Статья просмотрена 12 050 раз
Запись опубликована в рубрике Monitoring, Программы с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>