Подсчет трафика

Обсуждение оборудования и его настройки
bersek
Сообщения: 14
Зарегистрирован: 06 ноя 2013, 07:18

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


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

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


Есть интересная задача и бюджет? http://mikrotik.site
bersek
Сообщения: 14
Зарегистрирован: 06 ноя 2013, 07:18

ну это по своему как то не то. мне получается надо каждую минуту например писать в файл и скидывать, а потом считать(руками или же скриптом), просто думал может есть где то в недрах микроштыка галочка, или же команда, что б сохранял в свою "энергонезависимую" память :men:


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Чего считывать? Зачем считывать? Пожалуй только один раз когда счетчики обнулятся )))
Опять же это и есть энергонезависимая память ))


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

bersek писал(а):ну это по своему как то не то. мне получается надо каждую минуту например писать в файл и скидывать, а потом считать(руками или же скриптом), просто думал может есть где то в недрах микроштыка галочка, или же команда, что б сохранял в свою "энергонезависимую" память :men:

Конечно, после перезагрузки счетчики скинутся. Но для того и пишем в текстовый файл, чтобы потом оттуда брать данные для отчета.
Запускать скрипт каждую минуту - это по меньшей мере странно. Достаточно запуска один раз в сутки, чтобы снималась статистика за эти самые сутки. Даже если произойдет сброс, потеряете Вы статистику лишь максимум за одни сутки. Не так страшно, как кажется.
Если же Вам критична такая дельта, то Вам прямая дорога к отдельно стоящему серверу, ведущему подсчет в реальном времени. Дорого и качественно :-)
Я тоже делал наброски скрипта, хотел посмотреть алгоритм. В принципе, комментарии в первом приближении уже набросал. Теперь дело за обвязкой кодом. Если охота не пропадет (делаю всё из чистого любопытства), со временем возможно допишу...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Вот интересная фича выползает у меня при написании скрипта подсчета. Или баг, если угодно. Например, я хочу снять результаты с интерфейса ether2:

Код: Выделить всё

:put [/interface get [find name=ether2] rx-byte ]   
5715823

Никаких проблем не вижу, получаем какой-то там результат. Плюсуем его к нашему, это не проблема. Затем я хочу сбросить счетчики, это естественно, мне в следующее срабатывание нужно получить число байт за период времени между сработками скрипта.

Код: Выделить всё

interface ethernet reset-counters [find name=ether2

Нет проблем, всё сбрасываю, в Winbox видно, что счетчик на интерфейсе ether2 обнулился.
Но если я возьму результаты интерфейса опять командой:

Код: Выделить всё

:put [/interface get [find name=ether2] rx-byte ]
5982564

я получаю не сброшенный результат, счетчик продолжает считать с момента перезагрузки роутера.
Изображение
ЧЯДНТ?
Прямо заинтересовала меня этот косячок :-)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

а зачем счетчики обнулять каждый раз?


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ну а как? Смотри код:

Код: Выделить всё

:if ([/file get [/file find name=rx.txt] content]!="nil") do={/file set [/file find name=rx.txt] content=([/interface get [find name=ether2] rx-byte ] + [/file get [find name=rx.txt] content]);
:delay 2;
/interface ethernet reset-counters [find name=ether2];}   else={/file print file=rx.txt;
:delay 5;
/file set [/file find name=rx.txt] content=[/interface get [find name=ether2] rx-byte ];
:delay 2;
/interface ethernet reset-counters [find name=ether2];}
# То же tx
:if ([/file get [/file find name=tx.txt] content]!="nil") do={/file set [/file find name=tx.txt] content=([/interface get [find name=ether2] tx-byte ] + [/file get [find name=tx.txt] content]):
:delay 2;
/interface ethernet reset-counters [find name=ether2];}   else={/file print file=tx.txt;
:delay 5;
/file set [/file find name=tx.txt] content=[/interface get [find name=ether2] tx-byte ];
:delay 2;
/interface ethernet reset-counters [find name=ether2];}

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


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Ну а кто мешает вычислять разницу между текущими показаниями и предыдущими и разницу прибавлять к значению в файле?


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Мешает гипотетическая ситуация, когда роутер будет перезагружен. Тогда разница между предыдущими показаниями 45464654445 и получившимися после перезагрузки 87561 не будет отражать реальную картину...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить