Skype: My status
pfstat - рисуем графики PDF Печать E-mail
Раздел: Настройка программного обеспечения . Категория: FreeBSD 7

pfstat - утилита, собирающая статистику при помощи пакетного фильтра и предоставляющая её в графическом виде (см. рисунок).

pfstat_hour2pfstat_hour

Установка занимает совсем мало времени

Перед началом установки обязательно обновляем дерево портов.

# uname -a FreeBSD g.house.local 7.3-RELEASE FreeBSD 7.3-RELEASE #1: Thu Oct 21 00:35:56 EEST 2010 root@g. :/usr/obj/usr/src/sys/my i386# cd /usr/ports/sysutils/pfstat>
# make install clean
# rehash

Теперь нужно создать конфигурационный файл

# mcedit /usr/local/etc/pfstat.conf

# Собираем данные

collect 3 = queue "user1_in" pass bytes diff
collect 4 = queue "user1_out" pass bytes diff

collect 5 = queue "inet_in" pass bytes diff
collect 6 = queue "inet_out" pass bytes diff

collect 7 = queue "user2_in" pass bytes diff
collect 8 = queue "user2_out" pass bytes diff

collect 9 = queue "user3_in" pass bytes diff
collect 10 = queue "user3_out" pass bytes diff

collect 11 = queue "user4_in" pass bytes diff
collect 12 = queue "user4_out" pass bytes diff

collect 13 = queue "user5_in" pass bytes diff
collect 14 = queue "user5_out" pass bytes diff

collect 15 = queue "user6_in" pass bytes diff
collect 16 = queue "user6_out" pass bytes diff

collect 17 = queue "user7_in" pass bytes diff
collect 18 = queue "user7_out" pass bytes diff

collect 19 = queue "user8_in" pass bytes diff
collect 20 = queue "user8_out" pass bytes diff

collect 21 = queue "user9_in" pass bytes diff
collect 22 = queue "user9_out" pass bytes diff

# Рисуем графики

image "/usr/local/www/data/pfstat_hour_all.jpg" { # куда сохранять графики
from 2 hours to now # тут можно так ("minutes" | "hours" | "days" | "weeks" | "months" | "years")
width 650 height 620 # размер
left # расположение
graph 3 "[in Anton]" "bytes/s" color 255 90 90,
graph 7 "[in Yaroslav]" "bytes/s" color 0 255 0,
graph 9 "[in Evtushok]" "bytes/s" color 0 0 255,
graph 11 "[in u4]" "bytes/s" color 255 0 255,
graph 13 "[in u5]" "bytes/s" color 255 255 0,
graph 15 "[in Natasha]" "bytes/s" color 0 0 0,
graph 17 "[in Tescha]" "bytes/s" color 0 255 255,
graph 19 "[in 937l]" "bytes/s" color 90 90 255,
graph 21 "[in Shvachko]" "bytes/s" color 90 90 255
}

image "/usr/local/www/data/pfstat_hour_all_out.jpg" {
from 3 hours to now
width 650 height 620
left
graph 4 "[out Anton]" "bytes/s" color 255 90 90,
graph 8 "[out Yaroslav]" "bytes/s" color 0 255 0,
graph 10 "[out evtushok]" "bytes/s" color 0 0 255,
graph 12 "[out u4]" "bytes/s" color 255 0 255,
graph 14 "[out u5]" "bytes/s" color 255 255 0,
graph 16 "[out Natasha]" "bytes/s" color 0 0 0,
graph 18 "[out Tescha]" "bytes/s" color 0 255 255,
graph 20 "[out 937l]" "bytes/s" color 90 90 255,
graph 22 "[out Shvachko]" "bytes/s" color 90 90 255
}

image "/usr/local/www/data/pfstat_inetin.jpg" {
from 3 hours to now
width 1330 height 620
left
graph 1 "[my1 in]" "bytes/s" color 51 153 255 filled,
graph 2 "[my1 out]" "bytes/s" color 0 0 0
}


image "/usr/local/www/data/pfstat_hour_user1.jpg" {
from 1 hours to now
width 325 height 300
left
graph 3 "in" "bytes/s" color 51 153 255 filled,
graph 4 "out" "bytes/s" color 0 0 0
}

image "/usr/local/www/data/pfstat_hour_user2.jpg" {
from 1 hours to now
width 325 height 300
left
graph 7 "[in Yaroslav]" "bytes/s" color 51 153 255 filled,
graph 8 "[out]" "bytes/s" color 0 0 0
}


image "/usr/local/www/data/pfstat_hour_user3.jpg" {
from 1 hours to now
width 325 height 300
left
graph 9 "[in Evtushok]" "bytes/s" color 51 153 255 filled,
graph 10 "[out]" "bytes/s" color 0 0 0
}

image "/usr/local/www/data/pfstat_hour_user4.jpg" {
from 1 hours to now
width 325 height 300
left
graph 11 "in" "bytes/s" color 51 153 255 filled,
graph 12 "out" "bytes/s" color 0 0 0
}


image "/usr/local/www/data/pfstat_hour_user5.jpg" {
from 1 hours to now
width 325 height 300
left
graph 13 "in" "bytes/s" color 51 153 255 filled,
graph 14 "out" "bytes/s" color 0 0 0
}


image "/usr/local/www/data/pfstat_hour_user6.jpg" {
from 1 hours to now
width 325 height 300
left
graph 15 "in" "bytes/s" color 51 153 255 filled,
graph 16 "out" "bytes/s" color 0 0 0
}


image "/usr/local/www/data/pfstat_hour_user7.jpg" {
from 1 hours to now
width 325 height 300
left
graph 17 "in" "bytes/s" color 51 153 255 filled,
graph 18 "out" "bytes/s" color 0 0 0
}

image "/usr/local/www/data/pfstat_hour_user8.jpg" {
from 1 hours to now
width 325 height 300
left
graph 19 "in" "bytes/s" color 51 153 255 filled,
graph 20 "out" "bytes/s" color 0 0 0
}

image "/usr/local/www/data/pfstat_hour_user9.jpg" {
from 1 hours to now
width 325 height 300
left
graph 21 "in" "bytes/s" color 51 153 255 filled,
graph 22 "out" "bytes/s" color 0 0 0
}

Теперь необходимо прикрутить сбор статистики и перерисовку графиков. Для этого используем cron. Добавляем следующие строки

# mcedit /etc/crontab

* * * * * root    /usr/local/bin/pfstat -q -d /var/db/pfstat.db -c /usr/local/etc/pfstat.conf # сбор данных каждую минуту
* * * * * root    /usr/local/bin/pfstat -p -d /var/db/pfstat.db -c /usr/local/etc/pfstat.conf # отрисовка
25 3 * * * root    /usr/local/bin/pfstat -t 30 -d /var/db/pfstat.db -c /usr/local/etc/pfstat.conf # очистка

Для выполнения задач чаще чем каждую минуту используйте sleep

Внимание! Большое количество данных может привести к переполнению раздела /var, поэтому, советую оптимизировать сбор статистики.

Для очистки /var/db/pfstat.db выполните:

# pfstat -t 1

 - будут удалены все данные старде одного дня, также, можно просто обнулить базу командой:

# : > /var/db/pfstat.db

Для ручного сбора данных выполните

# pfstat -q

Для перерисовки графиков запустите

# pfstat -p

У меня графики складываются в папку апача "/usr/local/www/data/ в конфиге которого /usr/local/etc/apache/httpd.conf прописано:

DocumentRoot "usr/local/data"

Для просмотра я набросал простенький скрипт, если его можно таковым назвать :-) 

Для просмотра графиков в браузере набираем http://IP сервера или имя

Пример графиков на рисунке снизу. Использую Динамический шейпинг во FreeBSD на основе PF

Конфиг pfstat довольно громоздкий и неудобный, при добавлении нового пользователя необходимо добавлять новые блоки, поэтому я решил написать генератор, который будет формировать скрипт для странички и собственно сам конфиг - http://pf.serviscentr.net.ua

pfstat

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Пользователи : 463
Статьи : 65
Просмотры материалов : 846480

Реклама

Выбрать насос можно в нашем каталоге!
пресс-релиз мото
Приезжайте в наш город ssangyong actyon для всех и каждого.
Для вас в нашей фирме реминерализация зубов недорого со скидками.
Мир ставок на спорт
Бронированные двери