Приложение помогает выявлять и визуализировать текущие петли на сети, а также просматривать историю их возникновения.
Приложение обрабатывает логи, поступающие от сетевого оборудования, и определяет наличие петель в реальном времени. При обнаружении петли, приложение предоставляет графическое отображение связей между устройствами, что позволяет легко локализовать проблему и определить, на каком оборудовании её искать.
Система состоит из трех приложений:
- GraphGen - генератор графов Подробнее.
- WebApp - приложение на FastAPI для взаимодействия с графами через API.
- Frontend - Vue+TS+Vite
Для работы приложения необходимо иметь настроенные приложение Ecstasy и Elasticsearch.
Нужно создать файл .env
в папке graph_gen/env
с переменными окружения.
Пример файла со значениями по умолчанию находится в
graph_gen/env/sample.env
. На основе этого файла нужно создать свой.
Скопируем и заполним своими данными:
cp graph_gen/env/sample.env graph_gen/env/.env;
Можно его разместить в другом месте, но тогда придется указать его в docker-compose.yaml
файле.
Подробнее про настройку GraphGen.
Далее нужно скопировать JSON файл с начальными правилами поиска сообщений о петлях в корень проекта. Для этого скопируем базовый файл (если нужно, в нём можно настроить свои параметры):
cp graph_gen/config/sample.es-matches.json es-matches.json;
Нужно также создать файл для переменных окружения.
Пример файла находится в web_app/env/sample.env
.
Скопируем и заполним своими данными:
cp web_app/env/sample.env web_app/env/.env;
Перед запуском нужно создать файл в корне проекта (изначально пустой) для хранения настроек
оповещений о новых петлях. По умолчанию в docker-compose.yaml его название
указано как notifications.json
. Там будут храниться способы оповещений.
Не удаляйте этот файл в дальнейшем!
touch notifications.json;
Приложение запускается с помощью:
docker compose up -d
Приложение будет сохранять граф петель и его сообщения в json файлы.
Хранилище по умолчанию указано как ./loop_storage
.