Позволяет отображать информацию о сетевых устройствах в удобном для чтения формате без ввода консольных команд.
Web-console позволит подключаться к оборудованию через терминал в браузере
Чтобы запустить и настроить web-console нужно следовать инструкции.
- Взаимодействие с сетевым оборудованием
- Отображение интерфейсов оборудования в реальном времени
- Сбор конфигурации
- Создание шаблонов команд (wiki)
- Управление состоянием порта (up/down)
- Просмотр MAC адресов на порту
- Просмотр текущей конфигурации порта
- Перенаправление для просмотра логов в Elastic Stack
- Просмотр ошибок на порту
- Возможность просматривать и сбрасывать текущую сессию по MAC адресу
- Сохранение файлов конфигураций оборудования
Кроме того, Ecstasy предоставляет дополнительные функции для визуализации и поиска сетевой информации:
- Отображение топологии VLAN / MAC
- Поиск по текстовому описанию интерфейсов
- Поиск IP/MAC адреса
- Создание и просмотр интерактивных карт
- Учёт загруженности оборудования
- База GPON подключений и пользователей
Список поддерживаемых вендоров приведен ниже. Другие модели тоже могут быть совместимы, но я имею доступ только к этим устройствам.
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-*
- Проверено для:
Рекомендуемым и простым способом является запуск через docker compose.
Для начала скопируйте файл .env.example в .env и укажите свои данные в нём.
cp .env.example .envСоздайте папки для хранения данных. И дайте права на запись.
mkdir logs static media map_layer_files configurations
chmod 777 logs static media map_layer_files configurationsТеперь запустите контейнеры.
docker compose build;
docker compose up -d;По умолчанию создастся пользователь: admin/password1.
При выборе оборудования показывается его информация:
- Состояние оборудования
- Нагрузка CPU, RAM, Flash и температура
- Подробная информация (берется из Zabbix)
- Ссылка в Zabbix
- Ссылка на карту с местоположением оборудования
- Логи в Elastic Search
- Перечень конфигураций
- Медиафайлы
- Интерфейсы
При выборе конкретного порта открывается его информация: Описание, конфигурация, счетчик ошибок, диагностика состояния кабеля, список MAC адресов.
Для станционных терминалов GPON OLT возможен следующий вывод информации об интерфейсе (указан ниже).
Реализована возможность отображать и создавать интерактивные карты:
- Из ссылки на внешнюю карту;
- Из HTML файла карты;
- Из совокупности различных слоев. Слой может быть представлен:
- Из группы в Zabbix (будут отображаться узлы сети, которые имеют координаты);
- Из файла формата GEOJSON.
Интерактивные карты со слоями из Zabbix группы отображают доступность оборудования с описанием проблемы в Zabbix.
Построение топологии VLAN по оборудованию.
Определение маршрута MAC адреса между оборудованиями.
# python manage.py import_from_zabbix
Импорт узлов сети из zabbix
options:
-h, --help show this help message and exit
-g GROUPS, --groups GROUPS
Имена Zabbix групп через запятую
-a AUTH, --auth AUTH Имя группы авторизации для узла сети
-s, --save Сохранить в базу узлы сети
--change-group CHANGE_GROUP
Имя группы Ecstasy, которая будет использоваться для всех узлов сети. Если не указана, то будет использована оригинальная группа Zabbix
--all-status Импортируем также узлы сети, которые деактивированы в Zabbix
--interface-scan {telnet,ssh,snmp}
Протокол для сбора интерфейсов узла сети. (по умолчанию ssh)
--snmp-community SNMP_COMMUNITY
SNMP Community (необязательно)
--cli-protocol {telnet,ssh}
Протокол для выполнения команд узла сети. (по умолчанию ssh)
--name-pattern NAME_PATTERN
Паттерн для имени узлов сети. Если совпадает, то будет импортирован. (необязательно)
--ip-pattern IP_PATTERN
Паттерн для IP узла сети. Если совпадает, то будет импортирован. (необязательно)
--server SERVER URL сервера Zabbix (необязательно)
--user USER Имя пользователя Zabbix (необязательно)
--password PASSWORD Пароль пользователя Zabbix (необязательно)
--debug Выводить дополнительную информацию
--version Show program's version number and exit.
-v {0,1,2,3}, --verbosity {0,1,2,3}
Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output
--settings SETTINGS The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be used.
--pythonpath PYTHONPATH
A directory to add to the Python path, e.g. "/home/djangoprojects/myproject".
--traceback Raise on CommandError exceptions.
--no-color Don't colorize the command output.
--force-color Force colorization of the command output.
--skip-checks Skip system checks.
Note
По умолчанию используются данные авторизации Zabbix хранимые в базе.
Указывается через панель администратора: App settings -> Zabbix API settings
Чтобы не сохранять в базу данных, а только протестировать какие узлы будут учитываться
нужно выполнять команды без параметра --save.
Импорт активных узлов сети из Zabbix группы devs в новую группу devs ecstasy,
с указанием группы авторизации creds-1, а также использование telnet
как способа подключения к оборудованию:
python manage.py import_from_zabbix --save -g devs -a creds-1 --interface-scan=telnet --cli-protocol=telnetИмпорт активных узлов сети из диапазона 172.30.0.0/24 Zabbix группы devs в новую группу devs ecstasy,
с указанием группы авторизации creds-1, а также использование ssh (По умолчанию SSH)
как способа подключения к оборудованию:
python manage.py import_from_zabbix --save -g devs -a creds-1 --ip-pattern='172\.30\.0\.\d+'python manage.py graph_models -a --rankdir LR --dot -g -o ./docs/models.dot
dot -Tsvg ./docs/models.dot -o ./docs/models.svg