https://github.com/ig-rudenko/loop-detector
Приложение предназначено для анализа и мониторинга сетевых петель
https://github.com/ig-rudenko/loop-detector
docker elasticsearch fastapi logs-analysis loop-detectors network-visualization python vue
Last synced: 5 months ago
JSON representation
Приложение предназначено для анализа и мониторинга сетевых петель
- Host: GitHub
- URL: https://github.com/ig-rudenko/loop-detector
- Owner: ig-rudenko
- Created: 2024-05-22T06:05:06.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-10-31T10:19:52.000Z (7 months ago)
- Last Synced: 2025-10-31T12:17:06.192Z (7 months ago)
- Topics: docker, elasticsearch, fastapi, logs-analysis, loop-detectors, network-visualization, python, vue
- Language: Python
- Homepage:
- Size: 15.3 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Loop Detector

---
Приложение помогает выявлять и визуализировать текущие петли на сети, а также просматривать историю их возникновения.
Приложение обрабатывает логи, поступающие от сетевого оборудования, и определяет наличие петель в реальном
времени. При обнаружении петли, приложение предоставляет графическое отображение связей между устройствами,
что позволяет легко локализовать проблему и определить, на каком оборудовании её искать.

Система состоит из трех приложений:
1. GraphGen - генератор графов [Подробнее](https://github.com/ig-rudenko/loop-detector/tree/master/graph_gen#readme).
2. WebApp - приложение на FastAPI для взаимодействия с графами через API.
3. Frontend - Vue+TS+Vite
## Структура приложения

## Настройка
Для работы приложения необходимо иметь настроенные приложение
[Ecstasy](https://github.com/ig-rudenko/ecstasy) и Elasticsearch.
### GraphGen
Нужно создать файл `.env` в папке `graph_gen/env` с переменными окружения.
Пример файла со значениями по умолчанию находится в
`graph_gen/env/sample.env`. На основе этого файла нужно создать свой.
Скопируем и заполним своими данными:
```shell
cp graph_gen/env/sample.env graph_gen/env/.env;
```
Можно его разместить в другом месте, но тогда придется указать его в `docker-compose.yaml` файле.
[Подробнее про настройку GraphGen](https://github.com/ig-rudenko/loop-detector/tree/master/graph_gen#readme).
Далее нужно скопировать JSON файл с начальными правилами поиска сообщений
о петлях в корень проекта. Для этого скопируем базовый файл (если нужно,
в нём можно настроить свои параметры):
```shell
cp graph_gen/config/sample.es-matches.json es-matches.json;
```
### Web App
Нужно также создать файл для переменных окружения.
Пример файла находится в `web_app/env/sample.env`.
Скопируем и заполним своими данными:
```shell
cp web_app/env/sample.env web_app/env/.env;
```
## Запуск
Перед запуском нужно создать файл в корне проекта (изначально пустой) для хранения настроек
оповещений о новых петлях. По умолчанию в docker-compose.yaml его название
указано как `notifications.json`. Там будут храниться способы оповещений.
Не удаляйте этот файл в дальнейшем!
```shell
touch notifications.json;
```
Приложение запускается с помощью:
```shell
docker compose up -d
```
Приложение будет сохранять граф петель и его сообщения в json файлы.
Хранилище по умолчанию указано как `./loop_storage`.
## Визуализация



