Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Разное
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Разное    
Автор статьи: Crion
Дата: 02.06.2004

The Multi Router Traffic Grapher

1. Поставленная задача.
Необходимо графически отображать загруженность сетевых интерфейсов, Internet канала, модема и т.п.
Данные для постройки графиков снимаються с показания счетчиков фаервола.

2. Правила и отказ от обязательств.
Всё, что описано в данном тексте вы используете на свой страх и риск. Я, как автор за ваши действия и любые потери, связанные с ними ответственности не несу. Кое-что для этого how-to я взял из how-to Bog BOS: Мониторинг загрузки каналов (и не только) MRTG пусть не обижаются - я не присваиваю авторство.

3. Что это такое MRTG.
MRTG - позволяет строить графики загрузки, использования, наличия того или иного предмета в системе (пользователи, память и прочее), так же позволяет забирать данные как по SNMP, так и через саморучно написанные программы.
Так же если неохота заморачиваться с БД для подсчета и учета трафика, то можно так же воспользоваться данным пакетом.
mrtg начиная с RH 7.3 есть в дистрибутиве и устанавливается как правило по умолчанию.

4. Настройка MRTG.
Конфиг находиться /etc/mrtg/mrtg.cfg
Необходимо прописать следующее:
WorkDir: /var/www/html/mrtg # Рабочий каталог, в котором будут сохраняться файлы с картинками и html, обычно это один из каталогов web-сервера.
Language: russian # Язык формирования отчетов (русский).
Target[mail-lan]: `/usr/local/script/mail` #Это целеуказание mrtg, благодаря которому он знает, от куда брать информацию.
MaxBytes[mail-lan]: 2048000000 #Показывает, сколько максимум будет число, которое измеряется на этом узле ( в данном случае - это максимальная скорость соответствующего внешнего канала).
XSize[mail-lan]: 600 # Задает размер рисунка по горизонтали.
YSize[mail-lan]: 160 # Задает размер рисунка по вертикали.
Options[mail-lan]: growright, bits # Показывает, что графики надо рисовать движущимися не слева, а справа.
Directory[mail-lan]: mail-lan # Директория куда будут складываться данные (в данном примере полный путь будет /var/www/html/mrtg/mail/mail.html).
Title[mail-lan]: TrafficAnalysis 192.168.0.Х # Указывает заголовок для страницы с графиками.
PageTop[mail-lan]: Statsforour 192.168.0.Х # С этой строки и ниже заголовок для страницы, на которой будут вывешиваться графики за день, неделю, месяц и год

Так же можно настроить для снятия данный с другого скрипта для этого продолжим конфиг.
Target[squid-lan]: `/usr/local/script/squid`
MaxBytes[squid-lan]: 2048000000
XSize[squid-lan]: 600
YSize[squid-lan]: 160
Options[squid-lan]: growright, bits
Directory[squid-lan]: squid-lan
Title[squid-lan]: Traffic Analysis 192.168.0.Y
PageTop[squid-lan]: Stats for our 192.168.0.Y

5. Скрипт для снятия статистики с правил фаервола для MRTG.

#!/bin/bash
SEC=300 # Устанавливаем переменную SEC равной 300 сек, что равно 5 мин.
if [ -f /tmp/traffic-dump ] Начало цикла
then
currenttime=$(date +%s) # Задаем переменной currenttime значение равное числу секунд истекших с `00:00:00 1970-01-01 UTC' (GNU расширение)
locktime=$(date -r /tmp/traffic-dump +%s) # Задаем значение переменной locktime равное дате создания файла в заданном формате.
secondsdiff=$(expr $currenttime - $locktime) #Задаем переменной secondsdiff значение равное разнице переменных currenttime и locktime
[ $secondsdiff -ge $SEC ] #Проверяем условие в котором значение переменной secondsdiff должно быть больше либо равно переменной SEC
/sbin/ipchains -L -v -x -n >/tmp/traffic-dump #Снимаем показания счетчиков фаервола
/sbin/ipchains -Z # Обнуляем счетчики.
fi
else
/sbin/ipchains -L -v -x -n >/tmp/traffic-dump
fi # Конец цикла
out=$(cat /tmp/traffic-dump |grep "192.168.0.X 192.168.0.0/24") # Присваиваем переменной out значение вывода следующих комманд. С помощью cat выводим содержание указанного файла и перенаправляем ее вывод команде grep, которая ищет строки содержащие регулярные выражение.
out=$(echo $out |cut -d" " -f2) # перенаправляем вывод значения переменной out на вход cut, которая присваивает новое значение переменной out равное второму полю.
in=$(cat /tmp/traffic-dump |grep "192.168.0.0/24 192.168.0.X") #Тоже самое что и в описании переменной out
in=$(echo $in|cut -d" " -f2)
echo $in # Выводим значение in для mrtg.
echo $out # Выводим значение out для mrtg.
echo 0 # тоже самое.
echo 0

6. Запускаем MRTG
Запуск MRTG производиться cron каждые 5 минут, но чтобы не ждать 5 минут запустим mrtg вручную, для этого дадим команду mrtg /etc/mrtg/mrtg.cfg после того как команда отработает она на экран выдаст предупреждение. Запускаем mrtg еще раз и количество предупреждений уменьшилось. На третий раз mrtg перестает ругаться.

В красной шапке и манграгоре MRTG устанавливаеться по умолчанию из rpm пакета и автоматом запускаеться через cron, так что дополнительно ни чего прописывать ненужно.
Если mrtg устанавливать из сырцов, то соответственно необходимо выбрать способ запуска, либо через cron (добавим в crontab нужные записи) либо в конфиге mrtg прописать
RunAsDaemon: Yes
Interval: указываем интервал запуска mrtg (по умолчанию 5 мин).



Все статьи раздела "Разное"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: