# AGENTS.md - Инструкции для агентов по работе с проектом мониторинга ## О проекте **Название:** Система мониторинга серверов **URL:** https://mon.mirv.top **Расположение:** /var/www/mon **Технологии:** PHP 8.3+, Slim Framework 4, Twig, MySQL/MariaDB ## Структура проекта ``` /var/www/mon/ ├── composer.json # Зависимости проекта ├── composer.lock # Зафиксированные версии зависимостей ├── .env # Конфигурация окружения ├── public/ │ ├── index.php # Точка входа │ ├── css/ # Стили │ └── js/ # JavaScript ├── src/ │ ├── Controllers/ # Контроллеры │ ├── Middleware/ # Промежуточное ПО │ ├── Models/ # Модели данных │ └── Services/ # Бизнес-логика ├── templates/ # Шаблоны Twig ├── migrations/ # Миграции базы данных └── tests/ # Тесты ``` ## Зависимости - PHP 8.1+ - Slim Framework 4 - Twig template engine - MySQL/MariaDB - Composer для управления зависимостями ## Конфигурация Файл `.env` содержит: - DATABASE_URL - строка подключения к базе данных - JWT_SECRET - секрет для JWT токенов - SMTP настройки - для отправки уведомлений - API токены для агентов мониторинга ## API endpoints ### Публичные (без авторизации) - `POST /api/v1/metrics` - получение метрик от агента - `GET /get-agent?token=` - скачать Python-агента - `GET /agent/install.sh?token=` - скачать установочный скрипт (Linux) - `GET /agent/install.bat?token=` - скачать установочный скрипт (Windows) ### Защищённые (требуется авторизация) - `GET /csrf-token` - получение CSRF токена для форм - `GET /` - дашборд - `GET /servers` - список серверов - `GET /servers/{id}` - детали сервера - `GET /alerts` - список алертов ## Агентские задачи ### 1. Добавление нового сервера для мониторинга 1. Использовать форму в `/servers/create` 2. Убедиться, что CSRF токен добавлен к форме (через `/csrf-token`) 3. Заполнить поля: название, IP-адрес, порт, токен агента 4. Проверить, что сервер отвечает на запросы ### 2. Обновление конфигурации уведомлений 1. Перейти в настройки уведомлений 2. Обновить email или webhook URL 3. Проверить доставку уведомлений ### 3. Управление группами серверов 1. Использовать `/groups` для создания/редактирования групп 2. Назначать серверы в группы 3. Устанавливать правила уведомлений на уровне групп ### 4. Обновление системы 1. Сделать резервную копию базы данных 2. Обновить зависимости через composer 3. Выполнить миграции базы данных 4. Обновить конфигурацию nginx при необходимости ## Безопасность - Все формы требуют CSRF токены - Аутентификация через сессии - Валидация входных данных - Санитизация вывода в шаблонах ## Инструменты для агентов - Использовать `composer` для управления зависимостями - Запускать миграции через `php vendor/bin/phinx` - Тестировать через `phpunit` при наличии ## Часто используемые команды ```bash # Установка зависимостей composer install # Обновление зависимостей composer update # Выполнение миграций php vendor/bin/phinx migrate # Запуск тестов php vendor/bin/phpunit # Резервное копирование БД mysqldump -u username -p database_name > backup.sql ``` ## Особенности архитектуры - MVC паттерн с использованием Slim Framework - Аутентификация через сессии - Middleware для защиты маршрутов - Twig для безопасного рендеринга шаблонов - Поддержка агентов мониторинга через API