128 lines
5.1 KiB
Markdown
Executable File
128 lines
5.1 KiB
Markdown
Executable File
# 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 |