Автоматизация роутеров irzOS с помощью утилиты Event
| Статья справедлива для версий irzOS 1.1 и выше. |
В промышленных сетях важна оперативность реакции на внешние изменения. В irzOS эту задачу решает утилита Event, автоматизирующая отклик роутера на события в системе или сети.
Настройка осуществляется в разделе /event.
| В качестве примера используется интерфейс роутера iRZ R50. Для других моделей интерфейс может незначительно отличаться. |
Каждое событие (event) состоит из четырех ключевых параметров.
Поле |
Описание |
Trigger |
Определяет подсистему-источник события: defaultroute – смена и/или потеря маршрута по умолчанию |
Target |
Конкретный объект-источник события в рамках выбранного триггера. В частности, если в качестве триггера выбран gpi, то источником будет конкретный порт, например, gpi_1 |
Value |
Состояние объекта-источника Target, при достижении которого будет срабатывать заданное действие Action. Может иметь значения 0, 1, any, текст сообщения |
Action |
CLI-команда или несколько команд, разделенных точкой с запятой |
После настройки и нажатия Apply на панели со статистикой отображается количество воспроизведений события и его текущий статус.
Поддерживается создание нескольких событий для одного триггера (полное совпадение полей Trigger, Target и Value). В этом случае они будут выполняться согласно своим порядковым номерам. Изменить порядок выполнения событий можно с помощью перестановки строк в веб-интерфейсе либо воспользовавшись следующей командой:
/event <старый_номер> reorder position=<новый_номер>
Пример 1
Задача:
Отправлять SMS «gpi_1 high» или «gpi_1 low» на заданный номер при изменении состояния gpi_1.
Решение:
-
В разделе /peripheral → gpio → gpi_1 установить Trigger в значение both, чтобы событие срабатывало при любом изменении логического уровня на пине.
-
Перейти в раздел /event и нажать Add, чтобы добавить новое событие.
-
В открывшемся окне для Trigger выбрать значение gpi.
-
В открывшейся форме задать параметры по примеру и нажать Apply.
-
Target: gpi_1
-
Value: 1
-
Action: /mobile sms send-sms phone-number=+7XXXXXXXXX message="gpi_1 high" modem=modem1
-
-
Аналогично добавить еще одно событие со следующими параметрами и нажать Apply.
-
Trigger: gpi
-
Target: gpi_1
-
Value: 0
-
Action: /mobile sms send-sms phone-number=+7XXXXXXXXX message="gpi_1 low" modem=modem1
-
Настройка в CLI
/peripheral gpio gpi_1
trigger both
apply
/event add trigger=gpi
target gpi_1
value 1
action /mobile sms send-sms phone-number=+7XXXXXXXXX message="gpi_1 high" modem=modem1
apply
/event add trigger=gpi
target gpi_1
value 0
action /mobile sms send-sms phone-number=+7XXXXXXXXX message="gpi_1 low" modem=modem1
apply
Пример 2
Задача:
Перевести порт gpo_1 в состояние high при получении входящего сообщения «gpo_1 high».
Решение:
-
Перейти в раздел /event и нажать Add, чтобы добавить новое событие.
-
В открывшемся окне для Trigger выбрать значение sms.
-
В открывшейся форме задать параметры по примеру и нажать Apply.
-
Target: номер телефона, с которого придет SMS
-
Value: gpo_1 hight – текст сообщения
-
Action: /peripheral gpio gpo_1 value high; /peripheral gpio gpo_1 apply
-
Пример 3
Задача:
Перезагрузка роутера каждый день в 23:00.
Решение:
-
Перейти в раздел /event и нажать Add, чтобы добавить новое событие.
-
В открывшемся окне для Trigger выбрать значение scheduler.
-
В открывшейся форме задать параметры по примеру и нажать Apply.
-
Target: 23:00
-
Action: /system management reboot
-
В данном примере Target – это параметр, который задает либо точное время выполнения события, либо периодичность его повторения. Например:
-
~12h – выполнять каждые 12 часов
-
~30m – выполнять каждые 30 минут
-
23:00 – выполнять каждый день в это время
Пример 4
Задача:
Выполнять перезапуск клиентского L2TP-туннеля к серверу при смене маршрута по умолчанию .
| Чтобы это событие корректно работало, в настройках L2TP-туннеля параметр Local IP должен иметь значение auto. |
Решение:
-
Перейти в раздел /event и нажать Add, чтобы добавить новое событие.
-
В открывшемся окне для Trigger выбрать значение defaultroute.
-
В открывшейся форме задать параметры по примеру и нажать Apply.
-
Value: change
-
Action: /tunnel l2tp l2tp_tunnel apply
-