[Документация Yandex Cloud](../../../index.md) > [Yandex Compute Cloud](../../index.md) > [Пошаговые инструкции](../index.md) > Управление группой виртуальных машин > Настроить проверку состояния приложения на ВМ

# Настроить проверку состояния приложения на ВМ

Чтобы повысить доступность приложения и убедиться в том, что оно отвечает, можно настроить проверку состояния приложения на виртуальной машине. Instance Groups будет выполнять проверку и автоматически восстанавливать виртуальную машину, если она не прошла проверку. Не путайте с [проверкой состояния](../../../network-load-balancer/concepts/health-check.md) в сетевом балансировщике. [Подробнее](../../concepts/instance-groups/autohealing.md) про автоматическое восстановление и типы проверок.

В этом разделе описывается, как настроить проверку состояния приложения для уже созданной группы.

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) откройте каталог, в котором находится нужная группа ВМ.
  1. Перейдите в сервис **Compute Cloud**.
  1. На панели слева выберите ![image](../../../_assets/console-icons/layers-3-diagonal.svg) **Группы виртуальных машин**.
  1. Выберите группу, которую хотите изменить.
  1. В правом верхнем углу страницы нажмите **Редактировать**.
  1. В блоке **Проверка состояний** включите опцию **Активировать**.
  1. Задайте настройки проверок состояния:
     * **Тип** — `HTTP` или `TCP`.
     * **Путь** (для HTTP) — URL‐путь запроса, на который Instance Groups будет отправлять запросы проверки для HTTP.
     * **Порт** — порт из диапазона 1-32767, на который Instance Groups будет отправлять запросы проверки.

       {% note alert %}

       Поддерживается только HTTP/1.1 и ниже.

       {% endnote %}
     * **Время ожидания, c** — время ожидания ответа в секундах.  
       Если вы [подключили группу к сетевому балансировщику](create-with-balancer.md), рекомендуем здесь выставить значение _больше_, чем в балансировщике.
     * **Интервал, c** — интервал проверок в секундах.С этим интервалом Instance Groups будет проверять состояние приложения.
     * **Порог работоспособности** — количество успешных проверок, после которого виртуальная машина будет считаться работающей нормально.  
        Если вы подключили группу к сетевому балансировщику, рекомендуем здесь выставить значение _меньше_, чем в балансировщике.
     * **Порог неработоспособности** — количество неудачных проверок, после которого виртуальная машина будет считаться неработающей.
       Если вы подключили группу к сетевому балансировщику, рекомендуем здесь выставить значение _больше_, чем в балансировщике.
  1. Нажмите кнопку **Сохранить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для изменения группы:

     ```
     yc compute instance-group update --help
     ```
  
  1. Получите список групп виртуальных машин в каталоге по умолчанию:

      ```bash
      yc compute instance-group list
      ```
      
      Результат:
      
      ```text
      +----------------------+----------------------+--------+------+
      |          ID          |          NAME        | STATUS | SIZE |
      +----------------------+----------------------+--------+------+
      | cl15b3mrkk88******** | first-instance-group | ACTIVE |    3 |
      +----------------------+----------------------+--------+------+
      ```
  1. Выберите идентификатор (`ID`) или имя (`NAME`) нужной группы, например `first-instance-group`.
  1. [Получите информацию](get-info.md) о группе виртуальных машин.
  1. Создайте YAML-файл с произвольным именем, например `group.yaml` и, исходя из полученной информации, опишите:

      * [шаблон](../../concepts/instance-groups/instance-template.md) виртуальной машины;
      * [политики](../../concepts/instance-groups/policies/index.md);
      * идентификатор сервисного аккаунта;
      * спецификацию сетевого балансировщика нагрузки, если необходимо.

  1. Добавьте в файл спецификацию проверок состояния, например для проверок по протоколу HTTP:

     ```yaml
     ...
     health_checks_spec:
       health_check_specs:
         - http_options:
             port: 80
             path: /
           interval: 30s
           timeout: 10s
           unhealthy_threshold: 5
           healthy_threshold: 3
     ...
     ```

      Где:

      Ключ | Значение
      ----- | -----
      `health_check_specs` | Спецификация проверки состояния.
      `http_options` | Настройки проверок по протоколу HTTP. Поддерживается только HTTP/1.1 и ниже.<br>Если вы хотите использовать протокол TCP, используйте свойство `tcp_options` и укажите в нем только порт.
      `port` | Порт из диапазона 1-32767, на который Instance Groups будет отправлять запросы проверки.
      `path` | URL‐путь запроса, на который Instance Groups будет отправлять запросы проверки для HTTP.
      `interval` | Интервал проверок в секундах — с этим интервалом Instance Groups будет проверять состояние приложения.
      `timeout` | Время ожидания ответа в секундах.<br>Если вы [подключили группу к сетевому балансировщику](create-with-balancer.md), рекомендуем здесь выставить значение _больше_, чем в балансировщике.
      `unhealthy_threshold` | Порог неработоспособности — количество неудачных проверок, после которого виртуальная машина будет считаться неработающей.<br>Если вы подключили группу к сетевому балансировщику, рекомендуем здесь выставить значение _больше_, чем в балансировщике.
      `healthy_threshold` | Порог работоспособности — количество успешных проверок, после которого виртуальная машина будет считаться работающей нормально.<br>Если вы подключили группу к сетевому балансировщику, рекомендуем здесь выставить значение _меньше_, чем в балансировщике.

  1. Обновите группу виртуальных машин в каталоге по умолчанию:

      ```
      yc compute instance-group update --name first-group --file group.yaml
      ```

     Instance Groups запустит операцию изменения группы виртуальных машин.

{% endlist %}