对 HDX Insight 问题进行故障排除
如果 HDX Insight 解决方案未按预期运行,则问题可能出在以下情况之一。有关故障排除,请参阅相应部分中的清单。
-
HDX Insight 配置。
- NetScaler 和 NetScaler 控制台之间的连接。
- 在 NetScaler 中生成 HDX/ICA 流量的记录。
- NetScaler 控制台中的记录总量。
HDX Insight 配置清单
-
确保在 NetScaler 中启用了 AppFlow 功能。有关详细信息,请参阅 启用 AppFlow。
-
检查 NetScaler 运行配置中的 HDX Insight 配置。
运行
show running | grep -i <appflow_policy>
命令以检查 HDX Insight 配置。确保绑定类型为 ICA 请求。例如;bind vpn vserver afsanity -policy afp -priority 100 -type REQUEST
对于透明模式,绑定类型必须为 ICA_REQ_DEFAULT。例如;
bind appflow global afp 100 END -type ICA_REQ_DEFAULT
-
对于单跃点/Access Gateway 或双跃点部署,请确保 HDX Insight AppFlow 策略绑定到 VPN 虚拟服务器,HDX/ICA 流量正在流动。
- 对于透明模式或局域网用户模式,请确保设置 ICA 端口 1494 和 2598。
- 已为 Access Gateway 或双跃点部署启用 NetScaler Gateway 或 VPN 虚拟服务器中的检查
appflowlog
参数。有关详细信息,请参阅 为虚拟服务器启用 AppFlow。 - 选中双跃点 NetScaler 中已启用“连接链接”。有关详细信息,请参阅 配置 NetScaler Gateway 设备以导出数据。
- HA 故障转移后,如果 HDX Insight 详细信息被跳过解析,请检查 ICA 参数“enableSRonHAFailover”是否已启用。有关详细信息,请参阅 NetScaler 高可用性对上的会话可靠性。
NetScaler 和 NetScaler 控制台之间的连接清单
-
检查 NetScaler 中的 AppFlow 收集器状态。有关详细信息,请参阅 如何检查 NetScaler 和 AppFlow Collector 之间的连接状态。
-
检查 HDX Insight AppFlow 策略命中。
运行命令
show appflow policy <policy_name>
以检查 AppFlow 策略命中情况。您还可以导航到 GUI 中的“系统”>“AppFlow”>“策略”,以检查 AppFlow 策略命中。
-
验证任何阻止 AppFlow 端口 4739 或 5557 的防火墙。
在 NetScaler 核对表中为 HDX/ICA 流量生成记录
运行命令 tail -f /var/log/ns.log | grep -i "default ICA Message"
进行日志验证。根据生成的日志,您可以使用此信息进行故障排除。
-
日志: 跳过解析 ICA 连接 - 此主机不支持 HDX Insight
原因:Citrix Virtual Apps and Desktops 版本不受支持
解决办法:将 Citrix Virtual Apps and Desktops 服务器升级到受支持的版本。
-
日志:Client type received 0x53, NOT SUPPORTED
原因:Citrix Workspace 应用程序版本不受支持
解决方案:将 Citrix Workspace 应用程序升级到受支持的版本。有关详细信息,请参阅 Citrix Workspace 应用程序。
-
日志: 来自扩展数据包的错误-跳过此流的所有 hdx 处理
原因:解压缩 ICA 流量时出现问题
解决方案:在建立新会话之前,此 ICA 会话没有可用的报告。
-
日志: 无效过渡:NS_ICA_ST_FLOW_INIT/NS_ICA_EVT_INVALID -> NS_ICA_ST_UNINIT
原因:解析 ICA 握手时出现问题
解决方案:在建立新会话之前,此特定 ICA 会话没有可用的报告。
-
日志: 缺少 EUEM ICA RTT
原因:无法解析最终用户体验监视通道数据
解决方案:确保在 Citrix Virtual Apps and Desktops 服务器上启动了最终用户体验监视服务。确保您使用的是受支持的 Citrix Workspace 应用程序版本。
-
日志: 通道标头无效
原因:无法识别通道头
解决方案:在建立新会话之前,此特定 ICA 会话没有可用的报告。
-
日志: 跳过代码
如果您看到以下任何跳过代码值,则会跳过解析 Insight 详细信息。
跳过代码 0 表示记录已成功从 NetScaler 导出。
跳过代码 | 错误消息 | 错误原因 |
---|---|---|
100 | NS_ICA_ERR_NULL_FRAG | 处理 ICA 碎片时出错,可能是内存状况造成的 |
101 | NS_ICA_ERR_INVALID_HS_CMD | 收到的握手命令无效 |
102 | NS_ICA_ERR_REDUC_PARAM_CNT | 为 V3 扩展器初始化指定的参数无效 |
103 | NS_ICA_ERR_REDUC_INIT | 无法正确初始化 V3 扩展器 |
104 | NS_ICA_ERR_REDUC_PARAM_BYTES | 字节不足,无法将编码器分配给通道 |
105 | NS_ICA_ERR_INVALID_CHANNEL | ICA 通道号无效 |
106 | NS_ICA_ERR_INVALID_DECODER | 为通道指定的解码器无效 |
107 | NS_ICA_ERR_INVALID_TW_PARAM | 在 Thinwire 通道上指定的参数计数无效 |
108 | NS_ICA_ERR_INVALID_TW_DECODER | Thinwire 通道的解码器无效 |
109 | NS_ICA_ERR_REDUC_NO_DECODER | 没有为通道定义解码器 |
110 | NS_ICA_ERR_REDUC_V3_EXPANDER | 无法扩展通道数据 |
111 | NS_ICA_ERR_REDUC_BYTES_V3_OOR | 扩展器错误:消耗的字节多于可用字节 |
112 | NS_ICA_ERR_REDUC_BYTES_OOR | 错误:未压缩的数据溢出 |
113 | NS_ICA_ERR_REDUC_INVALID_CMD | 未定义的扩展器命令 |
114 | NS_ICA_ERR_CGP_FILL_HOLE | 处理拆分 CGP 帧时出错 |
115 | NS_ICA_ERR_MEM_NSB_ALLOC | NSB 分配错误 — 由于内存不足 |
116 | NS_ICA_ERR_MEM_REDUC_CTX_ALLOC | 扩展器上下文的内存分配错误 |
117 | NS_ICA_ERR_ICA_OLD_SERVER | 旧服务器,不支持功能块 |
118 | NS_ICA_ERR_PIR_MANY_FRAG | 数据包初始化请求被分段,无法处理 |
119 | NS_ICA_ERR_INIT_ICA_CAPS | ICA 功能初始化错误 |
120 | NS_ICA_ERR_NO_MSI_SUPPORT | 主机不支持 MSI 功能。表示低于 6.5 的 XenApp 版本或低于 5.0 的 XenDesktop 版本 |
121 | NS_ICA_ERR_CGP_INVALID_CMD | 遇到无效的 CGP 命令 |
122 | NS_ICA_ERR_INSUFFICENT_CHANNEL_BYTES | 信道上的字节数不足 |
123 | NS_ICA_ERR_CHANNEL_DATA | EUEM、CONTROL 或 SEAMLESS 通道上的数据不正确 |
124 | NS_ICA_ERR_INVALID_PURE_CMD | 处理 PURE ICA 通道数据时收到无效命令 |
125 | NS_ICA_ERR_INVALID_PURE_LEN0 | 处理 PURE ICA 通道数据时遇到无效长度 |
126 | NS_ICA_ERR_INVALID_PURE_LEN | 处理 PURE ICA 通道数据时遇到无效长度 |
127 | NS_ICA_ERR_INVALID_CLNT_DATA | 从客户端接收到的数据长度无效 |
128 | NS_ICA_ERR_MSI_GUID_SZ | MSI GUID 大小错误 |
129 | NS_ICA_ERR_INVALID_CHANNEL_HEADER | 检测到无效的通道头 |
130 | NS_ICA_ERR_CGP_PARSE_RECONNECT_ID | 检索重新连接的会话失败 |
131 | NS_ICA_ERR_DISABLE_SR_NON_NS_RECONNECT | 禁用 SR 时出错 |
132 | NS_ICA_ERR_REDUC_NOT_V3 | 不支持的 ICA Reducer 版本 |
133 | NS_ICA_ERR_HS_COMPRESSION_DISABLED | 已禁用压缩,主机不支持压缩 |
134 | NS_ICA_ERR_IDENT_PROTO | 无法识别 ICA 或 CGP 协议,接收器不正确 |
135 | NS_ICA_ERR_INVALID_SIGNATURE | ICA 签名或幻字符串不正确 |
136 | NS_ICA_ERR_PARSE_RAW | 解析 ICA 握手数据包时出错 |
137 | NS_ICA_ERR_INCOMPLETE_PKT | 握手时收到的数据包不完整 |
138 | NS_ICA_ERR_ICAFRAME_TOO_LARGE | ICA 帧太大,超过 1,460 字节 |
139 | NS_ICA_ERR_FORWARD | 转发 ICA 数据时出错 |
140 | NS_ICA_ERR_MAX_HOLES | 无法处理 CGP 命令,因为它被拆分超出了支持的限制 |
141 | NS_ICA_ERR_ASSEMBLE_FRAME | 无法正确重组 ICA 框架 |
142 | NS_ICA_ERR_UNSUPPORTED_RECEIVER_VERSION | 已跳过此工作区(客户端)的 ICA 解析,因为它不在允许列表中 |
143 | NS_ICA_ERR_LOOKUP_RECONNECT_ID | 无法检测客户端重新连接 Cookie 的解析状态 |
144 | NS_ICA_ERR_SYNCUP_RECONNECT_ID | 客户端重新连接后检测到的重新连接 Cookie 长度无效 |
145 | NS_ICA_ERR_INVALID_RECONNECT_ID | 客户端重新连接 cookie 错过了所需的约束 |
146 | NS_ICA_ERR_INVALID_CLIENT_VERSION | 从客户端收到的 Workspace 版本字符串无效 |
147 | NS_ICA_ERR_UNKNOWN_CLIENT_PRODUCT_ID | 从客户端收到的产品编码无效 |
148 | NS_ICA_ERR_V3_HDR_CORRUPT_LEN | 扩展后的通道长度无效 |
149 | NS_ICA_ERR_SPECIAL_THINWIRE | 解压缩错误 |
150 | NS_ICA_ERR_SEAMLESS_INSUFFBYTE | 遇到无法执行无缝命令的字节不足的问题 |
151 | NS_ICA_ERR_EUEM_INSUFFBYTE | 遇到 EUEM 命令的字节不足 |
152 | NS_ICA_ERR_SEAMLESS_INVALID_EVENT | 无缝通道解析的事件无效 |
153 | NS_ICA_ERR_CTRL_INVALID_EVENT | CTRL 通道解析的事件无效 |
154 | NS_ICA_ERR_EUEM_INVALID_EVENT | EUEM 通道解析的事件无效 |
155 | NS_ICA_ERR_USB_INVALID_EVENT | USB 通道解析的事件无效 |
156 | NS_ICA_ERR_PURE_INVALID_EVENT | 纯通道解析的事件无效 |
157 | NS_ICA_ERR_VCP_INVALID_EVENT | 虚拟通道解析的事件无效 |
158 | NS_ICA_ERR_ICAP_INVALID_EVENT | ICA 数据解析的事件无效 |
159 | NS_ICA_ERR_CGPP_INVALID_EVENT | CGP 数据解析的事件无效 |
160 | NS_ICA_ERR_BASICCRYPT_INVALIDSTATE | 基本加密中 crypt 命令的状态无效 |
161 | NS_ICA_ERR_BASICCRYPT_INVALIDCRYPTCMD | 基本加密中的 crypt 命令无效 |
162 | NS_ICA_ERR_ADVCRYPT_INVALIDSTATE | RC5 加密中 crypt 命令的状态无效 |
163 | NS_ICA_ERR_ADVCRYPT_INVALIDCRYPTCMD | RC5 加密中的 crypt 命令无效 |
164 | NS_ICA_ERR_ADVCRYPT_ENC | RC5 加密/解密时出错 |
165 | NS_ICA_ERR_ADVCRYPT_DEC | RC5 加密/解密时出错 |
166 | NS_ICA_ERR_SERVER_NOT_REDUCER_V3 | VDA 不支持 Reducer 版本 3 |
167 | NS_ICA_ERR_CLIENT_NOT_REDUCER_V3 | Workspace 不支持 Reducer 版本 3 |
168 | NS_ICA_ERR_ICAP_INSUFFBYTE | ICA 握手中出现意外的字节数 |
169 | NS_ICA_ERR_HIGHER_RECONSEQ | 对等发布重新连接的 CGP 恢复序列号较高 |
170 | NS_ICA_ERR_DESCSRINFO_ABSENT | 重新连接后无法恢复 ICA 解析状态 |
171 | NS_ICA_ERR_NSAP_PARSING | 解析 Insight 通道数据时出错 |
172 | NS_ICA_ERR_NSAP_APP | 从 Insight 渠道数据解析应用详细信息时出错 |
173 | NS_ICA_ERR_NSAP_ACR | 解析 Insight 通道数据中的 ACR 详细信息时出错 |
174 | NS_ICA_ERR_NSAP_SESSION_END | 从 Insight 通道数据解析会话结束详细信息时出错 |
175 | NS_ICA_ERR_NON_NSAP_SN | 由于缺少 Insight 渠道支持,跳过了服务节点上的 ICA 解析 |
176 | NS_ICA_ERR_NON_NSAP_CLIENT | 客户端不支持 NSAP |
177 | NS_ICA_ERR_NON_NSAP_SERVER | VDA 不支持 NSAP |
178 | NS_ICA_ERR_NSAP_NEG_FAIL | NSAP 数据协商时出错 |
179 | NS_ICA_ERR_SN_RECONNECT_TKT_FETCH | 获取服务时出错重新连接服务节点中的票证 |
180 | NS_ICA_ERR_SN_HIGHER_RECONSEQ | 在服务节点中接收更高的重新连接序列号时出错 |
181 | NS_ICA_ERR_DISABLE_HDXINSIGHT_NONNSAP | 为非 NSAP 连接禁用 HDX Insight 时出错 |
示例日志:
Jan 9 22:57:02 <local0.notice> 10.106.40.223 01/09/2020:22:57:02 GMT ns-223 0-PPE-2 : default ICA Message 1234 0 : "Session setup data send: Session GUID [57af35043e624abab409f5e6af7fd22c], Client IP/Port [10.105.232.40/52314], Server IP/Port [10.106.40.215/2598], MSI Client Cookie [Non-MSI], Session setup time [01/09/2020:22:56:49 GMT], Client Type [0x0052], Receiver Version [19.12.0.23], User [user1], Client [10.105.232.40], Server [WIN2K12-215], Ctx Flags [0x8820220228], Track Flags [0x1775010c3fc], Skip Code [0]"
Jan 9 22:55:41 <local0.notice> 10.106.40.223 01/09/2020:22:55:41 GMT ns-223 0-PPE-0 : default ICA Message 156 0 : "Skipping ICA flow: Session GUID [4e3a91175ebcbe686baf175eec7e0200], Client IP/Port [10.105.232.40/60059], Server IP/Port [10.106.40.219/2598], MSI Client Cookie [Non-MSI], Session setup time [01/09/2020:22:55:39 GMT], Client Type [0x0052], Receiver Version [19.12.0.23], User [user1], Client [10.105.232.40], Server [10.106.40.219], Ctx Flags [0x8820220008], Track Flags [0x1600010c040], Skip Code [171]"
错误计数器
ICA 解析时会捕获各种计数器。下表列出了用于 ICA 解析的各种计数器。
运行命令 nsconmsg –g hdx –d statswt0
查看计数器详细信息。
HDX 计数器名称 | 用途 | 类别(统计/错误/诊断) |
---|---|---|
hdx_tot_ica_conn | 指示 NS 检测到的纯 ICA 连接的总数。每当检测到基于客户端 PCB 上的 ICA 签名的 ICA 连接时,就会递增。 | 统计信息 |
hdx_tot_cgp_conn | 指示 NS 检测到的 CGP 连接总数(会话可靠性开启)。每当检测到基于客户端 PCB 上的 CGP 签名的 CGP 连接时,就会递增。 | 统计信息 |
hdx_dbg_tot_udt_conn | 表示 NS 检测到的 UDP ICA 连接总数 | 统计信息 |
hdx_dbg_tot_nsap_conn | 表示 NS 检测到的支持 NSAP 的连接总数 | 统计信息 |
hdx_tot_skip_conn | 表示由于 ICA 或 CGP 签名无效,解析器跳过了多少个 ICA 连接。 | 统计信息 |
hdx_dbg_active_conn | 当时活跃的 EDT/CGP/ICA 连接总数。 | 统计信息 |
hdx_dbg_active_nsap_conn | 当时活跃的 EDT/CGP/ICA NSAP 连接总数。 | 统计信息 |
hdx_dbg_skip_appflow_disabled | 由于禁用 AppFlow 而将 AppFlow 从会话中分离的实例总数 | 统计/诊断 |
hdx_dbg_transparent_user | 透明用户访问的总数 | 统计/诊断 |
hdx_dbg_ag_user | Access Gateway 用户访问总数 | 统计/诊断 |
hdx_dbg_lan_user | 局域网用户模式访问总数 | 统计/诊断 |
hdx_basic_enc | 指示使用基本加密的 ICA 连接数 | 统计/诊断 |
hdx_advanced_enc | 表示使用基于 RC5 的高级加密的 ICA 连接数 | 统计/诊断 |
hdx_dbg_reconnected_session | 来自客户端的未出现任何 NetScaler 错误的重新连接请求总数 | 统计/诊断 |
被拒绝的主机重新连接 | 客户端拒绝的重新连接请求的主机总数 | 统计/诊断 |
hdx_euem_available | 指示具有“最终用户体验监视”通道可用的连接数。需要使用最终用户体验监视通道来收集 ICA RTT 等统计信息。 | 统计/诊断 |
已禁用的高清错误 | 使用 nsapimgr 旋钮禁用会话可靠性。会话不适用于此会话。 |
错误 |
hdx_err_skip_no_msi | XA/XD 服务器缺少 MSI 功能。这表示服务器版本较旧,HDX Insight 会跳过此连接。 | 错误 |
hdx_err_skip_old_server | 不支持的旧服务器版本 | 错误 |
高清错误白名单 | 客户端接收器不在允许列表中,HDX Insight 会跳过此连接 | 错误 |
hdx_sm_ica_cam_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_CAM_CHANNEL 总数 | 诊断 |
hdx_sm_ica_usb_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_USB_CHANNEL 总数 | 诊断 |
hdx_sm_ica_clip_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_CLIP_CHANNEL 总数 | 诊断 |
hdx_sm_ica_ccm_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_CCM_CHANNEL 总数 | 诊断 |
hdx_sm_ica_cdm_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_CDM_CHANNEL 总数 | 诊断 |
hdx_sm_ica_com1_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_COM1_CHANNEL 总数 | 诊断 |
hdx_sm_ica_com2_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_COM2_CHANNEL 总数 | 诊断 |
hdx_sm_ica_cpm_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_CPM_CHANNEL 总数 | 诊断 |
hdx_sm_ica_lpt1_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_LPT1_CHANNEL 总数 | 诊断 |
hdx_sm_ica_lpt2_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_LPT2_CHANNEL 总数 | 诊断 |
dx_dbg_sm_ica_msi_disabled | 通过 SmartAccess 策略禁用 MSI 的案例总数 | 诊断 |
hdx_sm_ica_file_channel_disabled | 通过 SmartAccess 策略禁用的 NS_ICA_FILE_CHANNEL 总数 | 诊断 |
hdx_dbg_usb_accept_device | 接受的 USB 设备总数 | 诊断 |
hdx_dbg_usb_reject_device | 拒绝的 USB 设备总数 | 诊断 |
hdx_dbg_usb_reset_endpoint | 重置的 USB 端点总数 | 诊断 |
hdx_dbg_usb_reset_device | 重置的 USB 设备总数 | 诊断 |
hdx_dbg_usb_stop_device | 已停止的 USB 设备总数 | 诊断 |
hdx_dbg_usb_stop_device_response | 来自已停止的 USB 设备的响应总数 | 诊断 |
hdx_dbg_usb_device_gone | 消失的 USB 设备总数 | 诊断 |
hdx_dbg_usb_device_stopped | 已停止的 USB 设备总数 | 诊断 |
nstrace validation
检查 CFLOW 协议以查看 NetScaler 中的所有 AppFlow 记录。
NetScaler 控制台清单中的记录总量
-
运行该
tail -f /var/mps/log/mps_afdecoder.log | grep -i "Data Record: ica_"
命令 并检查日志,以确认 NetScaler 控制台正在接收 AppFlow 记录。 - 确认已将 NetScaler 实例添加到 NetScaler 控制台。
- 验证 NetScaler Gateway/VPN 虚拟服务器是否已在 NetScaler 控制台中获得许可。
- 确保为双跃点启用了多跳参数设置。
- 确保 NetScaler Gateway 在双跃点部署中已获得第二跃点许可。
在联系 Citrix 技术支持之前
要快速解决问题,请确保在联系 Citrix 技术支持之前已掌握以下信息:
-
部署和网络拓扑的详细信息。
- NetScaler 和 NetScaler 控制台版本。
- Citrix Virtual Apps and Desktops 服务器版本。
- 客户端 Workspace 版本。
- 发生问题时的活动 ICA 会话数。
- 通过在 NetScaler
show techsupport
命令提示符下运行命令捕获的技术支持包。 - 为 NetScaler 控制台捕获的技术支持包。
- 在所有 NetScaler 上捕获的数据包跟踪。
要启动数据包跟踪,请键入,
start nstrace -size 0'
要停止数据包跟踪,请键入、stop nstrace
- 通过运行
show arp
命令收集系统 ARP 表中的条目。
已知问题
有关 HDX Insight 的已知问题,请参阅 NetScaler 发行说明。