Download PDF
Download page Рекомендации по настройке отслеживания состояния компонентов Termidesk.
Рекомендации по настройке отслеживания состояния компонентов Termidesk
Общие сведения по проверке состояния компонентов
Для отслеживания состояния компонентов Termidesk и обращения к ним для выполнения проверок состояния здоровья (health check) используется API-запрос /api/health
.
Начальная спецификация схемы HealthCheck API в формате OpenAPI соответствует описанию:
openapi: 3.0.3
info:
title: Termidesk health check api schema
version: 0.1
paths:
/api/health:
get:
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum: [pass, warn, fail]
example: fail
description: "Состояние компонента"
version:
type: string
example: 3.3
description: "Версия компонента"
description:
type: string
example: termidesk-taskman
description: "Описание компонента"
output:
type: string
example: "django.db.utils.OperationalError: FATAL: password authentication failed for user 'termidesk'"
description: "Описание ошибки (если есть)"
required:
- status
'401':
description: Authorization information is missing or invalid
Базовый URL для API: /api/health
.
Тип контента: application/json
.
/etc/opt/termidesk-vdi/termidesk.conf
. Порт можно переопределить в этом же файле. Для исключения злоупотреблением частыми вызовами API, способными создать нагрузку на систему, доступ к API-запросу контролируется отдельным токеном. Значение токена задается конфигурационным файлом /etc/opt/termidesk-vdi/termidesk.conf
в переменной HEALTH_CHECK_ACCESS_KEY
.
Пример:
HEALTH_CHECK_ACCESS_KEY = "9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"
Состояние компонента «Универсальный диспетчер»
При распределенной установке Termidesk экземпляры компонента «Универсальный диспетчер» могут быть установлены на нескольких узлах. Доступ к узлам организуется через балансировщик трафика, но для механизма проверок состояния нужно обращаться к каждому узлу напрямую.
Компонент изначально задействован для работы по протоколу HTTP, поэтому механизм проверки состояния реализуется отдельными вызовами REST API.
Пример команды проверки состояния компонента через утилиту curl
:
curl -v -s -X 'GET' "${HOSTNAME}:${HEALTH_PORT}/api/health" -H 'accept: application/json' -H "Authorization: Token ${HEALTH_CHECK_ACCESS_KEY}" --fail -w "\n%{http_code}"
Состояние компонента «Шлюз»
При распределенной установке Termidesk экземпляры компонента «Шлюз» могут быть установлены на нескольких узлах. Доступ к узлам организуется через балансировщик трафика, но для механизма проверок состояния нужно обращаться к каждому узлу напрямую.
Пример команды проверки состояния компонента через утилиту curl
:
curl -I -X 'GET' -H "Accept: text/plain" http://<IP-адрес_шлюза>:5099/info
Пример ответа для работоспособного компонента:
HTTP/1.1 200 OK
Date: Tue, 28 Nov 2023 07:37:51 GMT
uWebSockets: 20
Content-Length: 314
Код 200 в ответе на API-запрос свидетельствует о работоспособности компонента «Шлюз». Отсутствие ответа говорит о том, что компонент не работает. Данное правило необходимо добавить на балансировщике трафика.
Состояние компонента «Менеджер рабочих мест»
При распределенной установке Termidesk экземпляры компонента «Менеджер рабочих мест» могут быть установлены на нескольких узлах, но активен должен быть только один из них. Все остальные компоненты являются резервными и, по умолчанию, находятся в состоянии «Passive».
Для использования механизма проверки состояния компонента необходимо в конфигурационном файле /etc/opt/termidesk-vdi/termidesk.conf
раскомментировать строки параметров TASKMAN_HEALTH_CHECK_PORT
, TASKMAN_HEALTH_CHECK_CERT
,
TASKMAN_HEALTH_CHECK_KEY
. Для параметров TASKMAN_HEALTH_CHECK_CERT
, TASKMAN_HEALTH_CHECK_KEY
нужно указать путь к сертификату и ключу, используемых для защищенного подключения, и выполнить перезапуск служб Termidesk.
Пример задания значений:
TASKMAN_HEALTH_CHECK_PORT=8100
TASKMAN_HEALTH_CHECK_CERT=/etc/opt/termidesk-vdi/taskman-healthcheck.pem
TASKMAN_HEALTH_CHECK_KEY=/etc/opt/termidesk-vdi/taskman-healthcheck-decrypted.key
Пример команды проверки состояния компонента через утилиту curl
:
curl -v -s -X 'GET' "${HOSTNAME}:8100/api/health" -H 'accept: application/json' -H "Authorization: Token ${HEALTH_CHECK_ACCESS_KEY}" --fail -w "\n%{http_code}"