Мои проекты

Панель управления и мониторинга СУДОС Цирконий-М

Клиент-сервер для отображения состояния служб на серверах СУДОС, метрики для Prometheus, а так же оркестрация управляющих команд для серверов и АРМов СУДОС.

О проекте

При переводе СКУД объекта под управление ОС АстраЛинукс возникла потребность в упрощении администрирования СУДОС персоналом, привыкшим к работе в среде Windows. Так же, в критических ситуациях, при восстановлении функционирования СКУД дежурным персоналом, имеется вероятность некорректного вмешательства в работу СКУД. Поэтому, для прозрачности текущего состояния системы и для блокировки некорректных действий персонала, была создана данная программа. Так же в агенте га серверах интегрирован экспортёр метрик Prometheus.

Демонстрация работы проекта

Внешний вид клиента (версия с бинарником, фреймворк Fyne)

Демонстрация работы проекта

Внешний вид клиента (web-версия)

Основные функции

Кроссплатформененость

Возможность разворачивания программы на хостах с ОС Windows/AstraLinux1.7, а так же используя технологию Docker.

Максимальная информативность

Статус состояния служб i10, Kernel, Cluster, наличие пинга сервера.

Оркестрация функций управления

В зависимости от состояния служб серверов, активируются/деактивируются кнопки доступного функционала.

Статистика по серверам

Вывод текущего состояния используемой ЦПУ/жёсткого диска/памяти агентами на серверах. Применение метрик Prometheus совместно с представлением данных в Grafana.

Резервное копирование БД

Создание копии БД СУДОС с любого из доступных серверов. При остановке работы СУДОС - восстановление БД из любого доступного архива.

Удалённый перезапуск хостов

Удалённый Reboot хостов и серверов из списка по ssh-команде.

Гибкое логирование

Настраиваемое логирование на стороне серверной и клиентской части. Ротация по-суточная. Ограничение максимального числа логов.

Используемые технологии

Windows7-11x64/AstraLinux1.7.4 Golang Prometheus Fyne Gin Websocket Zerolog Cron-go HTML JavaScript Tailwind CSS

Серверная часть (как правило на SBD), а так же Агенты на двух серверах СУДОС запущены в виде демонов. В режиме ожидания Агенты ожидают подключения серверной части программы (Сервера). Cервер ожидает подключения удалённых клиентов из браузера (или запустив бинарный файл клиента Fyne) по http. При появлении удалённого клиента, Сервер подключается к агентам на серверах СУДОС по Websocket (наиболее информативный метод контроля соединениями). Агенты, получив websocket подключение, начинают периодический опрос/передачу статуса служб своего сервера. Сервер, обработав статусы от агентов, формирует управление GUI через SSE для клиентов, тем самым активируя кнопки управления и меняя состояние индикации статуса служб на серверах. На стороне клиентов работает js-сторож активности мышки/клавиатуры, который отключает клиента от Сервера при бездействии по тайм-ауту. При отсутствии подключённых клиентов к Серверу, связь с агентами по websocket закрывается до следующего клиента. Использование экспортёра метрик Prometheus позволило реализовать точное определение времени сбоя в БД с отображением в форме проблемы с описанием, а счётчик числа пакетов в трафике между сервером и периферией СУДОС даёт возможность контролировать случаи генераций-вала пакетов.

← Вернуться ко всем проектам