Сервис для мониторинга работоспособности веб-сайта с автоматическим обновлением записей при обнаружении проблем.
Этот сервис выполняет следующие функции:
- Периодически проверяет доступность указанного веб-сайта
- Проверяет корректность JSON-ответов
- Отслеживает количество последовательных ошибок
- Автоматически обновляет записи при достижении определенного порога ошибок
- Ведет подробное логирование всех операций
- Python 3.7+
- Poetry (опционально)
- Клонируйте репозиторий и перейдите в директорию проекта:
git clone [email protected]:sonechkak/dns_switcher_project.git
cd dns_switcher_project
- Установите зависимости с помощью Poetry:
poetry install
- Создайте файл .env в корневой директории проекта и добавьте следующие настройки:
SITE_MAP=your_site.com:dev.site.com,your_site.com:127.0.0.1;your_site1.com:dev.site1.com:127.0.0.1
CHECK_INTERVAL_SECONDS=5
Для запуска сервиса выполните команду:
python src/monitor.py
Сервис настраивается через переменные окружения:
MONITORED_SITE_URL
: Адрес сайта для мониторингаCHECK_INTERVAL_SECONDS
: Интервал между проверками в секундах (по умолчанию: 5)
Сервис ведет подробное логирование всех операций. В логах содержится:
- Метка времени каждого события
- Уровень важности сообщения
- Результаты проверок сайта
- Информация об ошибках и предупреждениях
- Сервис подсчитывает количество последовательных ошибок
- После двух последовательных ошибок происходит автоматическое обновление записи
- Счетчик ошибок сбрасывается после успешной проверки или обновления записи
service-monitoring-site/
├── src # Код проекта
│ ├── routes # Маршруты
│ ├── |── records.py # Маршрут для работы с записями
│ ├── |── zones.py # Маршрут для работы с зонами
│ ├── main.py # Запуск FastAPI приложения
│ ├── monitor.py # Скрипт мониторинга сайта
│ ├── utils.py # Вспомогательные функции
├── pyproject.toml # Конфигурация Poetry и зависимости проекта
├── poetry.lock # Фиксация версий зависимостей
├── .env # Файл с env
└── README.md # Документация
- requests: Библиотека для HTTP-запросов
- python-dotenv: Работа с переменными окружения
- logging: Система логирования
- asyncio: Асинхронное выполнение операций
При внесении изменений в код убедитесь, что:
- Все значимые действия фиксируются в логах
- Правильно обрабатываются исключения
см. файл LICENSE.txt