Телеграмма для Mikrotik...

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Apollo22
Сообщения: 25
Зарегистрирован: 05 ноя 2022, 21:27

Sertik писал(а): 02 июл 2024, 14:37 Заманчивое предложение ... Brook будет писать :-)

Привет Sertik
Часть кода я и сам могу написать. Одному немного скучно этим заниматься.

Хоть мои знания в языках программирования не большие, но я все таки смог изменить Telegram Bot.


Аватара пользователя
Brook
Сообщения: 156
Зарегистрирован: 24 май 2022, 00:29

Apollo22 писал(а): 02 июл 2024, 13:48 У меня есть предложение давайте создадим облачный сервис для управления Mikrotik.
Это более перспективное направление. Плюс можно будет управлять несколькими роутерами одновременно.
Сам я это не осилю так как почти не знаю языков программирования.
Предложение интересное. Но тут надо считать. У самого когда-то были такие мысли. :-):

В процессе работы с ROS было замечено, что процесс изменения конфигураций можно относительно легко автоматизировать. Мы помним о том, что она умеет автоматически запускать скрипты, полученные по FTP. Используя это, можно и облачный сервис прикрутить.

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

В больших компаниях конфигурациями управляют с помощью Ansible. Это надежно и управляемо. Правда требует наличия компетенций и соответствующей инфраструктуры. Разворачивать ее только для управления Микротиками - это слишком жирно.

Чисто технически, ничего не мешает создать систему управления конфигурациями на самой ROS. Я даже проработал немного архитектуру и логику. К примеру одна из виртуалок выполняет роль сервера управления, куда стекаются конфигурации конечных устройств, на которых крутятся агенты. Агенты - это код в виде функций. Они могут собирать и обрабатывать данные, отправлять их на сервер или применять изменения, полученные с него.

В последний версиях 7 добавили удобную фичу. При изменении конфигурации в лог записывается информация об этом в виде кода. Это можно использовать для регистрации и передачи изменений на сервер.

Управление сервером реализовать через Winbox, CLI и Телегу. Я бы рассмотрел как проект, но чет мне кажется мало кто захочет сейчас вкладываться в такую разработку. Можно конечно заняться этим факультативно, но это растянется во времени до бесконечности. Хотя... Куда спешить? Если сообщество подключится, то почему бы и нет...

Делитесь мыслями на этот счет.


Apollo22
Сообщения: 25
Зарегистрирован: 05 ноя 2022, 21:27

Я вас прекрасно понимаю. Но телега удобна не для всех функций.
Я тут наткнулся на этот проект app.cloutik.com. Задумка хорошая но функций очень мало. И все реализовано посредством скриптов.
Вот по этому и захотелось создать что-то свое, так сказать со всеми хотелками.


Аватара пользователя
Brook
Сообщения: 156
Зарегистрирован: 24 май 2022, 00:29

Apollo22 писал(а): 03 июл 2024, 11:58 ...
Хоть мои знания в языках программирования не большие, но я все таки смог изменить Telegram Bot.
Очень радует, уважаемый Apollo22, что у Вас получилось разобраться с ботом. Надеюсь, в процессе узнали много интересного о методах работы с операционной системой.

Я, в свое время, вдохновился постом Chupakabra, где он опубликовал парсер JSON для Микротик. Целью стало изучить возможности встроенного языка. Оказалось, что они очень даже приличные, можно писать полноценные библиотеки, работать с памятью и потоками, реализовывать любую логику.

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

P.S. Жаль вот, что уважаемый Sertik так до него и не добрался, но уверен на то были свои причины.


Аватара пользователя
Brook
Сообщения: 156
Зарегистрирован: 24 май 2022, 00:29

Apollo22 писал(а): 04 июл 2024, 00:29 Я вас прекрасно понимаю. Но телега удобна не для всех функций.
Я тут наткнулся на этот проект app.cloutik.com. Задумка хорошая но функций очень мало. И все реализовано посредством скриптов.
Вот по этому и захотелось создать что-то свое, так сказать со всеми хотелками.
Согласен, Телега для мониторинга и оперативного управления, хотя туда можно вынести много полезного функционала. Для полноценного централизованного управления использовать Winbox или командную строку на управляющем хосте.

Хост может эмулировать работу клиентского устройства, загружая его конфигурацию. При изменении каких-то параметров на хосте, все изменения фиксируются и отправляются на клиента в виде коммита по команде.

Видел этот проект app.cloutik.com и тоже не понравилось.


Аватара пользователя
Brook
Сообщения: 156
Зарегистрирован: 24 май 2022, 00:29

Проект закрыт.
Спасибо всем не равнодушным, надеюсь всё это было кому-то полезно.


Аватара пользователя
Brook
Сообщения: 156
Зарегистрирован: 24 май 2022, 00:29

Друзья, наш уважаемый Sertik не перестает давать темы для различных изысканий. Результатом становятся полезные открытия.
Из последнего...

Я например не знал, что блок where[ ] может выполнять команды. А он оказывается может. И не только в команде print, а вообще везде где он есть.

Например этот код выведет список скриптов на соответствующей вкладке:

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

system/script/find where [:put ("Name: $name;\r\n"."Owner: $owner;\r\n"."Started: $"last-started";\r\n"."Run count: $"run-count"\r\n")]
А этот - список запущенных процессов:

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

system/script/job/find where [:put ("Started: $started;\n\r"."Owner: $owner;\n\r"."Trace: $trace;\n\r"."Parent: $parent\n\r")]
Внутри блока where[ ] может быть любой код, в том числе вызов функций с параметрами, как было показано в этом скрипте.

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

:global EventHandler do={
  :global teSendMessage
  :local oneFeed "%0D%0A"

  :local logDefaultPicture "\F0\9F\93\84"
  :local chatID "-1009009090909"

  :local messageText "$logDefaultPicture <b>$1 - $2 - $3</b> $oneFeed$oneFeed$4 $oneFeed"
  :if ([:len $1] != 0) do={
    $teSendMessage fChatID=$chatID fText=$messageText
  }
  :return 0
}

log/print follow-only where [$EventHandler $time $topics $buffer $message]



Sertik
Сообщения: 1657
Зарегистрирован: 15 сен 2017, 09:03



фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
Brook
Сообщения: 156
Зарегистрирован: 24 май 2022, 00:29

Sertik писал(а): 28 окт 2024, 10:45 Идея принадлежит не мне, а Osamafarah:
https://forum.mikrotik.com/viewtopic.p ... 4d26562928

https://github.com/osamahfarhan/mikrotik-events
Это я уже потом увидел. За тем форумом не слежу, поэтому узнаю о новостях от Вас.


Ответить