ecstasy
Ecstasy
Веб-приложение для взаимодействия с сетевым оборудованием
Позволяет отображать информацию о сетевых устройствах в удобном для чтения формате без ввода консольных команд.
Возможности:
- Взаимодействие с сетевым оборудованием
- Отображение интерфейсов оборудования в реальном времени
- Управление состоянием порта (up/down)
- Просмотр MAC адресов на порту
- Просмотр текущей конфигурации порта
- Перенаправление для просмотра логов в Elastic Stack
- Просмотр ошибок на порту
- Возможность просматривать и сбрасывать текущую сессию по MAC адресу
- Сохранение файлов конфигураций оборудования
Кроме того, Ecstasy предоставляет дополнительные функции для визуализации и поиска сетевой информации:
- Отображение топологии VLAN / MAC
- Поиск по текстовому описанию интерфейсов
- Поиск IP/MAC адреса
- Создание и просмотр интерактивных карт
Поддержка производителей оборудования:
Список поддерживаемых вендоров приведен ниже. Другие модели тоже могут быть совместимы, но я имею доступ только к этим устройствам.
- Cisco
- Проверено для: WS-C4500*WS-C35*0WS-C3750*ME-3*00XME-4924ME-3400
- Проверено для:
- Eltex
- Проверено для: MES3324*ESR-12VFLTP-4X(8X)-rev.*LTP-16N
- Проверено для:
- MikroTik
- Проверено для: RouterOS v6.* (v7.*)
- Проверено для:
- Huawei
- Проверено для: S2403TPS2326TPCX600-X8CE6865
- Проверено для:
- Huawei DSL (GPON)
- Проверено для: MA5600T
- Проверено для:
- Iskratel DSL
- Проверено для: MPC8560
- Проверено для:
- D-Link
- Проверено для: DES-3200-*DES-3028DES-3526DGS-3420DGS-12**
- Проверено для:
- Extreme
- Проверено для: X460-*X670-*
- Проверено для:
- ZTE
- Проверено для: ZXR10 2928E2936-FI2952E
- Проверено для:
- Q-Tech
- Проверено для: QSW-3450-*QSW-8200-*
- Проверено для:
Структура
Развертывание приложения (Ansible)
- Устанавливаем ansible.
- Копируем проект и переходим в папку
.ansible - Прописываем в файле
IP адрес и порт для подключения сервера, на который будет установлена система.inventory/hosts - В папке
находятся файлы с параметрами настройки приложения:roles
содержит основные переменные проекта;ecstasy-main.yaml
# ------- DIRS --------root_folder: "/home/ecstasy" # Директория проекта
# ------ PYTHON -------python_version: 3.11
# -------- WEB --------django_superuser_username: superusernamedjango_superuser_password: password
gunicorn_socket: 127.0.0.1:8000device_connector_socket: 127.0.0.1:9999
celery_concurrent: 2celery_worker_name: worker1
flower_address: 0.0.0.0flower_port: 5555flower_username: monitoringflower_password: flower-password
nginx_http_listen_port: 80enable_https: no# При включении HTTPS будет создан самоподписанный сертификат
# ------- REDIS --------redis_broker_db: 0redis_cache_db: 1redis_password: redis-password
- параметры для базы данных;ecstasy-mariadb.yaml
mysql_root_password: root-password
# Пользователь будет созданmariadb_user: ecstasymariadb_password: ecstasy-password# База будет созданаmariadb_database: ecstasy
- для работы сервисов.ecstasy-services.yaml
# Названия сервисовECSTASY_SERVICE_NAME: ecstasyCELERY_SERVICE_NAME: ecstasy-celeryDEVICE_CONNECTOR_SERVICE_NAME: ecstasy-device-connectorFLOWER_SERVICE_NAME: ecstasy-flower
# Переменные окружения для сервисов Ecstasy.ALLOWED_HOSTS: "*"DJANGO_DEBUG: 0CONFIG_STORAGE_DIR: # директория в которую будут сохраняться файлы конфигураций DJANGO_SECRET_KEY:CONTACT_NAME: # имя для обратной связиCONTACT_EMAIL: # почта обратной связиCACHE_KEY_PREFIX: ecstasy_prodDEVICE_CONNECTOR_TOKEN: # токен для защиты device connectorDEVICE_CONNECTOR_DEFAULT_POOL_SIZE: 2 # кол-во сессий по умолчанию для одного сетевого оборудования
Необходимо указать недостающие и/или поменять параметры по умолчанию.
- Далее запускаем ansible:
ansible-playbook -K -i inventory/hosts playbooks/deploy-ecstasy.yaml
- Вводим пароль суперпользователя и ожидаем завершение установки.
Удобный поиск оборудования
Просмотр загруженности интерфейсов оборудований
При выборе оборудования показывается его информация:
- Состояние оборудования
- Нагрузка CPU, RAM, Flash и температура
- Подробная информация (берется из Zabbix)
- Ссылка в Zabbix
- Ссылка на карту с местоположением оборудования
- Логи в Elastic Search
- Перечень конфигураций
- Медиафайлы
- Интерфейсы
При выборе конкретного порта открывается его информация: Описание, конфигурация, счетчик ошибок, диагностика состояния кабеля, список VAC адресов
Для станционных терминалов GPON OLT возможен следующий вывод информации об интерфейсе (указан ниже)
Карты
Реализована возможность отображать и создавать интерактивные карты:
- Из ссылки на внешнюю карту;
- Из HTML файла карты;
- Из совокупности различных слоев. Слой может быть представлен:
- Из группы в Zabbix (будут отображаться узлы сети, которые имеют координаты);
- Из файла формата GEOJSON.
Интерактивные карты со слоями из Zabbix группы отображают доступность оборудования с описанием проблемы в Zabbix.
Топология VLAN
Построение топологии VLAN по оборудованию.
Топология прохождения MAC адреса
Определение маршрута MAC адреса между оборудованиями.
Поиск по описанию порта
Поиск IP или MAC адреса
Создание связей моделей
python manage.py graph_models -a --rankdir LR --dot -g -o ./docs/models.dotdot -Tsvg ./docs/models.dot -o ./docs/models.svg
Описание
Ecstasy - Equipment Control System To Assist You - программа для управления сетевым оборудованием.
Языки
Python
- Jinja
- TypeScript
- CSS
- Shell
- Dockerfile
- HTML
- Vue
- JavaScript