# Мониторинг

Rediacc предоставляет встроенные команды мониторинга для проверки состояния машин, запущенных контейнеров, сервисов, статуса репозиториев и системной диагностики.

## Состояние машины

Получение комплексного отчёта о состоянии машины:

```bash
rdc machine health server-1
```

Отчёт включает:
- **System**: время работы, использование диска, использование хранилища
- **Контейнеры**: количество запущенных, исправных и неисправных
- **Хранилище**: состояние SMART
- **Проблемы**: обнаруженные проблемы

Используйте `--output json` для машиночитаемого вывода.

## Список контейнеров

Просмотр всех запущенных контейнеров во всех репозиториях на машине:

```bash
rdc machine containers server-1
```

| Столбец | Описание |
|---------|----------|
| Name | Имя контейнера |
| Status | Время работы или причина остановки |
| State | Запущен, остановлен и т.д. |
| Health | Исправен, неисправен, нет |
| CPU | Процент использования CPU |
| Memory | Использование памяти / лимит |
| Repository | Репозиторий, которому принадлежит контейнер |

Параметры:
- `--health-check`, выполнить активные проверки состояния контейнеров
- `--output json`, машиночитаемый вывод в формате JSON

JSON-вывод включает полные сведения о контейнере (`labels`, `port_mappings`, `image`, `id`), а также `repository` (разрешённое имя), `repository_guid` (исходный GUID), `domain` и `autoRoute`.

## Список сервисов

Просмотр systemd-сервисов, связанных с Rediacc, на машине:

```bash
rdc machine services server-1
```

| Столбец | Описание |
|---------|----------|
| Name | Имя сервиса |
| State | Активен, неактивен, сбой |
| Sub-state | Запущен, остановлен и т.д. |
| Restarts | Количество перезапусков |
| Memory | Использование памяти сервисом |
| Repository | Связанный репозиторий |

Параметры:
- `--stability-check`, пометить нестабильные сервисы (сбой, более 3 перезапусков, автоматический перезапуск)
- `--output json`, машиночитаемый вывод в формате JSON

JSON-вывод включает полные сведения о сервисе с `repository` (разрешённое имя) и `repository_guid` (исходный GUID).

## Список репозиториев

Просмотр репозиториев на машине с подробной статистикой:

```bash
rdc machine repos server-1
```

| Столбец | Описание |
|---------|----------|
| Name | Имя репозитория |
| Size | Размер образа диска |
| Mount | Смонтирован или размонтирован |
| Docker | Docker daemon запущен или остановлен |
| Containers | Количество контейнеров |
| Disk Usage | Фактическое использование диска внутри репозитория |
| Modified | Время последнего изменения |

Параметры:
- `--search <text>`, фильтрация по имени или пути монтирования
- `--output json`, машиночитаемый вывод в формате JSON

JSON-вывод включает `name` (разрешённое) и `guid` (исходный GUID), а также содержит для каждого репозитория вложенные массивы `containers` (с `domain`, `autoRoute`, `repository`/`repository_guid`) и `services`.

## Статус Vault

Получение полного обзора машины, включая информацию о развёртывании:

```bash
rdc machine vault-status --name server-1
```

Предоставляет:
- Имя хоста и время работы
- Использование памяти, диска и хранилища
- Общее количество репозиториев, количество смонтированных и запущенных Docker
- Подробную информацию по каждому репозиторию

Используйте `--output json` для машиночитаемого вывода.

## Проверка соединения

> **Только для облачного адаптера.** В локальном режиме используйте `rdc term connect -m server-1 -c "hostname"` для проверки подключения.

Проверка SSH-подключения к машине:

```bash
rdc machine test-connection --ip 203.0.113.50 --user deploy
```

Отчёт включает:
- Статус соединения (успешно/неудачно)
- Используемый метод аутентификации
- Конфигурацию SSH-ключа
- Статус развёртывания публичного ключа
- Запись в Known hosts

Параметры:
- `--port <number>`, SSH-порт (по умолчанию: 22)
- `--save -m server-1`, сохранить проверенный ключ хоста в конфигурации машины

## Диагностика (doctor)

Запуск комплексной диагностической проверки среды Rediacc:

```bash
rdc doctor
```

| Категория | Проверки |
|-----------|----------|
| **Окружение** | Версия Node.js, версия CLI, режим SEA, установка Go, доступность Docker |
| **Renet** | Расположение бинарного файла, версия, CRIU, rsync, встроенные ресурсы SEA |
| **Конфигурация** | Активная конфигурация, адаптер, машины, SSH-ключ |
| **Virtualization** | Checks if your system can run local virtual machines (`rdc ops`) |

Каждая проверка сообщает **OK**, **Предупреждение** или **Ошибка**. Используйте это как первый шаг при устранении любых неполадок.

Коды выхода: `0` = всё пройдено, `1` = предупреждения, `2` = ошибки.