Перейти до

Рекомендованные сообщения

Опубликовано:

Кто может подсказать, возможна ли связка? Допустим чтобы смотреть графики всех абонентов(не одновременно, а по выбору). Спасибо!

Опубліковано:

ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

Опубліковано:

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

Опубліковано:

у меня реализовано для 20 человек (тех кто юзает анлимит). Вобщем-то не очень сложно, но юзаю не mrtg а rrdtool

Выглядит вот так для одного юзера:

c7e188518a34.png

Для всей сети вот так:

a58567b50c8e.png

 

Для сети, трафик снимается с интерфейса, а для каждого юзера еще проче - маленьким скриптом прямо из базы stg ))))

Пересчитывается все это у меня раз в 5 минут по крону, рисунки рисуются раз в 15 минут тоже по крону - поэтому количество просмотров не очень то влияет на загрузку самого сервера.

Опубліковано:

А ещё можно скриптом снимать счетчики с правил фаервола, пихать это все в базу. А на другом сервачке рисовать графики.

Опубліковано:
ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

а можно про Bandwidth поподробней? :)

Опубліковано:
ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

а можно про Bandwidth поподробней? :)

Можно, ставил я его. Никому не советую. Графики не красивые, не точные, не информативные, показывают цену на кукурузу в Африке в засушливый год. Кроме всего прочего работает эта шняга как демон, и грузит соответсвенно проц. Дисковое пространство занимается безбашенными логами под это дело и в конце концов игра перестает стоить свечь. В отличие от этого RRDTOOL имеет для каждого графика файловую базу строго определенного размера (сейчас не помню сколько килобайт) которая не зависит от времени, за которое ризуется график и сколько там данных отображается. Все это происходит благодаря хитрому алгоритму работы этой утилиты и хитрому формату этой базы.

Опубліковано:
А детейлстат не база? Ну так юзать ее для рисования, есть мод в алферовской одминке для этого, чтобы юзверь графег видел.

По деталстатам выборки делать тупо бо это сильно нагружает базу запросами. Т.к. таблицы даталстатов безбашенного размера, то и нагрузочка на мускул получается нехилая. Я помница какой-то график прикручивал к stg-web но получилось не очень красиво бо мну не очень хорошо програмирует на php (вернее почти никак) и Алферов продинамил эту тему.

Ко всему прочему как быть тем кто юзает файловую базу? - поверьте, таких большинство т.к. с мускулем работа еще не стабильна и находится скорее в бетта тестироватии чем в реальной эксплуатации.

Опубліковано:
2 Cell, довольно неплохо RRD прикрутил, твой скрипт берет из SQL базы stg или файла?

У меня из файла, но никакой проблемы сделать sql запрос к базе данных вместо того чтобы парсить файл я не вижу ))) Если интересно, могу в кратце рассказать как все прикручивается. Единственный минус - что все делается руками, поэтому абсолютно не подходит для большого количества юзеров. Вернее об автоматизации процесса я просто не думал ))

Опубліковано:

Создаем базу rrd:

rrdtool create /var/rrdtool/90.100.rrd --step 300 DS:input:COUNTER:600:0:600000 DS:output:COUNTER:600:0:600000 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

где 90.100.rrd - имя файла базы (для удобства так названо)

Далее пишем скрипт для заполнения этой базы:

#=================10.20.90.100========================
D0=`cat /var/stargazer/users/NAME/stat | grep D0 | cut -d"=" -f2`
D1=`cat /var/stargazer/users/NAME/stat | grep D1 | cut -d"=" -f2`
D2=`cat /var/stargazer/users/NAME/stat | grep D2 | cut -d"=" -f2`
D3=`cat /var/stargazer/users/NAME/stat | grep D3 | cut -d"=" -f2`
U0=`cat /var/stargazer/users/NAME/stat | grep U0 | cut -d"=" -f2`
U1=`cat /var/stargazer/users/NAME/stat | grep U1 | cut -d"=" -f2`
U2=`cat /var/stargazer/users/NAME/stat | grep U2 | cut -d"=" -f2`
U3=`cat /var/stargazer/users/NAME/stat | grep U3 | cut -d"=" -f2`
let "inbytes=D0+D1+D2+D3"
let "outbytes=U0+U1+U2+U3"
/usr/bin/rrdtool update /var/rrdtool/90.100.rrd  N:$inbytes:$outbytes
#====================================================

Где количество строк D и U равняется количеству направлений (или то что надо показывать вобщем т.к. в итоге все складывается)

Ну и последнее - нарисовать картинку:

#!/bin/sh
# Рисуем графики по анлимитным юзерам
export LANG=ru_RU.CP1251
export LC_ALL=
WWWPREFIX=/var/www/stat
RRDPREFIX=/var/rrdtool

#=========================10.20.90.100=======================================

/usr/bin/rrdtool  graph  $WWWPREFIX/day_90_100.png --width 800 --start -1d \
--end now --title "Загрузка канала для IP 10.20.90.100" \
DEF:inoctets=$RRDPREFIX/90.100.rrd:input:AVERAGE \
DEF:outoctets=$RRDPREFIX/90.100.rrd:output:AVERAGE \
"CDEF:inbits=inoctets,8,*" "CDEF:outbits=outoctets,8,*" \
VDEF:sumin=inbits,TOTAL \
VDEF:sumout=outbits,TOTAL \
VDEF:avgin=inbits,AVERAGE   \
AREA:inbits#00FF00:"Принято" \
LINE1:avgin#FF0000      \
GPRINT:sumin:"Sum=%lf%s"         \
LINE1:outbits#0000FF:"Отправлено" \
GPRINT:sumout:"Sum=%lf%s" \
GPRINT:avgin:"Средняя загрузка =%lf%s"
#============================================================================

 

Где -1d время за которое рисовать график (1 день) 1m - месяц, 1y - один год ))

day_90_100.png - имя создаваемого рисунка

 

Далее скрипты засовываются в крон - обновление счетчика на срабатывание через каждые 5 минут (это важно! т.к. база rrd создана под этот параметр) и скрипт рисования графика - как будет душе угодно ))))

 

А дальше уже простой html - думаю все справятся сами.

Опубліковано:
ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

а можно про Bandwidth поподробней? :)

Уменя "Bandwidthd" прекрасно работает главное его с PostgreSQL настроить.

Опубліковано:

Имхо для графиков к конечному абоненту кроме загрузки канала во временном интервале больше ничего не нужно, потому большая фунциональность как бы не требуется.

Для загрузки процессора, памяти и прочего на роутере лучше использовать cacti, хотя опять же, это не панацея...

Опубліковано:

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

Опубліковано:
попробыва, неполучилось, хочю заюзать то что предложил Cell довольно неплохо получается.... но вот проблемка как получить ети данные, гдето видил пример но где найти немогу..

Ну чем я могу помочь так это тем что запрос будет выглядеть вот так:

SELECT `U0` , `D0` , `U1` , `D1` , `U2` , `D2` , `U3` , `D3` , `U4` , `D4` 
FROM `stat` 
WHERE `login` LIKE 'user'

где user - это логин вашего юзера для которого вы делаете выборку

  • 1 month later...
Опубліковано:

все хорошо научился получать данные но вот проблемка график рисовать не хочет.... если руками запускать то все ок.

Заметил еще одно что данные нада брать с базы только тогда когда они записываются, тоесть если на конфиге стоит раз в 15 минут их туда писать то нада получтаь их раз в 16 минут.... руками запускаю скрипт то все ок работает график рисует а вот по крону не получается нарисовать у него в чем может быть проблемка?

зделал все как Cell писал вышке

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    • Немає користувачів, що переглядають цю сторінку.
×
×
  • Створити нове...