mirvmon/AGENTS.md

128 lines
5.1 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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