В Traffic показывает только в течении нескольких минут, как бы посмотреть в течении хотя бы суток?
Объявление
Свернуть
Пока нет объявлений.
Как в RouterOS 5,16 посмотреть график активности пользователя в течении суток?
Свернуть
X
-
Решил всё-таки выложить скрипт для общего доступа, но с некоторыми замечаниями.
Внимание! Примечания в конце поста читать обязательно! Чтобы потом не было вопросов "А почему у меня роутер виснет?", или претензий типа "За неделю сгорела флешка!!!"
Первый скрипт предназначен для начальной конфигурации. Запускается однократно либо в отдельных случаях, о которых далее.
Скрипт подсчитывает количество Simple Queues на роутере и для каждой очереди создает файл вида statsXX.txt, где XX - порядковый номер очереди (в Микротике считается с 0, а не с 1).
Код::local allQ; :local currQ; /queue simple :set allQ [/queue simple print count-only]; :for currQ from 0 to ($allQ -1) do={ /file print file="stats$currQ.txt"; }
Следующий скрипт должен запускаться однократно после первого и используется каждый раз, когда вам нужно очистить файлы статистики. Собственно он и предназначен для очистки всей информации в этих файлах, не удаляя сами файлы.
Код::local allQ; :local currQ; /queue simple :set allQ [/queue simple print count-only]; :for currQ from 0 to $allQ do={ /file set "stats$currQ.txt" contents=""; }
И основной скрипт, который собирает статистику, приводит в нужный формат, пишет в файлы. А сами счетчики обнуляет.
Запускать его можно как вручную (получите статистику с момента последнего запуска скрипта или последней перезагрузки Микротика), так и через Sheduler для постоянного сбора статистики.
Код::local allQ; :local trafQ; :local currQ 0; :local fileContent; :local fileContentN; :local curDate; :local curTime; :local curDateF; :local curMonth; :local curDay; :local curYear; :set curDate [/system clock get date]; :set curMonth [:pick [:tostr $curDate] 0 3]; :set curDay [:pick [:tostr $curDate] 4 6]; :set curYear [:pick [:tostr $curDate] 7 11]; :set curTime [/system clock get time]; :set curDateF ($curDay . "-" .$curMonth ."-" .$curYear ."/" . $curTime); :set allQ [/queue simple print count-only]; :for n from 0 to $allQ do={ /queue simple :set trafQ [get $currQ bytes]; :set fileContentN [/file get "stats$currQ.txt" contents]; :set fileContent ($fileContentN .$curDateF ."/" . $trafQ . "\r\n"); /queue simple reset-counters $currQ; /file set "stats$currQ.txt" contents=$fileContent; :set currQ ($currQ +1); };
Содержимое файла:
Код:01-may-2014/18:41:07/5985579/83133676 01-may-2014/18:42:59/4690912/62938900 01-may-2014/18:57:53/19556192/453429365 01-may-2014/19:11:17/17579439/377639995
Особенности использования.
Если у вас меняется конфигурация Simple Queues, (например, добавили новое правило, удалили ненужное и т.п.) то необходимо отключить скрипт в планировщике (если включен), удалить все файлы stats*.txt и заново запустить первую и вторую части скрипта. При этом вся статистика будет потеряна, так что если нужна - копируйте на комп или в другое место.
Примечания. Читать обязательно и внимательно!
1. Разработчики не дураки и не зря сами не стали делать сбор статистики на флеш-памяти. Поскольку флеш имеет ограниченное количество циклов записи, и при активном использовании подобных скриптов может быстро выйти из строя. Лично я не рекомендую использовать этот (или подобные) скрипты чаще, чем раз в сутки. В крайнем случае раз в час, если очень надо.
А вообще такие вещи желательно делать через API, The Dude или биллинг. Если уж иначе никак, тогда хотя-бы пишите статистику на внешнюю флешку.
2. Скрипт довольно ресурсоемкий, если у вас на роутере мало свободной памяти или высокая загрузка процессора - использовать этот скрипт не рекомендую.
3. Этот скрипт фактически является заготовкой, в постоянной работе не тестировался, только был несколько десятков раз прогнан для отладки на RouterOS 6.12. Возможны баги и не совсем корректная работа на разных версиях RouterOS.
4. Скрипт сделан по просьбе форумчан, специально для LAN23.ru, если будут замечены баги - возможно исправлю, а дорабатывать, расширять возможности или адаптировать под чьи-то нужды не планирую. Так что считайте, что "as is".
Комментарий
Комментарий