Левая панель

Главное окно

Корзина
Admin-World - администраторы всех стран обьеденяйтесь Тема Home News Downloads Tutorials WebLinks Login to JoomlaCurve

  Панель
 
Главное меню
Главная
Новости
Поиск
Библиотека
Форум
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Статистика
 
     
Главная arrow Библиотека arrow Linux arrow The Multi Router Traffic Grapher
 
Реклама

 

The Multi Router Traffic Grapher

Печать E-mail

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

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

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 мин).

 
« Type1 и truetype шрифты в LaTeX   Сборка KDE (собственный опыт) »

 
  Админ World