# AGENTS.md - Инструкции для агентов по работе с проектом мониторинга ## О проекте **Название:** Система мониторинга серверов **URL:** https://mon.mirv.top **Расположение:** /var/www/mon **Технологии:** PHP 8.1+, 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 - `GET /api/servers` - список мониторинговых серверов - `GET /api/servers/{id}` - детали сервера - `POST /api/servers` - создание нового сервера - `PUT /api/servers/{id}` - обновление сервера - `DELETE /api/servers/{id}` - удаление сервера - `GET /api/metrics/{server_id}` - метрики сервера - `POST /api/agent/metrics` - получение метрик от агента - `GET /csrf-token` - получение CSRF токена для форм ## Агентские задачи ### 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