mirvmon/AGENTS.md

4.9 KiB
Raw Blame History

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 при наличии

Часто используемые команды

# Установка зависимостей
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