Jump to content

Stg+mrtg


Recommended Posts

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

c7e188518a34.png

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

a58567b50c8e.png

 

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites
ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

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

Link to post
Share on other sites
ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

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

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

Link to post
Share on other sites
А детейлстат не база? Ну так юзать ее для рисования, есть мод в алферовской одминке для этого, чтобы юзверь графег видел.

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

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

Link to post
Share on other sites
2 Cell, довольно неплохо RRD прикрутил, твой скрипт берет из SQL базы stg или файла?

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

Link to post
Share on other sites

Создаем базу 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 - думаю все справятся сами.

Link to post
Share on other sites
ну мртг рисует общий график на интерфейс а вот Bandwidth может рисовать свой график для каждого айпи... но и нагрузка на сервер тоже идет соответсвующая

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

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

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

Link to post
Share on other sites
  • 1 month later...

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

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

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

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...