# Как мониторить и диагностировать инфраструктуру с помощью Rediacc

Поддержание здоровой инфраструктуры требует видимости состояния машины, статуса контейнеров и состояния служб. В этом руководстве вы запустите диагностику среды, проверите состояние машины, инспектируете контейнеры и службы, просмотрите статус хранилища и проверите подключение. По завершении вы будете знать, как выявлять и исследовать проблемы в вашей инфраструктуре.

## Предварительные требования

- Установленная CLI `rdc` с инициализированной конфигурацией
- Подготовленная машина с хотя бы одним запущенным репозиторием (см. [Руководство: Жизненный цикл репозитория](/ru/docs/tutorial-repos))

## Интерактивная запись

![Руководство: Мониторинг и диагностика](/assets/tutorials/monitoring-tutorial.cast)

### Шаг 1: Запуск диагностики

Начните с проверки локальной среды на наличие проблем конфигурации.

```bash
rdc doctor
```

Проверяет Node.js, версию CLI, бинарный файл renet, конфигурацию и поддержку виртуализации. Каждая проверка сообщает **OK**, **Warning** или **Error**.

### Шаг 2: Проверка состояния машины

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

Получает подробный отчёт о состоянии удалённой машины: время работы системы, использование дисков, использование хранилища данных, количество контейнеров, статус SMART хранилища и выявленные проблемы.

### Шаг 3: Просмотр запущенных контейнеров

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

Выводит список всех запущенных контейнеров по всем репозиториям на машине, показывая имя, статус, состояние, здоровье, использование CPU, использование памяти и какому репозиторию принадлежит каждый контейнер.

### Шаг 4: Проверка служб systemd

Чтобы увидеть базовые службы, обеспечивающие работу Docker daemon и сети каждого репозитория:

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

Выводит список служб systemd, связанных с Rediacc (Docker daemons, loopback-алиасы), с их состоянием, подсостоянием, количеством перезапусков и использованием памяти.

### Шаг 5: Обзор состояния хранилища

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

Предоставляет общий обзор машины: имя хоста, время работы, память, диск, хранилище данных и общее количество репозиториев.

### Шаг 6: Сканирование ключей хоста

Если машина была переустановлена или её IP изменился, обновите сохранённый SSH-ключ хоста.

```bash
rdc config machine scan-keys -m server-1
```

Получает текущие ключи хоста сервера и обновляет вашу конфигурацию. Это предотвращает ошибки "host key verification failed".

### Шаг 7: Проверка подключения

Быстрая проверка SSH-подключения для подтверждения того, что машина доступна и отвечает.

```bash
rdc term connect -m server-1 -c "hostname"
rdc term connect -m server-1 -c "uptime"
```

Имя хоста подтверждает подключение к правильному серверу. Время работы подтверждает нормальную работу системы.

## Устранение неполадок

**Проверка состояния завершается по таймауту или показывает "SSH connection failed"**
Убедитесь, что машина онлайн и доступна: `ping <ip>`. Проверьте правильность настройки SSH-ключа с помощью `rdc term connect -m <machine> -c "echo ok"`.

**"Service not found" в списке служб**
Службы Rediacc появляются только после развёртывания хотя бы одного репозитория. Если репозиториев нет, список служб пуст.

**Список контейнеров показывает устаревшие или остановленные контейнеры**
Контейнеры от предыдущих развёртываний могут оставаться, если `repo down` не был выполнен корректно. Остановите их с помощью `rdc repo down <repo> -m <machine>` или проверьте напрямую через `rdc term connect -m <machine> -r <repo> -c "docker ps -a"`.

## Следующие шаги

Вы выполнили диагностику, проверили состояние машины, инспектировали контейнеры и службы, и проверили подключение. Для работы с вашими развёртываниями:

- [Мониторинг](/ru/docs/monitoring), полный справочник по всем командам мониторинга
- [Устранение неполадок](/ru/docs/troubleshooting), распространённые проблемы и решения
- [Руководство: Инструменты](/ru/docs/tutorial-tools), терминал, синхронизация файлов и интеграция с VS Code