null

"Unregistred" состояние Linux машины в Citrix Studio

Подробное логирование.

​​​​​​​Первое, что необходимо сделать - включить Trace логирование демона ctxvda.

cd /etc/xdl/ctx-vda.conf
vi Log4jConfig=”/etc/xdl/log4j.xml”

Далее ищем следующие строки, где меняем меням уровень логирование с "info" на "trace".

<root>
<level value=”trace”/>
<appender-ref ref=”file”/>
<appender-ref ref=”syslog”/>
</root>

Логи находятся в следующей директории: /var/log/xdl/​​​​​​​, основной файл с логами в последних версиях Citrix Virtual Apps and Desktops (на момент написания статьи, последняя версия 2103-2104). В директории много файлов с логами Citrix сервиса, но для диагностики стоит обратить внимание на jproxy.log

​​​​​​​Перезапускаем сервис:

systemctl restart ctxvda

​​​​​​​Исходя из более подробного логирования, важно отметить проблемы возникшие с сервисом. Пример лога с ошибками, строки об ошибке имеют обозначение [ERROR]:​​​​​

2021-05-20 16:55:29.230 [ERROR] [12] - CbpProxy.ClosedownService: An exception has occured while attempting to roll back controller. Error: null
2021-05-20 16:56:15.117 [INFO ] [1] - Java version "11.0.11". OpenJDK Runtime Environment. OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
2021-05-20 16:56:15.125 [INFO ] [1] - 7.5, 21.04.0.8
2021-05-20 16:56:17.020 [INFO ] [1] - DnsUtil.ldapServerReachable: LDAP Server: dc1.xenlab.local, realm: xenlab.local, connection time: 8 ms
2021-05-20 16:56:17.022 [INFO ] [1] - DnsUtil.QueryDnsLdapServiceRecords: Add to ldap server candidate list: dc1.xenlab.local
2021-05-20 16:56:17.059 [INFO ] [1] - Krb5.conf: /etc/krb5.conf
2021-05-20 16:56:17.074 [INFO ] [1] - Dns name: u2004.xenlab.local
2021-05-20 16:56:17.074 [INFO ] [1] - Krb5.keytab: /etc/krb5.keytab
2021-05-20 16:56:17.075 [INFO ] [1] - Krb5 ticket cache file spec: /tmp/krb5cc_<uid>
2021-05-20 16:56:17.232 [INFO ] [19] - [VDA POLICY]: Start Ldap proxy Server.
2021-05-20 16:56:17.251 [WARN ] [15] - FASProxyServer.loadFASServers: FAS server list is empty. Please confirm if FAS server list is configured correctly in confdb
2021-05-20 16:56:19.803 [INFO ] [30] - Listening on /var/xdl/.cbpcontroller for incoming data..
2021-05-20 16:56:19.803 [INFO ] [30] - Start CBP Proxy Server.
2021-05-20 16:56:19.803 [INFO ] [30] - Clean the sock file if it exist.
2021-05-20 16:56:19.803 [INFO ] [30] - Listening for incoming data..
2021-05-20 16:56:19.803 [INFO ] [30] - Modify sock file attr.
2021-05-20 17:14:44.162 [ERROR] [67] - ProcessRegisterRequest: Error calling register, Error: The creator of this fault did not specify a Reason.
2021-05-20 17:15:09.084 [ERROR] [68] - Query failed because 'Could not send Message.'
2021-05-20 17:15:53.788 [ERROR] [69] - Query failed because 'Could not send Message.'
2021-05-20 17:17:18.006 [ERROR] [71] - Query failed because 'Could not send Message.'
2021-05-20 17:19:23.203 [ERROR] [74] - Query failed because 'Could not send Message.'
2021-05-20 17:21:30.609 [ERROR] [75] - Query failed because 'Could not send Message.'
2021-05-20 17:23:35.789 [ERROR] [76] - Query failed because 'Could not send Message.'
2021-05-20 17:25:40.938 [ERROR] [77] - Query failed because 'Could not send Message.'
2021-05-20 17:27:46.143 [ERROR] [81] - Query failed because 'Could not send Message.'
2021-05-20 17:29:51.288 [ERROR] [82] - Query failed because 'Could not send Message.'
2021-05-20 17:31:56.427 [ERROR] [83] - Query failed because 'Could not send Message.'
2021-05-20 17:34:01.575 [ERROR] [84] - Query failed because 'Could not send Message.'
2021-05-20 17:36:06.722 [ERROR] [85] - Query failed because 'Could not send Message.'
2021-05-20 17:36:26.551 [ERROR] [88] - Query failed because 'Could not send Message.'
2021-05-20 17:36:50.478 [ERROR] [89] - Query failed because 'Could not send Message.'
2021-05-20 17:37:33.111 [ERROR] [91] - Query failed because 'Could not send Message.'
2021-05-20 17:38:53.189 [ERROR] [93] - Query failed because 'Could not send Message.'
2021-05-20 17:40:58.359 [ERROR] [95] - Query failed because 'Could not send Message.'
2021-05-20 17:43:03.564 [ERROR] [99] - Query failed because 'Could not send Message.'

Также не плохо смотреть в Event Viewer на Delivery контроллере Citrix.

Проверка доступов

Часто проблема регистрации машины может быть связана с доступностью домен и контроллера доставки:

ping domaincontroller 
nslookup domaincontroller
ping deliverycontroller
nslookup deliverycontroller

Проверяем состоит ли виртуальная машина в домене:

sudo net ads testjoin
sudo net ads info
sudo net ads status

Проблема временной синхронизации

Не мало важной частью - является временная синхронизация. Неправильная синхронизация времени влияет на получание Kerberos билетов виртуальной машиной. По документации Citrix, используется chrony для установки необходимого NTP сервера.
​​​​​​​Проверьте ваш конфиг chrony по адресу /etc/chrony/chrony.conf, указав нужный NTP сервер, чаще всего - это домен контроллер.

Keytab файл

Как было уже сказано, агент VDA используют протокол Kerberos для взаимной аутентификации.
Каждая сторона обменивается данными, используя учётные записи в AD. В Windows ключи Kerberos, используемые для безопасной идентификации компьютера и аутентификации на контроллере домена, хранятся и управляются службой LSA. Аналогом в Linux является системный файл keytab, обычно называемый /etc/krb5.keytab

Файл keytab обычно создается, когда машина на Linux присоединяется к домену и доступен только пользователю root. Обратите внимание: если вы используете Winbind, конфигурация по умолчанию не создает файл keytab. Перед присоединением к домену убедитесь, что в /etc/samba/smb.conf установлено следующее:

kerberos method = secrets and keytab

Проверить наличие билета:

klist -ket
​​​​​​​sudo kinit -k MYVDA\$@TUNE-IT.LOCAL
sudo kinit -k MYVDA\$
​​​​​​sudo klist

Коротко о себе:



​​​​​​​​​​​​​​Работаю инженером в компании Tune-it.

Ничего не найдено. n is 0