URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 58649
[ Назад ]

Исходное сообщение
"Помогите с подсчетом траффика"

Отправлено aleks , 27-Июл-05 21:03 
доброго времени суток
возник вопрос о подсчете траффика, поискал я по форуму, но у всех программ есть свои минусы, так какую же выбрать?
чтобы не теряла мегабайты и не перезагружала сервер
спасибо за ответы

Содержание

Сообщения в этом обсуждении
"Помогите с подсчетом траффика"
Отправлено teebot , 27-Июл-05 23:27 
>доброго времени суток
>возник вопрос о подсчете траффика, поискал я по форуму, но у всех
>программ есть свои минусы, так какую же выбрать?
>чтобы не теряла мегабайты и не перезагружала сервер
>спасибо за ответы

ну а ОС какая?

ИМХО ng_netflow под БСД красивый модуль.


"Помогите с подсчетом траффика"
Отправлено aleks , 27-Июл-05 23:30 
>>доброго времени суток
>>возник вопрос о подсчете траффика, поискал я по форуму, но у всех
>>программ есть свои минусы, так какую же выбрать?
>>чтобы не теряла мегабайты и не перезагружала сервер
>>спасибо за ответы
>
>ну а ОС какая?
>
>ИМХО ng_netflow под БСД красивый модуль.


простите забыл :-/
FreeBSD 4.`11


"Помогите с подсчетом траффика"
Отправлено aliv , 28-Июл-05 09:06 
>>>доброго времени суток
>>>возник вопрос о подсчете траффика, поискал я по форуму, но у всех
>>>программ есть свои минусы, так какую же выбрать?
>>>чтобы не теряла мегабайты и не перезагружала сервер
>>>спасибо за ответы
>>
>>ну а ОС какая?
>>
>>ИМХО ng_netflow под БСД красивый модуль.
>
>
>простите забыл :-/
>FreeBSD 4.`11

я считаю по счетчикам ipfw
написал правила для каждого интерфейса,
скриптом на perl снимаю данные и засовываю их в mysql каждые 10 мин. по cron. В случае перезагрузки (что вообще то не бывает) теряються данные
максимум за 10 мин.
ну и на php небольшая програмка для связки с web
расхождения с данными провайдера меньше 1%


"Помогите с подсчетом траффика"
Отправлено aleks , 28-Июл-05 19:11 
>>>>доброго времени суток
>>>>возник вопрос о подсчете траффика, поискал я по форуму, но у всех
>>>>программ есть свои минусы, так какую же выбрать?
>>>>чтобы не теряла мегабайты и не перезагружала сервер
>>>>спасибо за ответы
>>>
>>>ну а ОС какая?
>>>
>>>ИМХО ng_netflow под БСД красивый модуль.
>>
>>
>>простите забыл :-/
>>FreeBSD 4.`11
>
>я считаю по счетчикам ipfw
>написал правила для каждого интерфейса,
>скриптом на perl снимаю данные и засовываю их в mysql каждые 10
>мин. по cron. В случае перезагрузки (что вообще то не бывает)
>теряються данные
>максимум за 10 мин.
>ну и на php небольшая програмка для связки с web
>расхождения с данными провайдера меньше 1%
а не трудно будет поделиться скриптами? или хотя бы идеей
спасибо за ответы :)


"Помогите с подсчетом траффика"
Отправлено Moralez , 29-Июл-05 05:14 
Простите, но это фигня полная. Статистика должна быть такой, чтобы в случае чего можно было посмотреть что именно и когда скачивали. Иначе тебя в первый же раз юзеры пошлют и ты пойдёшь...

Не знаю как ng_netflow, но скорее всего да и точно ng_ipacct - наше всё...


"Помогите с подсчетом траффика"
Отправлено satelit , 29-Июл-05 10:21 
А тебе надо биллинг или просто учет?


"Помогите с подсчетом траффика"
Отправлено aljil , 29-Июл-05 15:48 
Насчет идеи - ну легковеснее чем вот так, я лично не придумал:

А) локальный интерфейс, по которому надо считать траффик:

1) скриптик:
#!/bin/sh
myinterface='тут имя нужного интерфейса'
mylog='тут путь к логу'
# пишем в лог число принятых\отправленных через интерфейс байт
echo `date +%Y/%m/%d/-%H:%M:%S`' '\
`netstat -I ${myinterface} -b \
| grep 'Link' | tr -s ' ' | cut -f 7,10 -d ' '` \
>> ${mylog}
2) шедулишь в крон раз в минуту
3) имеешь поминутную статистику пробежавших через интерфейс байтов (с нарастанием)

Б) Удаленный SNMP-aware интерфейс:

1) ставишь себе netsnmp
2) читаешь такую же статистику через snmpbulkget (OIDs ifInOctets & ifOutOctets из стандартного IF-MIB в комплекте netsnmp) или snmpnetstat простейшим скриптиком из того же крона и с той же частотой. На ходу сочинять скриптец облом, уж не взыщи, но чет типа вот такого (это работает с киской):
...
# Сбор SNMP-статистики интерфейсов

# Получим кол-во интерфейсов
mymaxint=`${SNMPBINDIR}/snmpbulkget \
-c ${mycommunity} -v${mysnmpver} -Cr1 ${myrouter} \
ifNumber | cut -f 4 -d ':' | tr -d ' ' | tr -d "\n"`
# получим имена интерфейсов
${SNMPBINDIR}/snmpbulkget \
-c ${mycommunity} -v${mysnmpver} -Cr${mymaxint} ${myrouter} \
ifDescr | cut -f 4 -d ':' | tr -d ' ' > ${BASE}/data/${mypid}.1
# получим кол-во принятых байтов
${SNMPBINDIR}/snmpbulkget \
-c ${mycommunity} -v${mysnmpver} -Cr${mymaxint} ${myrouter} \
ifInOctets | cut -f 4 -d ':' | tr -d ' ' > ${BASE}/data/${mypid}.2
# получим кол-во переданных байтов
${SNMPBINDIR}/snmpbulkget \
-c ${mycommunity} -v${mysnmpver} -Cr${mymaxint} ${myrouter} \
ifOutOctets | cut -f 4 -d ':' | tr -d ' ' > ${BASE}/data/${mypid}.3
# получим текущий статус интерфейсов
${SNMPBINDIR}/snmpbulkget \
-c ${mycommunity} -v${mysnmpver} -Cr${mymaxint} ${myrouter} \
ifOperStatus | cut -f 4 -d ':' | cut -f 1 -d '(' | tr -d ' ' \
> ${BASE}/data/${mypid}.4

# построим файл данных

paste -d ' ' \
${BASE}/data/${mypid}.1 \
${BASE}/data/${mypid}.2 \
${BASE}/data/${mypid}.3 \
${BASE}/data/${mypid}.4 > ${BASE}/data/mydata.tmp.${mypid}
...
и далее попарсить файл на предмет нужного имени интерфейса и т.д.
3) имеешь аналогичную поминутную статистику пробежавших через интерфейс байтов (с нарастанием)

Для обоих вариантов:
4) парсишь лог чем, когда и как тебе удобно
5) если хоцца ГУИ, рисуешь картинку ну хоть с помощью fly и подсовываешь апачу.

Весит - копейки, также грузит систему. И сам себе констрюктор ;-)