FastBypass monitor [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
dpi:dpi_components:fastbypass_monitor [2024/10/17 14:32] – создано elena.krasnobryzhdpi:dpi_components:fastbypass_monitor [2024/10/18 13:12] (текущий) atereschenko
Строка 1: Строка 1:
-====== FastBypass monitor 1.0.15 ====== +{{indexmenu_n>11}} 
-В случае если на DPI произошел сбой ПО, NPB выводит DPI из стека и NPB перебалансирует нагрузку между остальными DPI.\\ +====== FastBypass monitor ====== 
-Если падает более 2 DPI узлов — вся система переходит в режим bypass.\\ +''fastbypass_monitor'' (далее в документации и скрипте называется "демон") представляет собой инструмент для отслеживания и управления состоянием сетевых интерфейсов, состояние которых контролируют bypass модули по средством ping.
-Если падает линк на DPI, то NPB перебалансирует нагрузку между остальными DPI.\\ +
- +
-**Описание** +
- +
-''fastbypass_monitor'' (далее в документации и скрипте называется "демон") представляет собой инструмент для отслеживания и управления состоянием сетевых интерфейсов, к которым подключены сетевые карты Bypass.+
  
 Демон реагирует на HEARTBEAT сигналы, поступающие от DPI на определенные порты, указанные в конфигурационном файле. При не получении HEARTBEAT сигналов в соответствии с правилами из конфигурации, демон выполняет определенные действия, такие как удаление или создание IP-адресов, к которым подключены карты Bypass, а также включение или выключение определенных сетевых интерфейсов. Демон реагирует на HEARTBEAT сигналы, поступающие от DPI на определенные порты, указанные в конфигурационном файле. При не получении HEARTBEAT сигналов в соответствии с правилами из конфигурации, демон выполняет определенные действия, такие как удаление или создание IP-адресов, к которым подключены карты Bypass, а также включение или выключение определенных сетевых интерфейсов.
  
 {{ :dpi:dpi_components:fastdpi-bypass.png?900 |}} {{ :dpi:dpi_components:fastdpi-bypass.png?900 |}}
 +В случае если на DPI произошел сбой ПО, NPB выводит DPI из стека и NPB перебалансирует нагрузку между остальными DPI.\\ 
 +Если падает более 2 DPI узлов — вся система переходит в режим bypass.\\ 
 +Если падает линк на DPI, то NPB перебалансирует нагрузку между остальными DPI.\\
 ===== Требования к оборудованию ===== ===== Требования к оборудованию =====
- +ОС: OpenSwitch 2+ / Debian 9+\\
-ОС: OpenSwitch 2+ / Debian 9+ +
 Python: 2.7.9 Python: 2.7.9
  
 ===== Основные функции ===== ===== Основные функции =====
- 
   * Отслеживание HEARTBEAT сигналов от DPI на заданных портах.   * Отслеживание HEARTBEAT сигналов от DPI на заданных портах.
   * Динамическое управление IP-адресами и сетевыми интерфейсами.   * Динамическое управление IP-адресами и сетевыми интерфейсами.
  
 ===== Установка ===== ===== Установка =====
- 
   - Скопировать установочный пакет ''fastbypass_monitor-X.X.XX.deb'' на хост машину.   - Скопировать установочный пакет ''fastbypass_monitor-X.X.XX.deb'' на хост машину.
-  - Из директории, где находится установочный пакет, выполните команду установки: +  - Из директории, где находится установочный пакет, выполните команду установки: <code bash>sudo dpkg -i fastbypass_monitor-X.X.XX.deb</code>
-''sudo dpkg -i fastbypass_monitor-X.X.XX.deb''+
  
-После установки демон становится доступным для управления с помощью системного менеджера (systemctl). +После установки демон становится доступным для управления с помощью системного менеджера (''systemctl'').
- +
-Файл конфигурации доступен по пути: +
- +
-''/var/fastbypass_monitor/backend/.env'' +
- +
-Файл с примером полной конфигурации доступен по пути: +
- +
-''/var/fastbypass_monitor/backend/sample.env'' +
- +
-Логи демона сохраняются по пути: +
- +
-''/var/fastbypass_monitor/backend/logs/''+
  
 +Файл конфигурации доступен по пути ''/var/fastbypass_monitor/backend/.env''\\
 +Файл с примером полной конфигурации доступен по пути ''/var/fastbypass_monitor/backend/sample.env''\\
 +Логи демона сохраняются по пути ''/var/fastbypass_monitor/backend/logs/''
  
 ===== Использование ===== ===== Использование =====
- +После установки демон автоматически запускается и находится в состоянии работы. При перезагрузке хост-машины демон автоматически запускается после успешного запуска сервиса ''network''.\\
-После установки демон автоматически запускается и находится в состоянии работы. При перезагрузке хост-машины демон автоматически запускается после успешного запуска сервиса network. +
 Управление демоном осуществляется командами системного менеджера. Управление демоном осуществляется командами системного менеджера.
  
-Чтобы запустить демонвыполните следующую команду:+:!: Использование алиасов (коротких аналогов команд) возможно только в режиме sudo — перед началом использования введите команду ''sudo su -'' и пароль.
  
-''sudo systemctl start fastbypass_monitor''+===Запуск демона:=== 
 +<code bash>sudo systemctl start fastbypass_monitor</code> 
 +Алиас: <code bash>fbypass_ctl start</code>
  
-Чтобы перезапустить демонвыполните следующую команду:+<note important>Служба запускается в состоянии unknown, то есть не включает и не выключает bypass. После поднятия всех ресиверов и определения их состояния, система переходит в режим normal или bypass в зависимости от конфигурации и состояния ресиверов.</note>
  
-''sudo systemctl restart fastbypass_monitor''+===Перезапуск демона:=== 
 +<code bash>sudo systemctl restart fastbypass_monitor</code> 
 +Алиас: 
 +<code bash>fbypass_ctl restart</code>
  
-Чтобы перезагрузить без остановки демона, выполните следующую команду:+===Перезагрузка демона без остановки:=== 
 +<code bash>sudo systemctl reload fastbypass_monitor</code> 
 +Алиас: 
 +<code bash>fbypass_ctl reload</code>
  
-''sudo systemctl reload fastbypass_monitor''+===Остановка демона:=== 
 +<code bash>sudo systemctl stop fastbypass_monitor</code> 
 +Алиас: 
 +<code bash>fbypass_ctl stop </code>
  
-Чтобы остановить демон, выполните следующую команду:+===Проверка текущего статуса демона:=== 
 +<code bash>sudo systemctl status fastbypass_monitor</code> 
 +Алиас: 
 +<code bash>fbypass_ctl status</code> 
  
-''sudo systemctl stop fastbypass_monitor''+===Просмотр последних строк лог-файла с обновлением в реальном времени:=== 
 +<code bash>tail -f /var/fastbypass_monitor/backend/logs/fastbypass_monitor.log</code> 
 +Алиас: 
 +<code bash>fbypass_ctl tailf</code>
  
-Чтобы проверить текущий статус демона, выполните следующую команду:+===Вывод последних 100 строк лога:=== 
 +<code bash>tail -n 100 /var/fastbypass_monitor/backend/logs/fastbypass_monitor.log</code> 
 +Алиас: 
 +<code bash>fbypass_ctl tail 100</code>
  
-''sudo systemctl status fastbypass_monitor''+===Остановка демона с удалением IP-адресов, указанных в конфиге для bypass карт и тем самым принудительный перевод системы в состояние bypass:=== 
 +<code bash>fbypass_ctl force_on</code>
  
-Для настройки и запуска демона с новой конфигурацией необходимо отредактировать конфигурационный файл и затем выполнить перезагрузку демона или остановить и снова запустить его.+===Остановка демона с добавлением IP-адресов, указанных в конфиге для bypass карт и тем самым принудительный перевод системы в состояние normal:=== 
 +<code bash>fbypass_ctl force_off</code>
  
-Для настройки параметров работы демона, используется конфигурационный файл, расположенный по следующему пути:+===Добавление демона в автозагрузку:=== 
 +<code bash>fbypass_ctl enable</code>
  
-''/var/fastbypass_monitor/backend/.env''+===Удаление демона из автозагрузки:=== 
 +<code bash>fbypass_ctl disable</code>
  
 +Для настройки и запуска демона с новой конфигурацией необходимо отредактировать конфигурационный файл и затем выполнить перезагрузку демона или остановить и снова запустить его.
  
-<note>__Примечание 1__+Для настройки параметров работы демона, используется конфигурационный файл, расположенный по пути ''/var/fastbypass_monitor/backend/.env''
  
-При запуске и перезагрузке, демон читает конфигурационный файл, и в случае, если он может успешно настроить указанные IP адреса и интерфейсы, то продолжает свою работу. Однако, если часть конфигурации не прошла проверку, демон запускает только те компоненты, которые могут быть успешно настроены.+<note>При запуске и перезагрузке, демон читает конфигурационный файл, и в случае, если он может успешно настроить указанные IP-адреса и интерфейсы, то продолжает свою работу. Однако, если часть конфигурации не прошла проверку, демон запускает только те компоненты, которые могут быть успешно настроены.
  
 В случае возникновения критической ошибки демон автоматически перезагружается. В случае возникновения критической ошибки демон автоматически перезагружается.
Строка 85: Строка 91:
 При использовании команды  ''sudo systemctl reload fastbypass_monitor'' демон перечитывает конфигурацию без остановки своей работы, и останавливает работу удаленных компонентов и создает новые добавленные компоненты, указанные в конфигурации. При использовании команды  ''sudo systemctl reload fastbypass_monitor'' демон перечитывает конфигурацию без остановки своей работы, и останавливает работу удаленных компонентов и создает новые добавленные компоненты, указанные в конфигурации.
  
-Важно отметить, что при запуске и перезагрузке демон не управляет указанными в конфигурации интерфейсами и IP-адресами до того момента, пока не получит состояние всех listener.+Важно отметить, что при запуске и перезагрузке демон не управляет указанными в конфигурации интерфейсами и IP-адресами до того момента, пока не получит состояние всех listener.\\
 При перезапуске демон продолжает находиться в том же состоянии, как и до перезапуска, пока не получит новое состояние от всех listener. При перезапуске демон продолжает находиться в том же состоянии, как и до перезапуска, пока не получит новое состояние от всех listener.
 </note> </note>
  
-=====Локальное и глобальное состояние. Режим Bypass===== +====Локальное и глобальное состояние. Режим Bypass==== 
-Демон поддерживает два вида управления интерфейсами в зависимости от их состояния: глобального (основанного на работе всех listener) или от локального (связанного с конкретным listener).\\+Демон поддерживает два вида управления интерфейсами в зависимости от их состояния: **глобального** (основанного на работе всех listener) или от **локального** (связанного с конкретным listener).\\
 Например, если указать список интерфейсов для управления в глобальных настройках, то их включение или отключение зависит от общего состояния демона. Это означает, что если демон не получает сигналов от достаточного количества lisner, то указанные интерфейсы отключаются. Например, если указать список интерфейсов для управления в глобальных настройках, то их включение или отключение зависит от общего состояния демона. Это означает, что если демон не получает сигналов от достаточного количества lisner, то указанные интерфейсы отключаются.
  
 **Пример: ** **Пример: **
 <code bash> <code bash>
-LISTEN_CUBRO_IFS=список интерфейсов+LISTEN_CUBRO_IFS=<список интерфейсов>
 LISTEN_SHUTDOWN_CUBRO_IFS_WHEN_BYPASS=1 LISTEN_SHUTDOWN_CUBRO_IFS_WHEN_BYPASS=1
 </code> </code>
Строка 103: Строка 109:
 **Пример:** **Пример:**
 <code bash> <code bash>
-LISTEN_CUBRO_IFS[0]=список интерфейсов+LISTEN_CUBRO_IFS[0]=<список интерфейсов>
 LISTEN_SHUTDOWN_CUBRO_IFS_WHEN_BYPASS[0]=1 LISTEN_SHUTDOWN_CUBRO_IFS_WHEN_BYPASS[0]=1
 </code> </code>
Строка 112: Строка 118:
  
 ===== Конфигурация ===== ===== Конфигурация =====
- 
 ==== Минимальная конфигурация ==== ==== Минимальная конфигурация ====
- 
 Минимальная конфигурация для работы демона включает указание хотя бы одного интерфейса, IP-адреса и порта для приема HEARTBEAT сигналов, а также одного интерфейса и IP-адреса для подключения карты Bypass. Минимальная конфигурация для работы демона включает указание хотя бы одного интерфейса, IP-адреса и порта для приема HEARTBEAT сигналов, а также одного интерфейса и IP-адреса для подключения карты Bypass.
  
-**Пример**+**Пример:** 
 <code bash> <code bash>
 # уровень логирования - сообщения об ошибках и информационные сообщения # уровень логирования - сообщения об ошибках и информационные сообщения
Строка 151: Строка 156:
 </code> </code>
  
-Выше приведен пример конфигурации для получения HEARTBEAT сигналов с использованием интерфейса "eth0на IP адресе "192.168.1.202и портах "3000и "3100"+Выше приведен пример конфигурации для получения HEARTBEAT сигналов с использованием интерфейса ''eth0'' на IP-адресе ''192.168.1.202'' и портах ''3000'' и ''3100''
  
-Bypass карты подключены по интерфейсу "eth0на IP-адреса "192.168.1.211и "192.168.1.212".+Bypass карты подключены по интерфейсу ''eth0'' на IP-адреса ''192.168.1.211'' и ''192.168.1.212''.
  
 По умолчанию для всех listener установлены значения: По умолчанию для всех listener установлены значения:
  
-''LISTEN_HEARTBEAT_ATTEMPTS'' количество попыток получения сигнала: ''1''\\ +''LISTEN_HEARTBEAT_ATTEMPTS'' — количество попыток получения сигнала: ''1''\\ 
-''LISTEN_HEARTBEAT_TIMEOUT'' время ожидания сигнала: ''3000'' миллисекунд+''LISTEN_HEARTBEAT_TIMEOUT'' — время ожидания сигнала: ''3000'' миллисекунд
  
 Когда listener не получает сигнал после одной попытки в течение ''3000'' миллисекунд, он считается неудачным. Когда listener не получает сигнал после одной попытки в течение ''3000'' миллисекунд, он считается неудачным.
Строка 166: Строка 171:
 При восстановлении сигналов, listener считается рабочим. При восстановлении сигналов, listener считается рабочим.
  
-Если общее количество неудачных слушателей становится меньше порога, то демон возвращается в режим NORMAL и восстанавливает указанные IP адреса для Bypass карт. +Если общее количество неудачных слушателей становится меньше порога, то демон возвращается в режим NORMAL и восстанавливает указанные IP-адреса для Bypass карт.
  
 ==== Общая конфигурация ==== ==== Общая конфигурация ====
Строка 179: Строка 183:
 <code bash> <code bash>
 # уровень логирования (необязательная настройка, по умолчанию соответствует INFO): # уровень логирования (необязательная настройка, по умолчанию соответствует INFO):
-INFO - сообщения об ошибках и информационные сообщения +INFO - сообщения об ошибках и информационные сообщения 
-DEBUG - сообщения об ошибках, информационные сообщения и сообщения отладки+DEBUG - сообщения об ошибках, информационные сообщения и сообщения отладки
 LOG_LEVEL= LOG_LEVEL=
  
Строка 249: Строка 253:
  
 Используемые переменные: Используемые переменные:
-  * ''intfs'' имя интерфейса +  * ''intfs'' — имя интерфейса 
-  * ''ip'' IP адрес +  * ''ip'' — IP адрес 
-  * ''netmask'' маска сети+  * ''netmask'' — маска сети
  
 По умолчанию используются следующие конфигурации: По умолчанию используются следующие конфигурации:
Строка 301: Строка 305:
 ==== Конфигурация интерфейсов для сетевых карт Bypass ==== ==== Конфигурация интерфейсов для сетевых карт Bypass ====
  
-Демон автоматически управляет (удаляет/создает) IP адресами на соответствующих интерфейсах при переходе в режим BYPASS или NORMAL в соответствии с настройками карт Bypass.\\+Демон автоматически управляет (удаляет/создает) IP-адресами на соответствующих интерфейсах при переходе в режим BYPASS или NORMAL в соответствии с настройками карт Bypass.\\
 Для каждой Bypass карты в конфигурации указывается следующий индекс (например, [0], [1], [2]). Для каждой Bypass карты в конфигурации указывается следующий индекс (например, [0], [1], [2]).
  
Строка 323: Строка 327:
 </code> </code>
  
-====== Утилита fbypass_ctl ====== 
- 
-Утилита ''fbypass_ctl'' содержит набор команд для включения / выключения bypass, а также для запуска сервиса ''fastbypass_monitor'' и получения статуса. 
- 
-Утилита ''fbypass_ctl'' представляет собой алиас на bash-скрипт. Использование утилиты возможно только в режиме sudo. Перед началом использования утилиты введите команду ''sudo su -'' и пароль. 
  
-===== Доступные команды ===== 
-=== Команда fbypass_ctl force_on === 
-Останавливает службу ''fastbypass_monitor'', удаляет IP-адреса, указанные в конфиге для bypass карт. Тем самым принудительно переводит систему в состояние bypass. 
-\\ \\ 
-=== Команда fbypass_ctl force_off === 
-Останавливает службу ''fastbypass_monitor'', добавляет IP-адреса, указанные в конфиге для bypass карт. Тем самым принудительно переводит систему в состояние normal. 
-\\ \\ 
-=== Команда fbypass_ctl start === 
-Запускает службу ''fastbypass_monitor''. Служба запускается в состоянии unknown, т.е. не включает и не выключает bypass. После поднятия всех ресиверов и определения их состояния, система переходит в режим normal или bypass в зависимости от конфигурации и состояния ресиверов. 
-\\ \\ 
-=== Команда fbypass_ctl restart === 
-Перезапускает службу ''fastbypass_monitor''. 
-\\ \\ 
-=== Команда fbypass_ctl status === 
-Отображает статус службы ''fastbypass_monitor'', а также вывод команды ''ip a'' 
-\\ \\ 
-=== Команда fbypass_ctl enable === 
-Добавляет службу ''fastbypass_monitor'' в автозагрузку.  
-\\ \\ 
-=== Команда fbypass_ctl disable === 
-Удаляет службу ''fastbypass_monitor'' из автозагрузки. 
-\\ \\ 
-=== Команда fbypass_ctl tail 100 === 
-Выводит последние 100 строк лога службы ''fastbypass_monitor''. Сам лог находится по пути ''/var/fastbypass_monitor/backend/logs/fastbypass_monitor.log'' 
-\\ \\ 
-=== Команда fbypass_ctl tailf === 
-Алиас команды ''tail -f /var/fastbypass_monitor/backend/logs/fastbypass_monitor.log''