В качестве стабильной и хорошо конфигурируемой программы типа traffic shaper можно порекомендовать пакет CBQ. Ограничивать трафик можно и с помощью утилиты tc, входящей в пакет iproute2.
Мониторинг загрузки каналов
Для анализа загрузки интернет-канала необходимо использовать дополнительный пакет, поскольку разбираться самим в log-файлах системы – задача неблагодарная. Чтобы обеспечить требуемую наглядность, такой пакет должен выдавать информацию в графической форме, причем, желательно, с помощью Web-интерфейса. Все эти условия реализованы в программах MRTG (Multi Router Traffic Grapher) и RRDtool (Round Robin Database).
Программа MRTG
MRTG создает HTML-страницу с отображением загрузки канала за сутки, неделю, месяц и год. Для этого используется написанный на Perl скрипт, который опрашивает маршрутизатор через SNMP, а программа, написанная на С, обрабатывает получившийся результат и создает встроенные в HTML-страницу изображения в формате GIF/PNG. Помимо собранной самостоятельно информации пакет MRTG может обрабатывать информацию и из других источников (cpuinfo, df, squid и т. п.) и строить графики по полученной информации.
Большим преимуществом данной программы является постоянный размер журналов, в которых более старая информация хранится с меньшими подробностями.
Внешний вид получаемых графиков приведен на рис. 30.1.
Рис. 30.1. Результат работы программы MRTG
Конфигурирование MRTG
Для конфигурирования программы MRTG используется файл mrtg.cfg, параметры которого и будут рассматриваться в данном разделе. Как обычно, будут приведены только ключевые параметры, с полным списком можно ознакомиться в документации, прилагаемой к этому программному пакету.
Правила записи параметров в конфигурационном файле:
• ключевое слово – в начале строки;
• двоеточие – разделитель, идущий сразу за ключевым словом;
• строка продолжения начинается с пробела;
• строки комментария начинаются с символа #.
Итак, файл mrtg.cfg может содержать следующие команды:
• Include: имя_файла – подключаемый файл;
• WorkDir: имя_каталога – задает размещение журнала, рабочих файлов и генерируемых страниц, имеет приоритет над HtmiDir, imageDir и LogDir;
• HtmiDir: имя_каталога – задает размещение генерируемых страниц;
• ImageDir: имя_каталога – задает размещение генерируемых изображений; обязательно находится под HtmiDir – страницы генерируются в этом предположении;
• LogDir: имя_каталога – задает размещение журнала;
• Refresh: – частота перерисовки графи ков в браузере;
• RunAsDaemon: no | yes – запуск MRTG в режиме демона;
• Interval: – предполагаемый интервал запуска MRTG;
• IconDir: – каталог, где хранятся значки;
• Forks: число – определяет, сколько запускать параллельных процессов опроса;
• WriteExpire: no | yes – создавать файлы. meta для apache;
• NoMib2: по | yes – не запрашивать sysUptime, sysName;
• Language: язык_отчетов – определяет язык отчетов, есть поддержка русского языка;
• LogFormat: rrdtooi – формат журналов для rrdtool – динамическое создание отчетов;
• LibAdd: адрес-библиотеки-rrdtool RRDs.pm – адрес библиотеки rrdtool;
• PathAdd: адрес-rrdtool – адрес rrdtool;
Для каждого контролируемого устройства – обозначается как target, буквы преобразуются к строчным, создается отдельная секция. При работе MRTG каждый target порождает файлы журнала (target.log и target.old), картинки с графиками (target-day.gif, target-week.gif, target-month.gif, target-year.gif) и HTML-страницу (target.html).
• Target [target]: порт:community@маршрутизатор
[:port[:timeout[:retries[:backoff[:2]]]]]
где:
– порт – номер интерфейса на маршрутизаторе;
– community – пароль на чтение;
– маршрутизатор – имя или IP-адрес;
– port – по умолчанию стандартный порт SNMP;
– timeout – время ожидания;
– retries – количество попыток;
– backoff – во сколько раз увеличивать timeout при каждом повторе;
– 2 – означает использование 64-битных счетчиков;
• Target[target]: внешняя-программа-с-параметрами-в-обратных-кавычках
Программа должна возвращать на стандартный вывод 4 строки:
– значение счетчика входных байтов;
– значение счетчика выходных байтов;
– текстовую строку, содержащую информацию о времени работы объекта после включения;
– строку, указывающую имя объекта;
• RouterUptime[target]: communitу@маршрутизатор – откуда брать информацию об имени маршрутизатора и его времени работы для составных target;
• MaxBytes[target]: число – значения переменных, которые больше этого числа, игнорируются;
Читать дальше
Конец ознакомительного отрывка
Купить книгу