rtrt Posted February 12, 2008 at 12:39 PM Posted February 12, 2008 at 12:39 PM Кто может подсказать, возможна ли связка? Допустим чтобы смотреть графики всех абонентов(не одновременно, а по выбору). Спасибо!
fredik Posted February 12, 2008 at 02:24 PM Posted February 12, 2008 at 02:24 PM ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая
Neelix Posted February 12, 2008 at 03:46 PM Posted February 12, 2008 at 03:46 PM та и мртг тож немало валит, когда то хотел тоже сделать на мртг графики для каждого юзера, но представь когда тысячу пользователей будет перекидывать каждые 5 минут с учетом того. что данных немало в логах
napTu Posted February 12, 2008 at 04:25 PM Posted February 12, 2008 at 04:25 PM у меня рисовало на 50юзерах, правда данные с ipfw я брал. далее убрал из-за тормозов
Cell Posted February 12, 2008 at 06:30 PM Posted February 12, 2008 at 06:30 PM у меня реализовано для 20 человек (тех кто юзает анлимит). Вобщем-то не очень сложно, но юзаю не mrtg а rrdtool Выглядит вот так для одного юзера: Для всей сети вот так: Для сети, трафик снимается с интерфейса, а для каждого юзера еще проче - маленьким скриптом прямо из базы stg )))) Пересчитывается все это у меня раз в 5 минут по крону, рисунки рисуются раз в 15 минут тоже по крону - поэтому количество просмотров не очень то влияет на загрузку самого сервера.
BABAY Posted February 12, 2008 at 06:50 PM Posted February 12, 2008 at 06:50 PM А ещё можно скриптом снимать счетчики с правил фаервола, пихать это все в базу. А на другом сервачке рисовать графики.
Колян Posted February 12, 2008 at 09:07 PM Posted February 12, 2008 at 09:07 PM А детейлстат не база? Ну так юзать ее для рисования, есть мод в алферовской одминке для этого, чтобы юзверь графег видел.
911 Posted February 12, 2008 at 09:21 PM Posted February 12, 2008 at 09:21 PM ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая а можно про Bandwidth поподробней?
Cell Posted February 12, 2008 at 09:30 PM Posted February 12, 2008 at 09:30 PM ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая а можно про Bandwidth поподробней? Можно, ставил я его. Никому не советую. Графики не красивые, не точные, не информативные, показывают цену на кукурузу в Африке в засушливый год. Кроме всего прочего работает эта шняга как демон, и грузит соответсвенно проц. Дисковое пространство занимается безбашенными логами под это дело и в конце концов игра перестает стоить свечь. В отличие от этого RRDTOOL имеет для каждого графика файловую базу строго определенного размера (сейчас не помню сколько килобайт) которая не зависит от времени, за которое ризуется график и сколько там данных отображается. Все это происходит благодаря хитрому алгоритму работы этой утилиты и хитрому формату этой базы.
Cell Posted February 12, 2008 at 09:37 PM Posted February 12, 2008 at 09:37 PM А детейлстат не база? Ну так юзать ее для рисования, есть мод в алферовской одминке для этого, чтобы юзверь графег видел. По деталстатам выборки делать тупо бо это сильно нагружает базу запросами. Т.к. таблицы даталстатов безбашенного размера, то и нагрузочка на мускул получается нехилая. Я помница какой-то график прикручивал к stg-web но получилось не очень красиво бо мну не очень хорошо програмирует на php (вернее почти никак) и Алферов продинамил эту тему. Ко всему прочему как быть тем кто юзает файловую базу? - поверьте, таких большинство т.к. с мускулем работа еще не стабильна и находится скорее в бетта тестироватии чем в реальной эксплуатации.
Neelix Posted February 13, 2008 at 09:31 PM Posted February 13, 2008 at 09:31 PM 2 Cell, довольно неплохо RRD прикрутил, твой скрипт берет из SQL базы stg или файла?
Cell Posted February 13, 2008 at 09:49 PM Posted February 13, 2008 at 09:49 PM 2 Cell, довольно неплохо RRD прикрутил, твой скрипт берет из SQL базы stg или файла? У меня из файла, но никакой проблемы сделать sql запрос к базе данных вместо того чтобы парсить файл я не вижу ))) Если интересно, могу в кратце рассказать как все прикручивается. Единственный минус - что все делается руками, поэтому абсолютно не подходит для большого количества юзеров. Вернее об автоматизации процесса я просто не думал ))
point Posted February 13, 2008 at 10:37 PM Posted February 13, 2008 at 10:37 PM напиши в краце если руки дойдут автоматизацию присобачу
Cell Posted February 14, 2008 at 06:02 AM Posted February 14, 2008 at 06:02 AM Создаем базу 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 - думаю все справятся сами.
S_ergey Posted February 14, 2008 at 10:16 AM Posted February 14, 2008 at 10:16 AM ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая а можно про Bandwidth поподробней? Уменя "Bandwidthd" прекрасно работает главное его с PostgreSQL настроить.
Max Posted February 14, 2008 at 11:43 AM Posted February 14, 2008 at 11:43 AM а я ваще какти прикрутил, зато получился отдельный центр управления сетью.
Maxxx Posted February 14, 2008 at 09:17 PM Posted February 14, 2008 at 09:17 PM Можно, уважаемый тезка, с этого места подробнее?
fredik Posted February 14, 2008 at 10:10 PM Posted February 14, 2008 at 10:10 PM прога называется cacti ТЫЦЬ
den68 Posted February 14, 2008 at 11:15 PM Posted February 14, 2008 at 11:15 PM Можно, уважаемый тезка, с этого места подробнее? Лучше тогда netmond - это намного более функционально...
Neelix Posted February 15, 2008 at 08:47 AM Posted February 15, 2008 at 08:47 AM Имхо для графиков к конечному абоненту кроме загрузки канала во временном интервале больше ничего не нужно, потому большая фунциональность как бы не требуется. Для загрузки процессора, памяти и прочего на роутере лучше использовать cacti, хотя опять же, это не панацея...
fredik Posted February 19, 2008 at 12:31 PM Posted February 19, 2008 at 12:31 PM кто подскажет как получить данные о D0 D1 U0 U1 с базы мускуля...
Колян Posted February 19, 2008 at 12:41 PM Posted February 19, 2008 at 12:41 PM В темке веб админка от алферова, там на 3-й или 4-й страничке есть мод для нее с графиками. строит графики на странице юзеров.
fredik Posted February 19, 2008 at 01:15 PM Posted February 19, 2008 at 01:15 PM попробыва, неполучилось, хочю заюзать то что предложил Cell довольно неплохо получается.... но вот проблемка как получить ети данные, гдето видил пример но где найти немогу..
Cell Posted February 19, 2008 at 06:27 PM Posted February 19, 2008 at 06:27 PM попробыва, неполучилось, хочю заюзать то что предложил Cell довольно неплохо получается.... но вот проблемка как получить ети данные, гдето видил пример но где найти немогу.. Ну чем я могу помочь так это тем что запрос будет выглядеть вот так: SELECT `U0` , `D0` , `U1` , `D1` , `U2` , `D2` , `U3` , `D3` , `U4` , `D4` FROM `stat` WHERE `login` LIKE 'user' где user - это логин вашего юзера для которого вы делаете выборку
fredik Posted March 29, 2008 at 08:06 PM Posted March 29, 2008 at 08:06 PM все хорошо научился получать данные но вот проблемка график рисовать не хочет.... если руками запускать то все ок. Заметил еще одно что данные нада брать с базы только тогда когда они записываются, тоесть если на конфиге стоит раз в 15 минут их туда писать то нада получтаь их раз в 16 минут.... руками запускаю скрипт то все ок работает график рисует а вот по крону не получается нарисовать у него в чем может быть проблемка? зделал все как Cell писал вышке
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now