- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Linux-сервер своими руками - Денис Колисниченко
Шрифт:
Интервал:
Закладка:
Пример использования вы можете увидеть на сайте: http://www.stat.ee.ethz.ch/mrtg/
Для работы mrtgнам потребуется маршрутизатор, поддерживающий протокол SNMP. В этой же главе будет рассмотрен пример, позволяющий обойтись без маршрутизатора и вообще не использовать протокол SNMP. Общая конфигурация сети должна выглядеть примерно как на рис 8.9.
Рис. 8.9. Конфигурация сети
Из рисунка видно, что наша сеть получает доступ к Internet через SNMP-маршрутизатор. Компьютер MRTG — это узел локальной сети, на котором установлена программа MRTG. Программа MRTG будет периодически запускаться на узле MRTG, обновляя информацию о трафике. Пользователи локальной сети могут ознакомиться с этой информацией по протоколу HTTP. Естественно, на узле MRTG должен быть установлен Web-сервер.
Перед установкой программы убедитесь в наличии следующих библиотек:
1. gd (http://www.boutell.com/gd/);
2. libpng (http://www.libpng.org/pub/png/);
3. zlib (http://www.info-zip.org/pub/infozip/zlib/).
Загрузить последнюю версию MRTG можно по адресу: http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/pub.
Если вы используете операционную систему RedHat версии 7 или выше, программа MRTG, скорее всего, будет уже у вас установлена. Мы не будем скачивать исходные тексты программы, а сразу воспользуемся уже собранным пакетом rpm. Установим mrtg командой:
rpm –ih mrtg*
После установки нужно подготовить программу к первому запуску, то есть указать, откуда получать сведения о трафике.
Программа MRTG состоит из трех частей:
1. cfgmaker — утилита для создания конфигурационного файла.
2. indexmaker — утилита для создания файла index.html — страницы краткого обзора, дающую вам общее представление о всех целях, которые вы контролируете. О целях мы поговорим немного позже.
3. mrtg — сам mrtg.
Первый конфигурационный файл удобно создать с помощью программы cfgmaker, а потом добавить в него дополнительные параметры.
Введите команду:
cfgmaker —global 'WorkDir: /var/www/html/mrtg'
-global 'Options[_]: bits,growright'
-output /var/www/html/mrtg/mrtg.cfg
[email protected]
Теперь разберемся, что все это означает. Прежде всего, напомню, что означает наклонная черта: это просто перенос строки. Когда вы будете вводить команду, вместо наклонной черты используйте пробел как разделитель параметров. Наклонная черта используется, когда команда не помещается в командной строке.
Параметр WorkDir задает рабочий каталог. В этот каталог будут помещены html-файлы и рисунки — отчеты о трафике. Каталог /var/www/html/, как вы уже успели заметить, является корневым каталогом нашего Web-сервера, поэтому для просмотра статистики нужно ввести следующий URL в окне браузера: http://host/mrtg/
Кроме параметра WorkDir имеются также параметры HtmlDir и ImageDir.
В эти каталоги будут помещены html-файлы и картинки. При определении этих параметров нужно учитывать, что параметр WorkDir имеет приоритет над параметрами HtmlDir и ImageDir и поэтому, если указан параметр WorkDir, mrtg поместит отчеты и картинки именно в этот каталог, а значения параметров HtmlDir и ImageDir будут проигнорированы.
Группа глобальных параметров Options управляет построением изображения. Параметр bits означает, что мы измеряем трафик в битах, поэтому все числа нужно умножить на 8. Второй параметр, growright, указывает направление оси времени. Позже мы рассмотрим все параметры подробнее.
Параметр output программы cfgmaker задает имя конфигурационного файла, который будет создан.
Примечание. Параметры WorkDir и Options являются параметрами программы mrtg, а параметры global и output — параметрами программы cfgmaker.
Параметр [email protected] указывает имя сообщества SNMP-устрой-ства. В нашем случае — это наш SNMP-маршрутизатор. Обычно используется имя сообщества public. За более точной информацией обратитесь к администратору SNMP-маршрутизатора. Вместо имени узла в этом параметре можно указать IP-адрес, например, [email protected]
Параметр [email protected] как раз и является целью, которую мы будем контролировать.
После выполнения этой команды будет сгенерирован такой файл mrtg.cfg:
WorkDir: /var/www/html/mrtg
Options[_]: bits,growright
Target[r1]: [email protected]
Имя цели (r1) пишется в квадратных скобках. Для разных целей можно задавать разные параметры, например:
Target[r1]: 1:[email protected]
Target[r2]: 2:[email protected]
MaxBytes[r1]: 1250000
MaxBytes[r2]: 2500000
Title [r1]: Traffic Analysis for first interface
PageTop[r1]: <H1>Stats for our interface #1</H1>
Title[r2]: Traffic Analysis for second interface
PageTop[r2] : <H1>Stats for our interface #2</H1>
Параметр MaxBytes определяет максимальное число байт для цели. Значения, превышающие MaxBytes, будут игнорироваться.
Параметр Title определяет заголовок страницы, которая будет содержать информацию о цели, а параметр PageTop — текст, который будет помещен в верхней части этой страницы.
Числа 1 и 2 перед именем сообщества — это номера интерфейсов во внутренней таблице SNMP-устройства. После имени (или IP-адреса) SNMP-устройства можно указать порт SNMP. По умолчанию используется стандартный порт 161:
[email protected]:161
В качестве цели может быть использована программа, которая выводит на стандартный вывод четыре строки:
1. Количество принятых байтов.
2. Количество отправленных байтов.
3. Время работы объекта после включения.
4. Имя объекта.
Программу нужно записать в обратных кавычках, например:
Target[r3]: `/usr/bin/program`
Очень полезными параметрами являются Refresh и Interval. Первый определяет частоту обновления страниц с отчетами в браузере, а второй — предполагаемый интервал запуска программы MRTG. По умолчанию значения обоих параметров равно 300 секундам.
Опции perminute и perhour позволяют измерять трафик в единицах за минуту и час соответственно. Опция noinfo подавляет вывод информации об устройстве и времени его работы. Пример:
Options [_] : bits, perminute, noinfo
Я думаю, что теории вполне достаточно, тем более, что вместе с MRTG поставляется отличная документация, которая доступна по адресу http:// localhost/mrtg/. Теперь перейдем к практической настройке. Скорее всего, у вас не будет SNMP-маршрутизатора, поскольку в небольших сетях маршрутизатором является сама Linux-машина, а выделение средств на приобретение аппаратного маршрутизатора в ближайшие несколько лет не предвидится. Да и намного интереснее считать трафик своего компьютера, а не какого-то маршрутизатора, которого вы даже и не видели и который установлен где-то на третьем этаже.
Для работы MRTG необходимо установить и настроить сервер snmpd. Однако в большинстве случаев этого делать не нужно: корректная настройка данного сервера — это довольно нетривиальная задача, а лишняя «дыра» в системе безопасности нам не нужна. К тому же настройка сервера snmpd оправдывает себя, если вы хотите считать трафик этого компьютера не локальной программой mrtg, а удаленной, которая запущена на другом компьютере и получает данные от нашего сервера по протоколу SNMP.
Я предлагаю довольно простое решение, настройка которого не займет у вас много времени. Основывается оно вот на чем: как я уже отмечал, вместо цели можно указать программу, которая бы выводила информацию на стандартный вывод в таком формате:
Строка 1
Строка 2
Строка 3
Строка 4
• Строка 1 — это входящие байты (принятые).
• Строка 2 — исходящие байты (отправленные).
• Строка 3 — время, на протяжении которого работает устройство.
• Строка 4 — имя цели.
Где же взять эту программу? Написать самому! Сейчас я подробно опишу, как это сделать. Настоятельно не рекомендую вам сразу взять и использовать готовый листинг: вы не поймете самого главного — как именно происходит подсчет трафика. В результате ваша система подсчета трафика будет работать в таком режиме: программа будет считать трафик, a MRTG — строить графики.
Определим, откуда будем брать информацию о трафике. Операционная система Linux сама выполняет подсчет трафика. Вся информация, которая вам необходима, содержится в файле /proc/net/dev. Выполните команду:
cat /proc/net/dev
Результат выполнения этой команды вы уже видели в этой главе (рис. 8.7). Более новые ядра предоставляют больше информации о работе сетевых устройств, поэтому выполните данную команду для того, чтобы увидеть, какую информацию о сетевых устройствах предоставляет ваша система. Обычно первое информационное поле файла /proc/net/dev — это количество принятых байтов, а девятое — количество отправленных байтов.
Разрабатываемая программа должна найти нужный интерфейс и возвратить количество принятых и переданных байтов. Затем программа возвращает время, на протяжении которого работает устройство. Это время достаточно легко вычисляется с помощью программы uptime.
1:51pm up 2:10, 4 users, load average: 0.02, 0.04, 0.00
Программа uptime, кроме всякой другой информации, возвращает время, на протяжении которого система работает, то есть с момента загрузки операционной системы. В вышеприведенном примере видно, что машина непрерывно работала 2 часа и 10 минут. 2 часа и 10 минут — это значение, которое разрабатываемая программа должна вывести в третьей строке. Вы можете смело использовать это время, потому что в основном интерфейсы сервера «подымаются» при загрузке системы и разница между uptime системы и uptime интерфейса составит всего несколько секунд.

