如果 HDX Insight 解决方案未按预期运行,则问题可能出在以下某项上。 请参阅相应部分中的清单以进行故障排除。
HDX Insight 配置。
NetScaler 和 NetScaler ADM 之间的连接。
NetScaler 中 HDX/ICA 流量的记录生成。
NetScaler ADM 中的记录填充。
确保 NetScaler 中启用了 AppFlow 功能。 有关详细信息,请参阅 启用 AppFlow。
检查 NetScaler 运行配置中的 HDX Insight 配置。
运行 show running | grep -i <appflow_policy>
命令检查 HDX Insight 配置。 确保绑定类型为 ICA REQUEST。 例如;
绑定 vpn vserver afsanity -policy afp -priority 100 -type ICA_REQUEST
对于透明模式,绑定类型必须是 ICA_REQ_DEFAULT。 例如;
绑定 appflow 全局 afp 100 END -type ICA_REQ_DEFAULT
对于单跳/Access Gateway 或双跳部署,请确保 HDX Insight AppFlow 策略绑定到 HDX/ICA 流量流动的 VPN 虚拟服务器。
对于透明模式或 LAN 用户模式,请确保设置了 ICA 端口 1494 和 2598。
检查 NetScaler Gateway 或 VPN 虚拟服务器中的 appflowlog
参数是否为 Access Gateway 或双跳部署启用。 有关详细信息,请参阅 为虚拟服务器启用 AppFlow。
检查双跳 NetScaler 中是否启用了“连接链”。 有关详细信息,请参阅 配置 NetScaler Gateway 设备以导出数据。
HA 故障转移后,如果跳过 HDX Insight 详细信息解析,请检查 ICA 参数“enableSRonHAFailover”是否启用。 有关详细信息,请参阅 NetScaler 高可用性对上的会话可靠性。
检查 NetScaler 中的 AppFlow 收集器状态。 有关详细信息,请参阅 如何检查 NetScaler 和 AppFlow Collector 之间的连接状态。
检查 HDX Insight AppFlow 策略命中率。
运行命令 show appflow policy <policy_name>
检查 AppFlow 策略命中情况。
您还可以在 GUI 中导航至 设置 > AppFlow > 策略 来检查 AppFlow 策略命中情况。
验证任何阻止 AppFlow 端口 4739 或 5557 的防火墙。
运行命令 tail -f /var/log/ns.log | grep -i "default ICA Message"
进行日志验证。 根据生成的日志,您可以使用此信息进行故障排除。
日志: 跳过解析 ICA 连接 - 此主机不支持 HDX Insight
原因: 不支持的 Citrix Virtual Apps and Desktops 版本
解决方法:将 Citrix Virtual Apps and Desktops 服务器升级到受支持的版本。
日志: 客户端类型收到 0x53,不支持
原因: 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 和 Desktops 服务器上启动。 确保您使用的是受支持的 Citrix Workspace App 版本。
日志: 无效频道标头
原因: 无法识别通道头
解决方案:在建立新会话之前,此特定 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_解码器 | 为频道指定的解码器无效 |
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 功能。 表示 XenApp 版本低于 6.5 或 XenDesktop 版本低于 5.0 |
121 | NS_ICA_ERR_CGP_INVALID_CMD | 遇到无效的 CGP 命令 |
122 | NS_ICA_ERR_通道字节不足 | 通道上字节不足 |
123 | NS_ICA_ERR_通道_数据 | EUEM、CONTROL 或 SEAMLESS 通道上的数据不正确 |
124 | NS_ICA_ERR_INVALID_PURE_CMD | 处理纯 ICA 通道数据时收到无效命令 |
125 | NS_ICA_ERR_INVALID_PURE_LEN0 | 处理纯 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 帧太大,超过 1460 字节 |
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 | 从客户端收到无效的工作区版本字符串 |
147 | NS_ICA_ERR_UNKNOWN_CLIENT_PRODUCT_ID | 从客户端收到无效的产品 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 | 基本加密中加密命令的状态无效 |
161 | NS_ICA_ERR_BASICCRYPT_INVALIDCRYPTCMD | 基本加密中的加密命令无效 |
162 | NS_ICA_ERR_ADVCRYPT_INVALIDSTATE | RC5 加密中加密命令的状态无效 |
163 | NS_ICA_ERR_ADVCRYPT_INVALIDCRYPTCMD | RC5 加密中的加密命令无效 |
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_解析 | 解析 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_客户端 | 客户端不支持 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 时出错 |
示例日志:
1 月 9 日 22:57:02 <local0.notice> 10.106.40.223 01/09/2020:22:57:02 GMT ns-223 0-PPE-2:默认 ICA 消息 1234 0:“会话设置数据发送:会话 GUID [57af35043e624abab409f5e6af7fd22c],客户端 IP/端口 [10.105.232.40/52314],服务器 IP/端口 [10.106.40.215/2598],MSI 客户端 Cookie [非 MSI],会话设置时间 [01/09/2020:22:56:49 GMT],客户端类型 [0x0052],接收器版本 [19.12.0.23],用户 [user1]、客户端 [10.105.232.40]、服务器 [WIN2K12-215]、Ctx 标志 [0x8820220228]、轨道标志 [0x1775010c3fc]、跳过代码 [0]”
1 月 9 日 22:55:41 <local0.notice> 10.106.40.223 2020/01/09:22:55:41 GMT ns-223 0-PPE-0:默认 ICA 消息 156 0:“跳过 ICA 流:会话 GUID [4e3a91175ebcbe686baf175eec7e0200],客户端 IP/端口 [10.105.232.40/60059],服务器 IP/端口 [10.106.40.219/2598],MSI 客户端 Cookie [非 MSI],会话设置时间 [2020/01/09:22:55:39 GMT],客户端类型 [0x0052],接收器版本[19.12.0.23]、用户 [user1]、客户端 [10.105.232.40]、服务器 [10.106.40.219]、Ctx 标志 [0x8820220008]、轨道标志 [0x1600010c040]、跳过代码 [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_用户 | Access Gateway 用户访问总数 | 统计/诊断 |
hdx_dbg_lan_user | LAN用户模式访问总数 | 统计/诊断 |
hdx_basic_enc | 指示使用基本加密的 ICA 连接数 | 统计/诊断 |
hdx_advanced_enc | 指示使用基于 RC5 的高级加密的 ICA 连接数 | 统计/诊断 |
hdx_dbg_reconnected_session | 来自客户端且无任何 NetScaler 错误的重新连接请求总数 | 统计/诊断 |
hdx_dbg_host_rejected_ns_reconnect | 拒绝客户端重新连接请求的主机总数 | 统计/诊断 |
hdx_euem_available | 指示具有可用的最终用户体验监控通道的连接数。 需要最终用户体验监控通道来收集 ICA RTT 等统计数据。 | 统计/诊断 |
hdx_err_disabled_sr | 使用 nsapimgr 旋钮禁用会话可靠性。 会话不适用于此会话。 |
错误 |
hdx_err_skip_no_msi | XA/XD 服务器缺少 MSI 功能。 这表示服务器版本较旧,HDX Insight 会跳过此连接。 | 错误 |
hdx_err_skip_old_server | 旧的不受支持的服务器版本 | 错误 |
hdx_err_clnt_not_whitelist | 客户端工作区不在允许列表中,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 设备总数 | 诊断 |
检查 CFLOW 协议以查看所有流出 NetScaler 的 AppFlow 记录。
运行命令 tail -f /var/mps/log/mps_afdecoder.log | grep -i "Data Record: ica_"
并检查日志以确认 NetScaler ADM 正在接收 AppFlow 记录。
为了快速解决问题,请确保在联系 Citrix 技术支持之前掌握以下信息:
部署和网络拓扑的详细信息。
show techsupport
命令捕获的技术支持包。start nstrace -size 0'
要停止数据包跟踪,请键入 stop nstrace
show arp
命令收集系统 ARP 表中的条目。有关 HDX Insight 的已知问题,请参阅 ADC 发行说明。