Техническое задание: Система мониторинга и биллинга сетевого трафика
Цель проекта
Разработать отказоустойчивый Python-скрипт для автоматического учета сетевого трафика, управления балансами пользователей и интеграции с существующей базой данных.
Основные функции
- Мониторинг трафика: Регулярный (каждые 5 минут) подсчет входящего и исходящего трафика на портах, указанных в базе данных MySQL.
- Работа с данными: Получение списка портов и текущих балансов пользователей из БД.
- Биллинг: Автоматический пересчет баланса пользователя на основе потребленного трафика и заданного тарифа.
- Обработка событий: При достижении нулевого или отрицательного баланса - внесение изменений в указанный текстовый конфигурационный файл и перезагрузка системной службы.
- Производительность: Скрипт должен стабильно работать с несколькими сотнями портов одновременно.
Технические требования
- Язык программирования: Python 3.
- База данных: MySQL.
- Операционная система: Ubuntu (скрипт должен быть адаптирован под эту ОС).
- Периодичность работы: Цикл опроса и подсчета - 5 минут (реализовать через планировщик cron или демон).
- Надежность: Обеспечить обработку ошибок подключения к БД, отсутствия портов и других исключительных ситуаций.
Ожидаемый результат
Готовое к развертыванию решение в виде Python-скрипта с комментариями. Скрипт должен самостоятельно выполнять весь цикл: сбор данных, анализ трафика, обновление балансов в БД и выполнение корректирующих действий при необходимости.