Commit Graph

26 Commits (3ba862914675ae5ef5a471d94c9794043bafa90a)

Author SHA1 Message Date
mirivlad 6d8bd99277 Docker: production-ready setup with immutable images, versioned migrations, env vars
- Dockerfile: PHP 8.3 FPM + composer install (no dev)
- docker-compose.yml: app + nginx + MariaDB 10.11
- Versioned migrations (001-007) with schema_migrations tracking
- DatabaseConfig.php: env vars with fallbacks
- init.sh: wait-for-db + auto-migrate
- nginx.conf: reverse proxy + gzip + security rules
- .env.example: config template
- .dockerignore: build optimization

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 15:51:14 +08:00
mirivlad 99761ca5d8 feat: добавить установку Windows-агента через .bat (обход ExecutionPolicy, двойной клик)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 04:54:25 +08:00
mirivlad 066a18788d fix: исправить генерацию PS1 скрипта (getBody вместо Nyholm)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 04:37:55 +08:00
mirivlad c2c9934ff8 feat: добавить установку агента для Windows Server 2012+ (PowerShell скрипт, Scheduled Task, авт. установка Python)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 04:31:20 +08:00
mirivlad e528a91d8f fix: использовать дефолтные значения порогов (80/90/0) вместо NULL
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 03:54:03 +08:00
mirivlad ade719f3e0 fix: сохранять пороги частично (warning/critical отдельно), flash сообщение с подробностями
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 03:37:13 +08:00
mirivlad dbd71e3485 fix: removed network rx/tx charts, ensured single temp chart
- Excluded network_rx and network_tx metrics from main metrics loop
- Removed separate network interface charts
- Verified single combined Temperatures chart (chart-temperatures) exists and is initialized
2026-04-14 01:52:03 +08:00
mirivlad de34962360 feat: добавлен мониторинг температур (CPU, GPU, HDD/SSD)
- Обновлен скрипт установки агента (добавлены lm-sensors, smartmontools)
- Агент теперь собирает температуры: CPU (через psutil), Диски (smartctl), GPU (nvidia-smi)
- Бэкенд автоматически определяет единицу измерения °C для метрик temp_*
- Добавлен общий график Температуры на страницу сервера
2026-04-14 01:21:59 +08:00
mirivlad 8d4a789e00 feat(dashboard): бесшовное обновление данных без перезагрузки страницы
- Добавлен API endpoint /api/dashboard/stats
- Реализована замена location.reload() на fetch() каждые 30 секунд
- Добавлены ID к элементам метрик для точечного обновления
- Убрано мерцание страницы при обновлении
2026-04-14 00:38:43 +08:00
mirivlad 84a10f7909 fix: исправлено дублирование пользователей в списке
- Добавлен UNIQUE constraint на user_id в user_notification_settings
- Удалены существующие дубликаты из таблицы
- Добавлен DISTINCT в SQL запрос списка пользователей
- INSERT ON DUPLICATE KEY UPDATE теперь корректно предотвращает создание дублей
2026-04-13 23:53:48 +08:00
mirivlad 90e220902d fix: исправлена ошибка SQL при перегенерации токена агента
- Исправлен синтаксис ON DUPLICATE KEY UPDATE (VALUES вместо привязки параметров)
- Устранена ошибка SQLSTATE[HY093]: Invalid parameter number

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 23:39:31 +08:00
mirivlad 98f159b9f4 feat(dashboard): показывать использование только корневого раздела (/)
- Дашборд теперь отображает disk_used_root вместо среднего disk_used
- Увеличен лимит метрик в Server.php до 30 для гарантии выборки root
- Цвет прогресс-бара берется по порогам root раздела

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 23:06:01 +08:00
mirivlad d35ce3a022 fix: уведомления сервисов и исправление порогов
- Уведомления сервисов: разные цвета и тексты для остановки (🛑) и запуска ()
- Фикс порядка действий: SELECT статуса ДО UPDATE для корректного отслеживания изменений
- Фильтр алертов: только для сервисов в списке мониторинга
- NotificationService: разделение на sendThresholdNotification/sendRecoveryNotification/sendServiceNotification
- Исправление сохранения порогов (приведение типов для duration/warning/critical)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 22:49:16 +08:00
mirivlad fc7a98663f fix: исправлена HTML структура вкладок (metrics/services/thresholds)
- Перемещены закрывающие </div> tab-pane metrics в правильное место
- Сетевые графики и doughnut диски теперь внутри вкладки Метрики
- Вкладки Сервисы и Пороги работают корректно

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 16:25:14 +08:00
mirivlad 0219fda95f feat: масштабирование, дашборд, алерты и тултипы
- Исправлена ось времени: старые данные слева, новые справа
- Подключён chartjs-plugin-zoom (колёсико, drag, pan)
- Переделаны кнопки периода: 1ч/6ч/24ч/7д/30д (по умолчанию 6ч)
- Добавлен cmdline в процессы тултипа (показывает полный путь)
- Улучшена логика алертов: нет спама, resolved уведомления
- Исправлено сохранение порогов (приведение типов)
- Исправлена страница алертов (Twig syntax: ends_with -> matches)
- Дашборд: цвета прогресс-баров по реальным порогам сервера

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 10:24:15 +08:00
mirivlad b875e57e4c fix: исправление тултипов Chart.js и обновление проекта
- Исправлено скрытие тултипов при уходе курсора влево/вправо
  - Добавлена проверка всех 4 границ chartArea (caretX + caretY)
  - Добавлен глобальный mousemove обработчик (crosshair overlay перехватывал mouseleave)
- Добавлен плагин chartjs-plugin-crosshair.min.js
- Обновлён дамп БД: только структура + примеры данных (без реальных данных)
- Добавлены: FlashMiddleware, NotificationService, .gitignore
- Обновлены: контроллеры, модели, middlewares, шаблоны
- Удалены: detail.twig.bak файлы

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-13 00:59:19 +08:00
mirivlad 9b64cee32c feat(metrics): replace period/zoom buttons with datetime range selector 2026-02-22 02:45:59 +00:00
mirivlad 6ca570ec1d feat: Унифицировать количество точек на графиках до ~360 для любого масштаба
- 1h: без агрегации (~360 точек)
- 6h: агрегация 1 минута (~360 точек)
- 24h: агрегация 4 минуты (~360 точек)
- 7d: агрегация 28 минут (~360 точек)
- 30d: агрегация 2 часа (~360 точек)
- Formula: aggregate_minutes = period_minutes / 360
- slice ограничен до 400 точек
- format времени берётся из конфига агрегации
2026-02-22 02:09:55 +00:00
mirivlad c70b69ea7e Add getMetrics API endpoint for time range metrics 2026-02-15 11:31:43 +00:00
mirivlad 3575e1843e Fix aggregation: proper DATE_FORMAT, escaped % 2026-02-15 10:05:25 +00:00
mirivlad 6073ec348a Add aggregation for metrics: auto/1h/6h/24h/7d/30d zoom levels 2026-02-15 09:49:16 +00:00
mirivlad 19d8bc4268 Fix SQL escape for underscore, add async tooltip handler 2026-02-14 18:14:46 +00:00
mirivlad b132a294ed Hide proc metrics from charts, fix API time search interval 2026-02-14 18:11:04 +00:00
mirivlad 3f3eacaefc Properly add process tooltip function 2026-02-14 17:31:26 +00:00
mirivlad ce3ccf6fe9 Add API endpoint for top processes and DB dump update 2026-02-14 17:09:04 +00:00
mirivlad c7fdaa5660 Initial commit - mon.mirv.top monitoring system 2026-02-14 15:08:14 +00:00