Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
-
- Сообщения: 9
- Зарегистрирован: 20 ноя 2020, 18:41
Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Всем привет.
Нашла у вас на форуме этот скрипт, но для моих нужд этого мало.
Мне нужно чтоб заданный трафик не превышал недельный период и нужно не только дальнейшее ограничение скорости, но и оповещение на мыло.
На этом же форуме нашла вот этот скрипт, он отсылает оповещение на телеграмм о входе и выходе с микротика.
Поскольку я новенькая в данном деле, мои познания мизерны, и готова финансово отблагодарить за создание такого скрипта, который бы резал скорость и отправлял уведомления на почту с дублированием в телеграмм.
Для удобства оставляю свой телеграмм: @DianaKulik
Нашла у вас на форуме этот скрипт, но для моих нужд этого мало.
Мне нужно чтоб заданный трафик не превышал недельный период и нужно не только дальнейшее ограничение скорости, но и оповещение на мыло.
На этом же форуме нашла вот этот скрипт, он отсылает оповещение на телеграмм о входе и выходе с микротика.
Поскольку я новенькая в данном деле, мои познания мизерны, и готова финансово отблагодарить за создание такого скрипта, который бы резал скорость и отправлял уведомления на почту с дублированием в телеграмм.
Для удобства оставляю свой телеграмм: @DianaKulik
-
- Сообщения: 9
- Зарегистрирован: 20 ноя 2020, 18:41
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Мда, завязла я даже в этом скрипте...
Нужно ограничить по обьёму подсеть, от 3 до 229 айпишника. Для теста ограничение поставила 100 Мб.
Вписываю скрипт в терминал и шедулер и ничего не меняется.
качает торент на максимальной скорости до упора.
Подскажите что не так ?
версия 6.46
скрин:
https://prnt.sc/vnavrh
скрипт:
:local traf;
/queue simple
:for i from=3 to= 229 do = {
:if ([/queue simple find target-addresses=("192.168.5." . $i)] != "") do={
:set traf [get [find target-addresses=("192.168.5." . $i)] total-bytes]
:if ($traf > 104857600) do = {
set [find target-addresses=("192.168.5." . $i)] max-limit= 64000/64000
}
}
}
Нужно ограничить по обьёму подсеть, от 3 до 229 айпишника. Для теста ограничение поставила 100 Мб.
Вписываю скрипт в терминал и шедулер и ничего не меняется.
качает торент на максимальной скорости до упора.
Подскажите что не так ?
версия 6.46
скрин:
https://prnt.sc/vnavrh
скрипт:
:local traf;
/queue simple
:for i from=3 to= 229 do = {
:if ([/queue simple find target-addresses=("192.168.5." . $i)] != "") do={
:set traf [get [find target-addresses=("192.168.5." . $i)] total-bytes]
:if ($traf > 104857600) do = {
set [find target-addresses=("192.168.5." . $i)] max-limit= 64000/64000
}
}
}
-
- Сообщения: 562
- Зарегистрирован: 14 апр 2018, 15:21
- Откуда: СССР
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Во первых, если используется fasttrack - то симпл не работает, так что надо начинать с простейших настроек самого микротика
Второе, Может проще поставить какой-нить биллинг для подсчёта траффика и управления?
Второе, Может проще поставить какой-нить биллинг для подсчёта траффика и управления?
Дома: CCR2004 (7-ISP(GPON)белый IP)
-
- Сообщения: 562
- Зарегистрирован: 14 апр 2018, 15:21
- Откуда: СССР
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Код: Выделить всё
:global done
:set done false
:global x
:set x 299
while (!$done) do={
:local checkip [/ping "192.168.7.$x" count=1]
:if (checkip != 0) do={
/queue simple add comment=192.168.7.$x name=192.168.7.$x target=192.168.7.$x parent=none packet-marks="" priority=5/5 queue=default-small/default-small limit-at=5120k/5120k max-limit=5120k/5120k burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s bucket-size=0.1/0.1;
/tool fetch address=api.telegram.org url="https://api.telegram.org/botTOKEN/sendmessage\?chat_id=@YOUR_CHAT_ID&text=YOURTEXT_HERE" keep-result=no;
}
:set x ($x+1)
:if ($x=9) do= {:set done true}
}
ваша задача не для скрипта микротика, а именно для биллинговой системы, стандартными средствами сделать можно, но вы не представляете себе что это будет за скрипт (из скольки частей он будет состоять), так как в микротике есть ограничение на объём одного скрипта, равный 4k
Дома: CCR2004 (7-ISP(GPON)белый IP)
-
- Сообщения: 4089
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Поддерживаю идею билинга. Может, хотя бы в сторону какого-нибудь встроенного UserManager посмотреть, совместив его с HotSpot?..
-
- Сообщения: 9
- Зарегистрирован: 20 ноя 2020, 18:41
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Я понимаю что микротик не для билинга. И не нужен он мне на микротике, вообще не нужен.
Моя задача быстро узнать когда аплоуд пользователя превысил 3-4 гига. Саму почту тоже не получилось мне настроить в микротике.
Уведомления должны приходить только мне, по почте и желательно в телеграмм, чтоб быстро среагировать на это превышение в ручную, главное чтоб скорость упала в мизер, чтоб пользователь не успел все скачать до моего вмешательства.
В микротике настроен только нат , DHCP , проброс портов для RDP и задача queue которая режет канал при включении скачки больших файлов, но на время тестов она выключена.
Моя задача быстро узнать когда аплоуд пользователя превысил 3-4 гига. Саму почту тоже не получилось мне настроить в микротике.
Уведомления должны приходить только мне, по почте и желательно в телеграмм, чтоб быстро среагировать на это превышение в ручную, главное чтоб скорость упала в мизер, чтоб пользователь не успел все скачать до моего вмешательства.
В микротике настроен только нат , DHCP , проброс портов для RDP и задача queue которая режет канал при включении скачки больших файлов, но на время тестов она выключена.
-
- Сообщения: 562
- Зарегистрирован: 14 апр 2018, 15:21
- Откуда: СССР
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Так подождите, у вас задача не корректная
Во первых, счётчики сбросятся во время ребута (где вы будете хранить информацию?) скриптом в комментах через глобальные переменные - не вариант. Так как это вызывает нагрузку на сам микротик.
Далее, какой интерфейс вы хотите считать (в задаче этого нет)?
Количество пользователей?
Способ подключения пользователей?
Версия ROS? это тоже влияет на скрипты
Что именно в нате? Что в фаерволе? сделайте /export file=blah hide-sensitive и выложите сюда
сделайте вручную ограничение на simple queue и проверьте, работает или нет
Поймите, что контроль за траффиком и включение ограничений - это НЕ задача микротика, даже скриптами, этим просто обязан заниматься сторонний сервер
Что касается отправки на e-mail, какую ошибку пишет? Проходит ли тестовое сообщение?
Начинаем с малого, включаем ограничение скорости, потом будем думать за объём
Во первых, счётчики сбросятся во время ребута (где вы будете хранить информацию?) скриптом в комментах через глобальные переменные - не вариант. Так как это вызывает нагрузку на сам микротик.
Далее, какой интерфейс вы хотите считать (в задаче этого нет)?
Количество пользователей?
Способ подключения пользователей?
Версия ROS? это тоже влияет на скрипты
Что именно в нате? Что в фаерволе? сделайте /export file=blah hide-sensitive и выложите сюда
сделайте вручную ограничение на simple queue и проверьте, работает или нет
Поймите, что контроль за траффиком и включение ограничений - это НЕ задача микротика, даже скриптами, этим просто обязан заниматься сторонний сервер
Что касается отправки на e-mail, какую ошибку пишет? Проходит ли тестовое сообщение?
Начинаем с малого, включаем ограничение скорости, потом будем думать за объём
Дома: CCR2004 (7-ISP(GPON)белый IP)
-
- Сообщения: 9
- Зарегистрирован: 20 ноя 2020, 18:41
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Речь идёт о виртуальных машинах и MikroTik CHR. Все они расположены на сервере который находится в Дата-центре, так что перезагрузки исключаем, и даже если будет одна в год, это не критично.Sir_Prikol писал(а): ↑22 ноя 2020, 11:59 Во первых, счётчики сбросятся во время ребута (где вы будете хранить информацию?) скриптом в комментах через глобальные переменные - не вариант. Так как это вызывает нагрузку на сам микротик.
В микротике только 2 интерфейса, ether1 - WAN, ether2 - Lan. Интересует аплоуд с ether2 - Lan, но можно считать и входящий, чтоб не усложнять...Sir_Prikol писал(а): ↑22 ноя 2020, 11:59 Далее, какой интерфейс вы хотите считать (в задаче этого нет)?
Весь диапазон локальной сети.
Версия 6.46 (stable)
там стоит уже одно ограничение на скачку торентов queue-burst-limit и оно работает.Sir_Prikol писал(а): ↑22 ноя 2020, 11:59 Что именно в нате? Что в фаерволе? сделайте /export file=blah hide-sensitive и выложите сюда
сделайте вручную ограничение на simple queue и проверьте, работает или нет
Видимо скрипты что я нашла у вас на форуме не работали и за того что нет этого ограничения... но нигде не написано про него, все подразумевают что здесь крутятся одни спецы, за новичков не подумали. Я не знаю с какими параметрами и как сделать это ограничение, где прочитать.
Даже тестовое не проходит, везьде параметры настройки расписаны по разному, испытала всё что нашла, тестовое сообщение не ушло. Нужно настроить на gmail, где посмотреть актуальные, правильные настройки ?Sir_Prikol писал(а): ↑22 ноя 2020, 11:59 Что касается отправки на e-mail, какую ошибку пишет? Проходит ли тестовое сообщение?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 4089
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
На форуме практически нет готовых скриптов, здесь обсуждают сторонние, поэтому нет ничего удивительного в том, что полную инструкцию никто не публикует, а просто задаёт конкретные вопросыDiana писал(а): ↑24 ноя 2020, 13:32 Видимо скрипты что я нашла у вас на форуме не работали и за того что нет этого ограничения... но нигде не написано про него, все подразумевают что здесь крутятся одни спецы, за новичков не подумали. Я не знаю с какими параметрами и как сделать это ограничение, где прочитать.
С какими параметрами - я вам в соседней теме написал; параметры, на которые скрипт не обращает внимания, могут быть произвольными.
-
- Сообщения: 562
- Зарегистрирован: 14 апр 2018, 15:21
- Откуда: СССР
Re: Ограничение пользователя по объему трафика c уведомлением на почту и телеграмм
Вышенаписавший топикпастер прав, целые скрипты не выкладываются по многим причинам, тот что вы дёрнули из моего поста - это одна тридцатая часть всего скрипта, не работал кусок кода, запросил сообщество, поправили вместе.
Теперь по теме
С gmail проблема, он сейчас параноик, я от него постепенно отказываюсь в скриптах, так как блокирует отправку. Пришлось уйти на mail.ru для сервисных емайлов (да и ни где вы не указали как вы отсылаете на гмайл)
Отошлёт спокойно, при полностью настроенном /tool e-mail
Если не хотите держать настройки, то чтобы отослать надо будет использовать следующую строчку:
Но, повторюсь, у гмайла проблема с паранойей
Теперь по моему основному вопросу, я скинул скрипт создания симпла, из него можно выдрать нужное и создать вручную, будет-ли работать? В вашей выгрузке нет ни одного нормального симпла для проверки. Вместо того что-бы дефолтные править - надо создать свои и оперировать с ними
А теперь сами коды
Это мы прописали ограничение в 5 мегабит на каждую очередь
Это в дереве ограничили любое подключение на 1 мегабит
Это мы пометили траффик нашей сети для ограничения
А это мы прописали нашу подсеть, которую ограничиваем
Настраиваем и проверяем, так как вам надо ограничить ВСЮ сеть, то симплы вам не нужны, вам будет достаточно дерева
P.S. Все выдержки настроек взяты с продакшена, работает без проблем
Теперь по теме
С gmail проблема, он сейчас параноик, я от него постепенно отказываюсь в скриптах, так как блокирует отправку. Пришлось уйти на mail.ru для сервисных емайлов (да и ни где вы не указали как вы отсылаете на гмайл)
Код: Выделить всё
/tool e-mail send [email protected] subject=Current_RouterOs body=Tra-ta-tal
Если не хотите держать настройки, то чтобы отослать надо будет использовать следующую строчку:
Код: Выделить всё
/tool e-mail send from=User@Gmail to=E-mail@Poluchatelja server=smtp.gmail.com port=587 user=User@Gmail password=Gmail_Passwd start-tls=yes subject=Test_Subject body=Test_Body_Test_Here
Теперь по моему основному вопросу, я скинул скрипт создания симпла, из него можно выдрать нужное и создать вручную, будет-ли работать? В вашей выгрузке нет ни одного нормального симпла для проверки. Вместо того что-бы дефолтные править - надо создать свои и оперировать с ними
А теперь сами коды
Код: Выделить всё
/queue type
add kind=pcq name=public-wifi-download-5M pcq-classifier=dst-address \
pcq-dst-address6-mask=64 pcq-rate=5M pcq-src-address6-mask=64
add kind=pcq name=public-wifi-upload-5M pcq-classifier=src-address \
pcq-dst-address6-mask=64 pcq-rate=5M pcq-src-address6-mask=64
Код: Выделить всё
/queue tree
add name=Advertise_network parent=global
add name=Advertise_WiFi parent=Advertise_network
add limit-at=1M max-limit=2M name=upload packet-mark=Guest_UP parent=\
Advertise_WiFi
add limit-at=1M max-limit=2M name=download packet-mark=Guest_Down parent=\
Advertise_WiFi
Код: Выделить всё
add action=mark-packet chain=forward dst-address-list=Advertise_WiFi new-packet-mark=\
Guest_Down passthrough=yes
add action=mark-packet chain=forward new-packet-mark=Guest_UP passthrough=yes \
src-address-list=Advertise_WiFi
Код: Выделить всё
/ip firewall address-list
add address=192.168.5.0/24 list=Advertise_WiFi
Настраиваем и проверяем, так как вам надо ограничить ВСЮ сеть, то симплы вам не нужны, вам будет достаточно дерева
P.S. Все выдержки настроек взяты с продакшена, работает без проблем
Дома: CCR2004 (7-ISP(GPON)белый IP)