docs: Update documentation to reflect current state
README.md: - Fix badge line breaks - Add migration 008_auto_cleanup_metrics.sql - Improve architecture diagram - Add troubleshooting section - Add changelog - Fix formatting ARCHITECTURE.md: - Update agent metrics list (net_in_*, temp_*, etc.) - Change interval from 10s to 60s - Fix architecture diagram INSTALL.md: - PHP 8.1 -> 8.3 - php8.1-fpm.sock -> php8.3-fpm.sock - Update API example with current metrics AGENTS.md: - PHP 8.1 -> 8.3 - Update API endpoints with new /get-agent, /agent/install.sh docker/README.md: - Fix password from 'admin' to 'mirvmon2026' TECHNICAL_SPECIFICATION.md: - Change agent interval from 10s to 60s - Add lm-sensors, smartmontools to agent requirements
This commit is contained in:
parent
fe1463442a
commit
6d3542232a
20
AGENTS.md
20
AGENTS.md
|
|
@ -5,7 +5,7 @@
|
||||||
**Название:** Система мониторинга серверов
|
**Название:** Система мониторинга серверов
|
||||||
**URL:** https://mon.mirv.top
|
**URL:** https://mon.mirv.top
|
||||||
**Расположение:** /var/www/mon
|
**Расположение:** /var/www/mon
|
||||||
**Технологии:** PHP 8.1+, Slim Framework 4, Twig, MySQL/MariaDB
|
**Технологии:** PHP 8.3+, Slim Framework 4, Twig, MySQL/MariaDB
|
||||||
|
|
||||||
## Структура проекта
|
## Структура проекта
|
||||||
|
|
||||||
|
|
@ -46,14 +46,18 @@
|
||||||
|
|
||||||
## API endpoints
|
## API endpoints
|
||||||
|
|
||||||
- `GET /api/servers` - список мониторинговых серверов
|
### Публичные (без авторизации)
|
||||||
- `GET /api/servers/{id}` - детали сервера
|
- `POST /api/v1/metrics` - получение метрик от агента
|
||||||
- `POST /api/servers` - создание нового сервера
|
- `GET /get-agent?token=` - скачать Python-агента
|
||||||
- `PUT /api/servers/{id}` - обновление сервера
|
- `GET /agent/install.sh?token=` - скачать установочный скрипт (Linux)
|
||||||
- `DELETE /api/servers/{id}` - удаление сервера
|
- `GET /agent/install.bat?token=` - скачать установочный скрипт (Windows)
|
||||||
- `GET /api/metrics/{server_id}` - метрики сервера
|
|
||||||
- `POST /api/agent/metrics` - получение метрик от агента
|
### Защищённые (требуется авторизация)
|
||||||
- `GET /csrf-token` - получение CSRF токена для форм
|
- `GET /csrf-token` - получение CSRF токена для форм
|
||||||
|
- `GET /` - дашборд
|
||||||
|
- `GET /servers` - список серверов
|
||||||
|
- `GET /servers/{id}` - детали сервера
|
||||||
|
- `GET /alerts` - список алертов
|
||||||
|
|
||||||
## Агентские задачи
|
## Агентские задачи
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,15 +25,15 @@
|
||||||
|
|
||||||
### Общая схема
|
### Общая схема
|
||||||
```
|
```
|
||||||
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
+---------------+ POST /api/v1/metrics +--------------+
|
||||||
│ Python Agent │─────▶│ API /metrics │─────▶│ Database │
|
| Python Agent | --------------------------> | PHP Backend |
|
||||||
│ (каждые 10с) │ HTTP │ (public) │ │ (MySQL) │
|
| (каждые 60с) | JSON: metrics + services | (Slim 4) |
|
||||||
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
+---------------+ <-------------------------- +------+-------+
|
||||||
▲
|
^
|
||||||
┌─────────────────┐ ┌──────────────────┐ │
|
+---------------+ +-----------------------+ |
|
||||||
│ Web Browser │─────▶│ Slim Framework │────────────┘
|
| Web Browser | ---> | /servers/{id} | ---------------+
|
||||||
│ (Dashboard) │ HTTP │ (PHP 8.1+) │
|
| (Dashboard) | | /alerts, /admin |
|
||||||
└─────────────────┘ └──────────────────┘
|
+---------------+ +-----------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
### Технологический стек
|
### Технологический стек
|
||||||
|
|
@ -189,24 +189,28 @@ alerts # Алерты
|
||||||
### agent.py
|
### agent.py
|
||||||
**Расположение:** `/var/www/mon/agent.py`
|
**Расположение:** `/var/www/mon/agent.py`
|
||||||
|
|
||||||
**Функции:**
|
**Собираемые метрики:**
|
||||||
- Сбор метрик каждые 10 секунд:
|
- `cpu_load` - загрузка CPU (%)
|
||||||
- `cpu_load` — загрузка CPU (%)
|
- `ram_used` - использовано RAM (%)
|
||||||
- `ram_used` — использовано RAM (%)
|
- `ram_total_gb` - всего RAM (ГБ)
|
||||||
- `disk_used` — использовано Disk (%)
|
- `disk_used_*` - использовано по разделам (%)
|
||||||
- Отправка на `POST /api/v1/metrics`
|
- `disk_total_gb_*` - размер разделов (ГБ)
|
||||||
- Конфигурация через JSON файл
|
- `net_in_{iface}`, `net_out_{iface}` - трафик (% от скорости интерфейса)
|
||||||
- Автозапуск через systemd
|
- `temp_*` - температуры (°C)
|
||||||
|
- `top_cpu_proc`, `top_ram_proc` - топ-5 процессов (JSON)
|
||||||
|
|
||||||
|
**Интервал сбора:** 60 секунд
|
||||||
|
|
||||||
### install.sh
|
### install.sh
|
||||||
**Генерация:** `GET /agent/install.sh?token={token}`
|
**Endpoint:** `GET /agent/install.sh?token={token}`
|
||||||
|
|
||||||
**Что делает:**
|
**Что делает:**
|
||||||
1. Проверяет Python 3
|
1. Проверяет Python 3, устанавливает psutil, lm-sensors, smartmontools
|
||||||
2. Устанавливает `psutil`
|
2. Скачивает `agent.py` с сервера мониторинга
|
||||||
3. Скачивает `agent.py` с сервера
|
3. Создает конфиг с токеном и URL API
|
||||||
4. Создаёт конфиг с токеном и URL
|
4. Создает systemd сервис `server-monitor-agent.service`
|
||||||
5. Создаёт systemd сервис `server-mon-agent.service`
|
|
||||||
|
**Безопасность:** Скрипт и агент доступны только с валидным токеном сервера.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -289,15 +293,23 @@ certbot --nginx -d mon.mirv.top
|
||||||
|
|
||||||
### Стандартные метрики (metric_names)
|
### Стандартные метрики (metric_names)
|
||||||
| Имя | Единица | Описание |
|
| Имя | Единица | Описание |
|
||||||
|-----|---------|----------|
|
|-----|---------|---------|
|
||||||
| `cpu_load` | % | Загрузка CPU |
|
| `cpu_load` | % | Загрузка CPU |
|
||||||
| `ram_used` | % | Использовано RAM |
|
| `ram_used` | % | Использовано RAM |
|
||||||
| `disk_used` | % | Использовано Disk |
|
| `ram_total_gb` | ГБ | Всего RAM |
|
||||||
|
| `disk_used` | % | Использовано (общий) |
|
||||||
|
| `disk_used_root` | % | Использовано (/) |
|
||||||
|
| `disk_used_home` | % | Использовано (/home) |
|
||||||
|
| `disk_used_*` | % | Другие разделы |
|
||||||
|
| `net_in_{iface}` | % | Входящий трафик |
|
||||||
|
| `net_out_{iface}` | % | Исходящий трафик |
|
||||||
|
| `temp_cpu` | °C | Температура CPU |
|
||||||
|
| `temp_hdd` | °C | Температура диска |
|
||||||
| `top_cpu_proc` | JSON | Топ-5 процессов по CPU |
|
| `top_cpu_proc` | JSON | Топ-5 процессов по CPU |
|
||||||
| `top_ram_proc` | JSON | Топ-5 процессов по RAM |
|
| `top_ram_proc` | JSON | Топ-5 процессов по RAM |
|
||||||
|
|
||||||
### Период сбора
|
### Период сбора
|
||||||
- **Агент:** каждые 10 секунд
|
- **Агент:** каждые 60 секунд
|
||||||
- **Дашборд:** автообновление каждые 30 секунд
|
- **Дашборд:** автообновление каждые 30 секунд
|
||||||
- **Графики:** 24 часа / 7 дней / 30 дней
|
- **Графики:** 24 часа / 7 дней / 30 дней
|
||||||
|
|
||||||
|
|
|
||||||
22
INSTALL.md
22
INSTALL.md
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Требования
|
## Требования
|
||||||
|
|
||||||
- PHP 8.1 или выше
|
- PHP 8.3 или выше
|
||||||
- Composer
|
- Composer
|
||||||
- MySQL 8+ или MariaDB 10.5+
|
- MySQL 8+ или MariaDB 10.5+
|
||||||
- Apache или Nginx
|
- Apache или Nginx
|
||||||
|
|
@ -72,7 +72,7 @@ server {
|
||||||
|
|
||||||
location ~ \.php$ {
|
location ~ \.php$ {
|
||||||
include snippets/fastcgi-php.conf;
|
include snippets/fastcgi-php.conf;
|
||||||
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
|
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
|
||||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -136,11 +136,25 @@ chmod +x install.sh
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"cpu_load": 45.2,
|
"cpu_load": 45.2,
|
||||||
"ram_used": 89.1,
|
"ram_used": 89.1,
|
||||||
"disk_used": 65.5
|
"ram_total_gb": 16.0,
|
||||||
}
|
"disk_used_root": 65.5,
|
||||||
|
"net_in_ens3": 12.3,
|
||||||
|
"net_out_ens3": 5.6
|
||||||
|
},
|
||||||
|
"services": [
|
||||||
|
{"name": "nginx", "status": "running"}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Скачивание агента
|
||||||
|
|
||||||
|
```
|
||||||
|
GET /get-agent?token=<server_token>
|
||||||
|
GET /agent/install.sh?token=<server_token>
|
||||||
|
GET /agent/install.bat?token=<server_token>
|
||||||
|
```
|
||||||
|
|
||||||
## Безопасность
|
## Безопасность
|
||||||
|
|
||||||
- Все пароли хешируются с помощью `password_hash()`
|
- Все пароли хешируются с помощью `password_hash()`
|
||||||
|
|
|
||||||
219
README.md
219
README.md
|
|
@ -1,35 +1,28 @@
|
||||||
# 🖥️ mirvmon — Система мониторинга серверов
|
# mirvmon — Система мониторинга серверов
|
||||||
|
|
||||||
> Лёгкая и функциональная система мониторинга для домашних и небольших серверных
|
> Легкая и функциональная система мониторинга для домашних и небольших серверных инфраструктур.
|
||||||
инфраструктур.
|
|
||||||
|
|
||||||
[](https://php.net)
|
[](https://php.net) [](https://www.slimframework.com) [](https://mariadb.org) [](https://www.chartjs.org)
|
||||||
[](https://www.slimfram
|
|
||||||
ework.com)
|
|
||||||
[](https://mari
|
|
||||||
adb.org)
|
|
||||||
[](https://www.
|
|
||||||
chartjs.org)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📋 Возможности
|
## Возможности
|
||||||
|
|
||||||
- 📊 **Метрики в реальном времени:** CPU, RAM, диск (по разделам), сеть (In/Out в %)
|
- **Метрики в реальном времени:** CPU, RAM, диск (по разделам), сеть (In/Out в %)
|
||||||
- 🔔 **Алерты и уведомления:** Настраиваемые пороги с уведомлениями через Telegram и Email
|
- **Алерты и уведомления:** Настраиваемые пороги с уведомлениями через Telegram и Email
|
||||||
- 🖧 **Мониторинг сервисов:** Отслеживание состояния systemd-сервисов с алертами при остановке
|
- **Мониторинг сервисов:** Отслеживание состояния systemd-сервисов с алертами при остановке
|
||||||
- 📈 **Интерактивные графики:** Зум, панорамирование, детализация по периодам (1ч, 6ч, 24ч, 7д, 30д)
|
- **Интерактивные графики:** Зум, панорамирование, детализация по периодам (1ч, 6ч, 24ч, 7д, 30д)
|
||||||
- 🌐 **Множество серверов:** Поддержка неограниченного числа серверов через Python-агент
|
- **Множество серверов:** Поддержка неограниченного числа серверов через Python-агент
|
||||||
- 🎨 **Цветная индикация:** Прогресс-бары меняют цвет (🟢 → 🟡 → 🔴) при приближении к порогам
|
- **Цветная индикация:** Прогресс-бары меняют цвет при приближении к порогам
|
||||||
- 🔐 **Авторизация:** Сессионная аутентификация с CSRF-защитой
|
- **Авторизация:** Сессионная аутентификация с CSRF-защитой
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Установка
|
## Установка
|
||||||
|
|
||||||
### Вариант A: Docker (рекомендуется)
|
### Вариант A: Docker (рекомендуется)
|
||||||
|
|
||||||
Самый быстрый способ — всё поднимается автоматически:
|
Самый быстрый способ - все поднимается автоматически:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Клонируем
|
# 1. Клонируем
|
||||||
|
|
@ -62,7 +55,7 @@ git pull
|
||||||
docker compose -f docker/docker-compose.yml up -d --build
|
docker compose -f docker/docker-compose.yml up -d --build
|
||||||
```
|
```
|
||||||
|
|
||||||
> 📦 Код внутри Docker-образа (immutable). Данные БД в volume `db_data` — не теряются.
|
> Код внутри Docker-образа (immutable). Данные БД в volume `db_data` - не теряются.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -85,14 +78,10 @@ GRANT ALL PRIVILEGES ON monitoring_system.* TO 'mon_user'@'localhost';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Загружаем схему
|
# Загружаем миграции
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/001_create_base_schema.sql
|
for f in docker/migrations/*.sql; do
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/002_add_encrypted_token.sql
|
mysql -u mon_user -pmon_password_123 monitoring_system < "$f"
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/003_add_agent_configs.sql
|
done
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/004_add_global_notification_settings.sql
|
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/005_add_service_tables.sql
|
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/006_server_metrics_value_to_text.sql
|
|
||||||
mysql -u mon_user -pmon_password_123 monitoring_system < docker/migrations/007_seed_admin_user.sql
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. Настройка .env
|
#### 3. Настройка .env
|
||||||
|
|
@ -126,25 +115,169 @@ server {
|
||||||
#### 5. Вход в систему
|
#### 5. Вход в систему
|
||||||
|
|
||||||
`http://your-server/login`
|
`http://your-server/login`
|
||||||
|
|
||||||
- Логин: `admin`
|
- Логин: `admin`
|
||||||
- Пароль: `mirvmon2026` (смените сразу!)
|
- Пароль: `mirvmon2026` (смените сразу!)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🏗️ Архитектура
|
## Архитектура
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────┐ POST /api/v1/metrics ┌──────────────────┐
|
+-----------+ POST /api/v1/metrics +----------+
|
||||||
│ Python Agent │ ──────────────────────────────▶ │ PHP Backend │
|
| Python | -------------------------------> | PHP |
|
||||||
│ (мониторимый │ JSON: метрики + сервисы │ (Slim + Twig) │
|
| Agent | JSON: metrics + services | Backend |
|
||||||
│ сервер) │◀────────────────────────────── │ │
|
| (server) | <------------------------------- +----+-----+
|
||||||
└─────────────────────┘ └────────┬─────────┘
|
+-----------+ ^ |
|
||||||
▲ │
|
^ | | PDO
|
||||||
│ systemctl list-units │ PDO
|
| systemctl list-units | v
|
||||||
│ psutil ▼
|
+-----------+ +-----------+
|
||||||
┌─────────────────────┐ ┌──────────────────┐
|
| Linux | | MariaDB |
|
||||||
│ ОС Linux │ │ MariaDB │
|
| OS | | |
|
||||||
│ (systemd, net, │ │ monitoring_ │
|
+-----------+ +-----------+
|
||||||
│ disk, ps) │ │ system │
|
|
||||||
└─────────────────────┘ └──────────────────┘
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Технологический стек
|
||||||
|
|
||||||
|
| Компонент | Технология |
|
||||||
|
|-------------|-------------------------|
|
||||||
|
| Backend | Slim Framework 4.x |
|
||||||
|
| Frontend | Bootstrap 5 + Chart.js |
|
||||||
|
| Database | MariaDB 10.11 |
|
||||||
|
| Agent | Python 3 + psutil |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Установка агента на сервер
|
||||||
|
|
||||||
|
Агент устанавливается через скачивание скрипта с сервера мониторинга:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. В веб-интерфейсе: Серверы -> Редактирование -> Скачать установочный скрипт
|
||||||
|
|
||||||
|
# 2. На целевом сервере:
|
||||||
|
chmod +x install.sh
|
||||||
|
sudo ./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Агент будет:
|
||||||
|
- Установлен в `/opt/server-monitor-agent/`
|
||||||
|
- Запущен как systemd-сервис
|
||||||
|
- Отправлять метрики каждые 60 секунд
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### Получение метрик от агента
|
||||||
|
|
||||||
|
```
|
||||||
|
POST /api/v1/metrics
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": "server_token",
|
||||||
|
"metrics": {
|
||||||
|
"cpu_load": 45.2,
|
||||||
|
"ram_used": 89.1,
|
||||||
|
"disk_used_root": 65.5,
|
||||||
|
"net_in_ens3": 12.3,
|
||||||
|
"net_out_ens3": 5.6
|
||||||
|
},
|
||||||
|
"services": [
|
||||||
|
{"name": "nginx", "status": "running"},
|
||||||
|
{"name": "mysql", "status": "stopped"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Другие endpoints
|
||||||
|
|
||||||
|
| Endpoint | Описание |
|
||||||
|
|---------------------------------|------------------------------------|
|
||||||
|
| `GET /` | Дашборд |
|
||||||
|
| `GET /servers` | Управление серверами |
|
||||||
|
| `GET /servers/{id}` | Детали сервера с графиками |
|
||||||
|
| `GET /agent/install.sh?token=` | Скачать установочный скрипт (Linux)|
|
||||||
|
| `GET /agent/install.bat?token=` | Скачать установочный скрипт (Win) |
|
||||||
|
| `POST /api/v1/metrics` | Получение метрик от агента |
|
||||||
|
| `GET /alerts` | Список алертов |
|
||||||
|
| `POST /alerts/{id}/resolve` | Отметить алерт решенным |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Агент не отправляет метрики
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверить статус сервиса
|
||||||
|
sudo systemctl status server-monitor-agent
|
||||||
|
|
||||||
|
# Посмотреть логи
|
||||||
|
sudo journalctl -u server-monitor-agent -f
|
||||||
|
|
||||||
|
# Перезапустить
|
||||||
|
sudo systemctl restart server-monitor-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Агент не устанавливается
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверить Python
|
||||||
|
python3 --version
|
||||||
|
|
||||||
|
# Установить зависимости вручную
|
||||||
|
sudo apt install python3-pip
|
||||||
|
sudo pip3 install psutil requests
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker: контейнер не стартует
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверить логи
|
||||||
|
docker compose logs app
|
||||||
|
|
||||||
|
# Пересобрать
|
||||||
|
docker compose down && docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Документация
|
||||||
|
|
||||||
|
- [ARCHITECTURE.md](ARCHITECTURE.md) - Архитектура системы
|
||||||
|
- [TECHNICAL_SPECIFICATION.md](TECHNICAL_SPECIFICATION.md) - Техническое задание
|
||||||
|
- [INSTALL.md](INSTALL.md) - Детальная инструкция установки
|
||||||
|
- [docker/README.md](docker/README.md) - Docker-развертывание
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
### v1.1 (Апрель 2026)
|
||||||
|
- Динамические пороги для метрик сервера
|
||||||
|
- Улучшенный агент с поддержкой VPS (virtio-диски)
|
||||||
|
- Скачивание агента с сервера (вместо встраивания в скрипт)
|
||||||
|
- Защита endpoint агента токеном
|
||||||
|
- Doughnut-графики для разделов дисков
|
||||||
|
- Графики температур и сетевых интерфейсов
|
||||||
|
- Топ-процессы в тултипах графиков
|
||||||
|
- Мониторинг systemd-сервисов
|
||||||
|
|
||||||
|
### v1.0 (Февраль 2026)
|
||||||
|
- Ядро системы (Slim 4 + Twig + Bootstrap 5)
|
||||||
|
- Аутентификация и авторизация
|
||||||
|
- CRUD серверов и групп
|
||||||
|
- API для приема метрик
|
||||||
|
- Python-агент с systemd
|
||||||
|
- Графики Chart.js
|
||||||
|
- Система алертов с порогами
|
||||||
|
- Топ-5 процессов по CPU/RAM
|
||||||
|
- Уведомления (Email/Telegram)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
|
||||||
|
MIT
|
||||||
|
|
|
||||||
|
|
@ -55,11 +55,11 @@
|
||||||
|
|
||||||
### 3.5. Агент мониторинга
|
### 3.5. Агент мониторинга
|
||||||
- **Скрипт установки:** `GET /agent/install.sh?token=...` → динамически генерирует **bash-скрипт**, который:
|
- **Скрипт установки:** `GET /agent/install.sh?token=...` → динамически генерирует **bash-скрипт**, который:
|
||||||
1. Устанавливает Python3, psutil.
|
1. Устанавливает Python3, psutil, lm-sensors, smartmontools.
|
||||||
2. Скачивает Python-агента (`agent.py`) с вашего сервера.
|
2. Скачивает Python-агента (`agent.py`) с вашего сервера.
|
||||||
3. Подставляет **токен** и **URL API** в конфиг агента.
|
3. Подставляет **токен** и **URL API** в конфиг агента.
|
||||||
4. Создает systemd-сервис для автостарта.
|
4. Создает systemd-сервис для автостарта.
|
||||||
- **Python-агент:** собирает CPU, RAM, Disk раз в **10 секунд**, отправляет на `/api/v1/metrics`.
|
- **Python-агент:** собирает CPU, RAM, Disk, Network, Temperature раз в **60 секунд**, отправляет на `/api/v1/metrics`.
|
||||||
|
|
||||||
### 3.6. Страница сервера (`/server/{id}`)
|
### 3.6. Страница сервера (`/server/{id}`)
|
||||||
- **Текущие значения** всех метрик.
|
- **Текущие значения** всех метрик.
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,8 @@ nano .env
|
||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
|
|
||||||
# 4. Открываем http://localhost:8080
|
# 4. Открываем http://localhost:8080
|
||||||
# Логин: admin, Пароль: admin (сменить сразу!)
|
# Логин: admin
|
||||||
|
# Пароль: mirvmon2026 (сменить сразу!)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Обновление
|
## Обновление
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue