Logo    
Деловая газета CitCity.ru citforum.ck.ua - все об Open Source Форумы Все публикации Учебный центр Курилка
CitForum    CITForum на CD    Подписка на новости портала Море(!) аналитической информации! :: citforum.ck.ua
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Monday, 03-Mar-2008 10:59:23 EET

Google
WWW citforum.ck.ua
2007 г.

Мониторинг загрузки канала интернет-шлюза на FreeBSD

, BOZZA.RU

В этой небольшой статье я постараюсь описать простой и часто необходимый способ постороения графиков загрузки интернет-канала (общий график, график www, график pop3, график smtp). Это может быть полезно системным администраторам для того, чтобы они знали, в какое время их офис потребляет много интернета, забита ли их полоса пропускания постоянно или только перед обедом, на что именно расходуется полоса пропускания канала – на просмотр сайтов (тогда, возможно, кто-то качает всякую фигню), на получение почты (тогда, возможно, надо рассмотреть вопрос настройки собственного почтового сервера), на отправку писем (возможно, какой-либо компьютер заражен вирусом и рассылает спам). Применений этому может быть множество. Итак, приступим.

Требования

rrdtool - установка и настройка см. http://bozza.ru/?c=230&p=content и http://bozza.ru/?c=231&p=content (англ.)

брандмауэр на шлюзе – в нашем случае рассмотрим ipfw в составе ОС FreeBSD. В общем случае подойдет любая система, которая может считать пакеты и отдавать их значения нашим скриптам.

apache – веб-сервер для просмотра сгенерированных изображений. Впрочем, это не обязательно, нам главное сгенерировать изображение, а что с ним делать – решать вам.

Будем считать, что rrdtool установлена, apache – тоже, брандмауэр, полагаю, был всегда, так что самое время описать работу нашей схемы.

Брандмауэр

Итак, нам необходимо четыре правила брандмауэра, которые будут считать трафик www (входящий), pop3 (входящий), smtp (исходящий) и общий входящий. Вот они:

pif="xl0" # внешний интерфейс
cmd="ipfw -q add"
# Count
# Out mail
$cmd 0010 count tcp from any to any 25 out via $pif # In mail $cmd 0011 count tcp from any 110 to any in via $pif # WWW $cmd 0012 count tcp from any 80,443 to any in via $pif # ALL $cmd 0013 count all from any to any in via $pif

Первые две строки – объявления макросов, остальные – понятно, считают соответствующий трафик.

После включения этих правил проверим, считают ли они трафик, идущий через шлюз.

freebsd-host# ipfw show 13

Выдает нам нечто похожее:
00013 146322 109248471 count ip from any to any in via xl0

Нас будет интересовать третья цифра – 109248471 – количество байт, сосчитанное правилом 13, которое в нашем случае считает общий входящий трафик.

rrdtool

Считаем rrdtool установленным и, желательно, проверенным хотя бы на тестовом примере, который весьма неплохо описан на странице http://bozza.ru/?c=231&p=content. Не поленитесь, просмотрите эту статью, несмотря на то, что она на английском. Я не могу сказать про себя, что английский знаю даже средне, но мне там все было понятно.

Скрипты

Нам будут необходимы следующи скрипты:

  1. network_usage.sh – обновляет базу. Запускается периодиески. Для нашего примера, раз в 5 минут.
  2. network_usage_create.sh – создает базу данных для четырех счетчиков, описанных выше. Запускается один раз.
  3. network_usage_graph2.sh – рисует графики загрузки канала. Запускается раз в 5 минут.
  4. network_usage_update_rrdtool.sh – фактически, этот скрипт просто запускает раз в пять минут network_usage.sh и network_usage_graph2.sh. Его содержимое самое очевидное.

Сразу приведу их содержимое:

network_usage_create.sh

#!/bin/sh


rrdtool create /var/rrdtool/db/network_usage.rrd \ --start 1176595200 \ DS:input_mail:COUNTER:600:U:U \ DS:output_mail:COUNTER:600:U:U \ DS:www:COUNTER:600:U:U \ DS:all:COUNTER:600:U:U \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797 \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:6:700 \ RRA:MAX:0.5:24:775 \ RRA:MAX:0.5:288:797

network_usage.sh

#!/bin/sh


input_mail=`/sbin/ipfw show 0011 | awk '{print $3}'` output_mail=`/sbin/ipfw show 0010 | awk '{print $3}'` www=`/sbin/ipfw show 0012 | awk '{print $3}'` all=`/sbin/ipfw show 0013 | awk '{print $3}'` /usr/local/bin/rrdtool update /var/rrdtool/db/network_usage.rrd \ N:$input_mail:$output_mail:$www:$all

network_usage_graph2.sh

#!/bin/sh


WWWPREFIX=/var/www/rrdtool/images RRDPREFIX=/var/rrdtool/db
/usr/local/bin/rrdtool graph $WWWPREFIX/network.png \ --width 500 --height 500 --imgformat PNG \ --start -43200 \ --title "Bandwidth graph for last 12 hours" --rigid --color BACK#FAFAFA \ --vertical-label Kbit/sec \ DEF:ifino=$RRDPREFIX/network_usage.rrd:input_mail:AVERAGE \ DEF:ifouto=$RRDPREFIX/network_usage.rrd:output_mail:AVERAGE \ DEF:www=$RRDPREFIX/network_usage.rrd:www:AVERAGE \ DEF:all=$RRDPREFIX/network_usage.rrd:all:AVERAGE \ CDEF:pop3=ifino,128,/ \ CDEF:smtp=ifouto,128,/ \ CDEF:www1=www,128,/ \ CDEF:all1=all,128,/ \ VDEF:sumpop3=ifino,TOTAL \ VDEF:sumsmtp=ifouto,TOTAL \ VDEF:sumwww=www,TOTAL \ VDEF:sumall=all,TOTAL \ VDEF:maxpop3=pop3,MAXIMUM \ VDEF:maxsmtp=smtp,MAXIMUM \ VDEF:maxwww=www1,MAXIMUM \ VDEF:maxall=all1,MAXIMUM \ VDEF:avgpop3=pop3,AVERAGE \ VDEF:avgsmtp=smtp,AVERAGE \ VDEF:avgwww=www1,AVERAGE \ VDEF:avgall=all1,AVERAGE \ AREA:all1#CCCCCC:"ALL" \ GPRINT:maxall:"Max=%lf%s" \ GPRINT:avgall:"Avg=%lf%s" \ GPRINT:sumall:"Sum=%lf %sbytes\l" \ LINE1:www1#FF6600:"WWW" \ GPRINT:maxwww:"Max=%lf%s" \ GPRINT:avgwww:"Avg=%lf%s" \ GPRINT:sumwww:"Sum=%lf %sbytes\l" \ LINE1:pop3#0000FF:"POP3" \ GPRINT:maxpop3:"Max=%lf%s" \ GPRINT:avgpop3:"Avg=%lf%s" \ GPRINT:sumpop3:"Sum=%lf %sbytes\l" \ LINE1:smtp#FF0000:"SMTP" \ GPRINT:maxsmtp:"Max=%lf%s" \ GPRINT:avgsmtp:"Avg=%lf%s" \ GPRINT:sumsmtp:"Sum=%lf %sbytes\l" \

network_usage_update_rrdtool.sh

#!/bin/sh


/var/rrdtool/script/network_usage.sh /var/rrdtool/script/network_usage_graph2.sh

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

Порядок работы

network_usage_create.sh

Значит, создаем базу rrdtool, запуская скрипт network_usage_create.sh. Проверяем, появился ли файл /var/rrdtool/db/network_usage.rrd. Если появился, переходим к следующему шагу. Если нет, то проверяем пути запуска rrdtool (возможно, у вас rrdtool запускается не такой командой /usr/local/bin/rrdtool, а как-нибудь иначе). В любом случае, пока база rrdtool не будет создана, дальше идти нельзя.

network_usage.sh

Здесь все просто, запускаем скрипт раз в пять минут и особо с ним проблем не должно быть.

network_usage_graph2.sh

Позволю себе небольшой коментарий макросов:

WWWPREFIX=/var/www/rrdtool/images – путь до директории, где будет храниться картинка network.png. Отредактируйте этот путь в соответствии с вашим веб-сервером apache или любым другим.

RRDPREFIX=/var/rrdtool/db – путь до директории, где лежит база данных rrdtool.

Наш скрипт отображает загрузку канала за последние 12 часов:
--start -43200 – время в секундах.

Данный скрипт необходимо запускать раз в пять минут.

network_usage_update_rrdtool.sh

Для простоты дела, дабы не запускать network_usage.sh и network_usage_graph2.sh раз в пять минут по отдельности, можно запускать раз в пять минут этот скрипт. Еще лучеш поместить его в cron:

# crontab –e
*/5 * * * * /var/rrdtool/script/network_usage_update_rrdtool.sh

Заключение

Вот, собственно и все. До помещения чего-либо в cron, лучше проверить в ручном режиме. Разумеется, многое из того, что я описал, я взял из примеров, разбросанных по сети, многое отредактировал сам. Надеюсь, статья будет полезна многим.

С уважением, BOZZA.RU

Обсуждение статьи ведется на сайте OpenNET.ru.

 

Подписка на новости IT-портала citforum.ck.ua
(библиотека, citforum.ck.ua, CitCity)

Новые публикации:

28 февраля

  • Подбор и развитие команд
    Глава из книги «Руководство командой разработчиков программного обеспечения. Прикладные мысли» (С.Архипенков)
  • citforum.ck.ua:

    Дискуссия об анонимусах:

  • К комментаторам
  • Windows против Linux - психологический портрет участников форумов
  • Новые Блогометки:

  • Nokia N810 - Linux Inside
  • LiMo - стандарты Linux для сотовых телефонов
  • timer-applet: таймер для панели GNOME
  • Debfoster: удалите пакет и все его зависимости
  • GPW: генератор произносимых паролей
  • AMOR: общество для рабочего стола
  • 20 февраля

    citforum.ck.ua:

    Новые Блогометки:

  • Кое-что о приложениях KDE 4
  • Инструкция по установке KDE 4 в Ubuntu
  • Настоящие мужчины ставят KDE из SVN!
  • Начат переход Amarok на Qt 4.4
  • Marble
  • Dillo - сверхбыстрый браузер
  • Создаем резервные копии настроек программ и важных файлов в Ubuntu LInux
  • NTP: всегда вовремя
  • VYM - простое средство зарисовки мыслей и планирования
  • KBibTeX: простой и гибкий редактор библиографий для KDE
  • Дискуссия Windows vs Linux:

  • Жил-был Мальчик, или Сказочка о Том, Откуда Берутся "КУЛХАЦКЕРЫ", ненавидящие Линукс и Юникс
  • 13 февраля

  • Терминологический словарь Wi-Fi
  • Задача проектирования базы данных методом нормализации
  • CitCity:

  • Лучшие смартфоны начала 2008 года
  • citforum.ck.ua:

  • Первый взгляд на Firefox 3.0
  • Open Source на Белгородщине: семинар в Старом Осколе
  • Что такое KDE?
  • Цикл о Slackware:

  • Русский в консоли
  • Быстрая настройка Иксов
  • xorgconfig - консольный подход
  • 6 февраля

    citforum.ck.ua:

  • Мобильный Linux – вчера, сегодня, завтра
  • Чем записать диски в Linux? Попробуй Brasero!
  • Консольные команды
  • Рецепты. Кое-что о программе mplayer
  • Slackware:
    • Что такое Slackware?
    • Установка Slackware - Загрузка
    • Категории программного обеспечения
    • Структура файловой системы
    • Система инициализации Slackware Linux
    • Скрипты инициализации уровня запуска

    30 января

  • Обзор алгоритмов MOLAP
  • CitCity:

  • BI-технологии 2007. Итоги года
  • Рынок СУБД для Хранилищ данных 2007. Итоги года, тенденции
  • Обзор рынка BI (по результатам исследований IDC, OLAP Report, Gartner)
  • Модель зрелости BI
  • citforum.ck.ua:

  • Владимир Попов: За что я люблю Linux
  • Священные войны
  • 23 января

  • Data Mining от Oracle: настоящее и будущее
  • Комментарии к статье Ч.Бергера «Data Mining от Oracle: настоящее и будущее»
  • Байесовский классификатор и регрессионная модель в ORTD: практический пример
  • citforum.ck.ua:

    Дискуссия Windows vs Linux:

  • Программисты и фирмы: кто кого
  • О "чистых пользователях"
  • Новые Блогометки:

    • Почему Jabber, а не ICQ?
    • Archlinux install quick
    • Arch на IBM Z60m
    • Arch + IBM R50e
    • OpenBSD - сборка E17-cvs (или ещe одна маленькая победа разума)
    • OpenBSD - всe для Человека и ради Человека...
    • PekWM
    • E17 и "прозрачность"
    • E17 - приятные мелочи (multimedia)
    • SuSE + Enlightenment = угробил целый день

    16 января

  • Вьетнам компьютерной науки (пересказ - С.Кузнецов)
  • Пример построения автоматизированного управления дисками (ASM) (В. Пржиялковский)
  • CitCity:

  • 2008 год: антипрогноз
  • citforum.ck.ua:

    Новые Блогометки:

    Сети и Интернет:

    • Mozilla firefox. Шрифты в меню
    • Screen tips
    • Liferea: программа чтения RSS для GNOME
    • HTTrack: скачивание и зеркалирование сайтов
    • Clusterssh: работа с несколькими сеансами SSH через общий интерфейс

    Десктопы:

    • Fluxbox & xinitrc. Some new tips
    • Как я конфигурировал xdm

    Системы:

    • SuSE 10.2: zypper - еще один способ установки пакетов
    • cpipe: определите пропускную способность конвейера команд
    • gddrescue: средство восстановления данных с поврежденных носителей
    • VirtualBox: ваш виртуальный ПК

    Приложения:

    • MyTop: top для MySQL

    10 января

    citforum.ck.ua:

    Дискуссионный клуб:

  • Краткое руководство по общению с никсофилами (Интенсификация Малаховна Сергина-Гейтс)
  • О троллях
  • Пещера горного короля: заметки о троллинге
  • Новые Блогометки:

    Сети и Интернет:

    • Делаем блог на Drupal
    • Использование lftp
    • Устанавливаем FTP сервер ProFTPd с TLS шифрованием
    • Управляем файлами на FTP сервере с помощью FileZilla

    Десктопы:

    • fluxbox.autorun
    • 15 человек на сундук мертвеца! (или песнь о зарытых сокровищах)

    Системы:

    • Живой Debian или рабочее место в кармане
    • Разбивка hdd

    Приложения:

    • Cat Excel files
    • Vim: меню выбора кодировок

    26 декабря

    citforum.ck.ua:

  • В Блогометках открыты разделы:
    • Софт для Windows
    • Сети и Интернет
  • dwm. От статики к динамике
  • Установил Solaris
  • Новая Дискуссия:
    • Нужен ли русский Linux?

    19 декабря

  • SQL Anywhere: встраиваемая СУБД
  • citforum.ck.ua:

  • В разделе Блогометки появились рубрики:
    • Десктопы
    • Приложения
    • Системы
  • Подробно о разделе: Блоги и блогометки: открываем сезон промывки
  • 13 декабря

    CitCity:

  • Microsoft и Барселона: сюрреализм?
  • citforum.ck.ua:

  • Открыт новый раздел Блогометки
  • ZFS в подробностях. 1. Былое и ныне
  • 5 декабря

  • Архитектура предприятия: основные определения
  • Архитектуры для государственных ведомств. Примеры
  • Обзор журнала Computer:

  • Высокопроизводительные встроенные системы
  • citforum.ck.ua:

  • Продолжение цикла Linux для начинающих:
    • Пользовательские интерфейсы
    • Файлы
    • Системы настройки

    29 ноября

    CitCity:

  • На пути к динамической IT-инфраструктуре предприятия: Платформа 2008
  • Трио "двенашек": Fujitsu Siemens AMILO Pro V3205, Lenovo 3000 V100 и RoverBook Navigator V211
  • От мала до велика: обзор четырех ноутбуков с диагональю 12, 13 и 14 дюймов
  • Мобильная зарядка... Или подзарядочный F.A.Q.
  • 21 ноября

  • Управление рисками: обзор употребительных подходов
  • Практическое руководство по созданию центра сертификации
  • citforum.ck.ua:

  • Возможности симбиоза
  • 13 ноября

    citforum.ck.ua:

  • Краткая справка по командам для работы с ZFS
  • Linux для начинающих:
    1. Дистрибутивы системы
    2. Разделы и каталоги
    3. Установка приложений
    4. Завершение установки
    5. Использование консоли
    6. Консольные приложения
    7. Загрузчики системы
    8. Графическая подсистема

    8 ноября

    CitCity:

  • Российский старт Oracle 11g
  • Майкл Стоунбрейкер: вопросы, ответы и комментарии
  • Роль поставщиков BI-услуг. Требования к выбору консультантов и внедренцев
  • Тенденции в области BI. Мнение отраслевых экспертов
  • citforum.ck.ua:

  • FreeBSD 7.0: доводим до ума
  • 1 ноября

    CitCity:

  • Глобализация мира технологий
  • Шаг леопарда
  • Куда ведут окна
  • CITForum:

  • DMR - новый стандарт радиосвязи
  • Обзор журнала Computer:

  • Планшетные ПК на службе образования
  • 30 октября

  • Универсальность и специализация: время разбивать камни?
  • Конец архитектурной эпохи, или Наступило время полностью переписывать системы управления данными
  • citforum.ck.ua:

  • FreeBSD 7.0 и ZFS
  • 25 октября

  • Антипаттерны руководства командами разработки ПО
  • Мониторинг загрузки канала интернет-шлюза на FreeBSD
  • Преобразование программ на языке Scheme для облегчения компиляции в язык C
  • CitCity:

  • ИнфоКом-2007 и аналогичный ИнфоЛинукс
  • 23 октября

    CitCity:

  • Третья сенсация осени
  • Тайны Linux-скандала: суды, кражи и самоубийства
  • citforum.ck.ua:

  • Ubuntu 7.10 Gutsy Gibbon: родословная Бесстрашного Гиббона
  • Блеск и нищета Ajax
  • 18 октября

  • PostgreSQL 8.3
  • citforum.ck.ua:

  • И снова о массовом Linux'е
  • ОСТОРОЖНО: ВИНДОФИЛИЯ!
  • Все публикации >>>




IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей Пресс-релизы -
Послать комментарий
Информация для авторов
Rambler's Top100 хостинг от .masterhost This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...