对运行时问题进行故障诊断
在 WebSphere Automation 正常操作期间可能会遇到问题,例如,失败的运行状况调查。 了解如何解决最常见的运行时问题。
以下问题可能会导致运行状况调查失败。 调查失败时,请使用 WebSphere Automation UI 或 REST API 下载调查的归档文件。 打开归档并检查 analysis.log 文件中是否存在错误。
- 启用FIPS的服务器无法在 WebSphere 上注册。安装JDK修复包后,出现 SecureRandom SHA2DRBG for provider not available错误信息。
- 没有与服务器联系,或者与已注册的服务器联系丢失
- 没有为 Instana 警报创建调查
- 内存分析运行程序作业的内存不足错误
- 无法识别主机 example.com 上的服务器
- MyCustomRole 角色包含无效许可权:can_view_websphere_inventory
- 修订安装失败,发生连接错误: 读操作超时错误消息
- 在 WebSphere Application Server Liberty 上使用 Red Hat® Enterprise Linux® 非 root 用户和 Installation Manager 以组方式进行的修订安装失败
- 安装修订包后, Node Agent 的运行状态或同步出错
- 安装修订无法继续错误消息
- 请求安装修订时发生问题错误消息
- 在 Windows 服务器停滞上安装修订
- Install-fix pod 在安装修复程序时因 ContainerStatusUnknown 而停滞
- 在具有 AIX 操作系统的目标服务器上安装 iFix 失败,错误为 chmod: 标志或八进制数不正确
- 检测到内存泄漏后调用 Webhook 失败
- 在气郄安装中,公告导入作业失败
- 访问 "操作> 应用程序运行时" 页面时超时
- 在支持 FIPS 的环境中,安装修订或内存泄漏调查不会进行
- 未发送电子邮件通知,无法验证 wsa-secure-vulnerability-notifier pod 日志中服务器错误消息的身份
- 运行手册日志包含文件访问许可权错误
- 没有用于修复 Java SDK 运行时中的漏洞的 iFix 选项
- 安装了JDK修复包后,启用FIPS的服务器无法在 WebSphere Automation 注册,SecureRandom SHA2DRBG for provider not available错误消息
- 在注册 WebSphere Application Server 或 WebSphere Application Server Liberty 服务器上安装Java SDK运行时修复包时,如果该服务器配置为符合联邦信息处理标准(FIPS),可能会出现以下错误。
要解决这个问题,请根据以下文章中的说明配置注册服务器。Stack Dump = java.lang.RuntimeException: SecureRandom SHA2DRBG for provider <provider_name> not available - 无与服务器的联系,或与已注册的服务器的联系丢失
- WebSphere Automation 使用 WebSphere Application Server 和 WebSphere Application Server Liberty 的使用率测量功能来注册服务器并与它们保持定期联系。 如果 WebSphere Automation 无法与服务器联系,或者与已注册服务器的联系丢失超过 6 小时,那么 WebSphere Automation 会在 UI 中显示可视指示符,使您了解情况。 如果由于已知且可接受的原因而导致联系人丢失,请尝试以下步骤来诊断并解决问题。
- 没有为 Instana 警报创建调查
- 此问题可能是由于主机没有任何注册服务器导致的。 如果调查管理器找不到主机的注册服务器,那么在调查管理器日志文件中写入以下错误消息:
Investigation cannot be started because no assets are registered with the example.com host. - 内存分析运行程序作业的内存不足错误
(In version 1.3 or later) java.lang.OutOfMemoryError: Java heap space (In version 1.2) JVMDUMP039I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError"缺省情况下,内存分析运行器作业的内存请求和内存限制设置为 4 GB。 这些设置足以让运行器作业分析大多数堆转储。 如果您看到此错误消息,那么分析器没有足够的内存来分析堆转储。 您可以为缺省实例名称为WebSphereHealth定制资源中的memoryAnalysisRunner设置分配更多内存。 更多信息,请参阅 WebSphereHealth 自定义资源。 或者,您可以使用以下命令来编辑WebSphereHealth实例:oc edit WebSphereHealth <instance-name> -n <namespace>wsa-health。 缺省名称空间为wasautomation。注: 内存缺省为 4Gi ,限制为 4Gi。 您可以将内存增加到更大的值,例如 20Gi,如以下示例中所示。 将内存请求和内存限制设置为相同的值。 Java VM 使用由限制指定的内存量来计算最大堆大小。 Kubernetes 仅保证进程可以获取由请求指定的内存量。spec: analysisManager: Image: … memoryAnalysisRunner: resources: limits: cpu: '1' memory: 20Gi requests: cpu: 500m memory: 20Gi注: 向memoryAnalysisRunner分配更多资源时,请确保工作程序节点可以处理请求。- 未能识别主机 example.com 上的服务器
Failed to identify the server on host example.com此错误可能由多个问题引起。 要解决此问题,请尝试以下步骤:- 确保满足受管服务器的所有先决条件。 更多信息,请参阅托管服务器要求。
- 测试 WebSphere Automation 与受管服务器之间的连接。
- 对设置问题进行故障诊断。
- MyCustomRole 角色包含无效许可权:can_view_websphere_inventory
- 如果 V1.1 中包含定制角色中的
can_view_websphere_inventory许可权,那么在 V1.2 中已移除此许可权。 要修正您的定制角色,必须使用 API:- 从 cpd UI 中获取 API 密钥。
从 cpd 控制台,单击 ,然后单击 API 密钥按钮。
- 获取用于 API 调用的不记名令牌:
curl -k -X POST -H 'Content-Type: application/json' -d '{"username":"<user_name>","api_key":"<api_key>"}' https://$(oc get route -n wasautomation -o jsonpath='{.items[?(@.spec.to.name=="ibm-nginx-svc")].spec.host}')/icp4d-api/v1/authorize - 获取这些角色的列表。 需要此列表来获取扩展名称和 JSON 元数据,在后续步骤中使用此扩展名称和 JSON 元数据来修改中断的定制角色:
curl -X GET -k -v -H "Authorization: Bearer <bearer_token>" --header "Content-Type: application/json" --header "Accept: application/json" https://$(oc get route -n wasautomation -o jsonpath='{.items[?(@.spec.to.name=="ibm-nginx-svc")].spec.host}')/api/v1/usermgmt/v1/roles示例:
curl -X GET -k -v -H "Authorization: Bearer eyJhbGciOiJSUz..." --header "Content-Type: application/json" --header "Accept: application/json" -d '{"role_name":"mycustomrole","description":"","permissions":[]}' https://$(oc get route -n wasautomation -o jsonpath='{.items[?(@.spec.to.name=="ibm-nginx-svc")].spec.host}')/api/v1/usermgmt/v1/roles响应(已截断):
{"rows":[{"id":"f60b72c3-ae7e-4860-8f98-649e316af6d2","key":"f60b72c3-ae7e-4860-8f98-649e316af6d2","doc":{"_id":"f60b72c3-ae7e-4860-8f98-649e316af6d2","extension_id":"_ce_703424172539772929","extension_name":"f60b72c3-ae7e-4860-8f98-649e316af6d2","role_name":"mycustomrole","description":"","permissions":["can_view_websphere_inventory"]...],"messageCode":"success","message":"success"} - 对于包含
can_view_websphere_inventory许可权的每个定制角色,请移除该许可权并将其替换为can_view_application_runtime_security许可权。curl -X PUT -k -v -H "Authorization: Bearer <bearer_token>" --header "Content-Type: application/json" --header "Accept: application/json" -d '{"role_name":"","description":"","permissions":['can_view_application_runtime_security']}' https://$(oc get route -n wasautomation -o jsonpath='{.items[?(@.spec.to.name=="ibm-nginx-svc")].spec.host}')/api/v1/usermgmt/v1/role/<extension_name>示例:
curl -X PUT -k -v -H "Authorization: Bearer eyJhbGciOiJSUz..." --header "Content-Type: application/json" --header "Accept: application/json" -d '{"role_name":"mycustomrole","description":"","permissions":["can_view_application_runtime_security"]}' https://$(oc get route -n wasautomation -o jsonpath='{.items[?(@.spec.to.name=="ibm-nginx-svc")].spec.host}')/api/v1/usermgmt/v1/role/f60b72c3-ae7e-4860-8f98-649e316af6d2响应(已截断):
{"id":"f60b72c3-ae7e-4860-8f98-649e316af6d2","messageCode":"success","message":"success"}
- 从 cpd UI 中获取 API 密钥。
- 修订安装失败,Connection error: read operation timed out错误消息
如果由于 runbook.log 文件中存在此错误而导致修订的安装失败,请稍后在 UI 中单击 安装修订 以重新启动修订的安装。
- 对于在 Linux 或 UNIX 上以组方式使用 Installation Manager 的非 root 用户, WebSphere Application Server Liberty 上的修订安装失败
发生此错误的原因是 WebSphere Automation 访问的 InstallationManager.dat 文件未按预期位于非 root 用户的主目录中。 要解决此问题,请在非 root 用户的主目录中创建一个 InstallationManager.dat 文件,该文件具有指向 InstallationManager.dat 文件的实际位置的符号链接。 请参阅以下示例。
ln -s /<my_group_name>/InstallationManager_AppData/etc/.ibm/registry/InstallationManager.dat \ /home/<non-root-username>/etc/.ibm/registry/InstallationManager.dat- 安装修订包后 Node Agent 运行状态或同步时发生错误
- 使用 WebSphere Automation 在 WebSphere Application Server Network Deployment 中的节点上安装修订包后,可能会看到下列其中一个问题:
- 管理控制台中节点的运行状态不正确
- 管理控制台中节点的同步不正确
- 类似于 SystemOut.log 文件中的以下错误:
ADMD0026W: The version of the deployment manager (9.0.5.11) is earlier than that of this node (node1, 9.0.5.12).
发生这些问题的原因是节点的修订包版本高于 Deployment Manager 主机的版本。 要解决此问题,请手动将 Deployment Manager 主机更新为等于或高于修订包版本的版本。
- Installation of the fix cannot proceed错误消息
- 如果Installation of the fix cannot proceed出现错误消息,这可能是由下列其中一个问题导致的:
- WebSphere Automation 与 IBM Fix Central之间可能存在通信问题。
- 可能存在阻止 WebSphere Automation 向 IBM Fix Central进行认证的配置问题。
- 可能存在阻止 WebSphere Automation 在受管服务器上安装修订的用户特权问题。
请检查配置以确保它们正确。 如果配置正确且怀疑存在通信问题,请在大约 1 小时后再次尝试启动修订。
- Problem with request to install fix错误消息
如果Problem with request to install fix出现错误消息,这是因为在特定主机上启动了多个修订安装。 一次只能在特定主机上安装一个修订。 请等待当前修订安装过程完成,然后再尝试在该主机上安装另一个修订。
- 在 Windows 服务器上安装修订
如果在 Windows 服务器上安装修订的过程停滞了不合理的时间,请重新启动 Windows 服务器,然后重新启动该修订的安装。
- Install-fix pod 在安装修复程序时因 ContainerStatusUnknown 而停滞不前
- 修订安装可能会延迟并显示Installing fix在 WebSphere Automation UI 中,并且要使 install-fix pod 保持
ContainerStatusUnknown状态。 在此情况下,同一主机上的后续安装尝试不会继续,并导致以下错误消息。WIORM0806E: 正在主机 "myhost.com" 上安装其他修订。 请稍后重试。
要检查 pod 状态,请运行
ocget pod 命令。 查找ContainerStatusUnknown状态。oc get pod | grep install-fix install-fix-f6054b58-f20d-4351-8c44-7c1efd93f2d5-9m89j 0/1 ContainerStatusUnknown 1 48m要解决此问题,必须删除从未超过
in-progress状态的已停止安装,然后删除相关的 install-fix 作业。 - 在具有 AIX 操作系统的目标服务器上安装 iFix 失败,发生错误chmod: A flag or octal number is not correct
- 当连接用户和
become_user都没有特权时,此错误与在 AIX 操作系统上使用 Ansible 相关。 要防止此问题重现,请执行以下步骤:- 将
--from-literal=ansible_pipelining=true添加到私钥。 - 在 /etc/sudoers 文件中对所有受管主机禁用
requiretty。您可以通过注释掉Defaults requiretty行来执行此操作,如以下示例中所示。#Defaults requiretty
- 将
- 检测到内存泄漏后调用 Webhook 失败
- 对 Instana 警报模式的意外更新可能会导致此问题。 WebSphere Automation 使用 JSON 模式来验证从 Instana 发送的 JSON。 WebSphere Automation 使用的模式在
wsa-schema-instana-alerts配置映射中设置。 确保将环境变量$WSA_INSTANCE_NAMESPACE设置为 WebSphere Automation 实例名称空间。- 从缺省 ConfigMap 中检索缺省 Instana 警报模式,作为名为
instana-alerts-custom.json的本地文件。oc get cm wsa-schema-instana-alerts -n $WSA_INSTANCE_NAMESPACE -o "jsonpath={.data['instanaAlerts\.json']}" > instana-alerts-custom.json - 对
instana-alerts-custom.jsonJSON 文件进行必要的更改。 - 创建定制 ConfigMap。
oc create cm wsa-schema-instana-alerts-custom -n $WSA_INSTANCE_NAMESPACE --from-file=instanaAlerts.json=instana-alerts-custom.json
- 从缺省 ConfigMap 中检索缺省 Instana 警报模式,作为名为
- 公告导入作业在气郄安装中失败
在气郄安装中,
wsa-secure-bulletins-importpod 可能无法完成。 例如,如果运行以下命令:oc get pods | grep import您可能会看到有错误的输出:
wsa-secure-bulletins-import-1.6.0-8526l 0/1 错误 0 2d15h wsa-secure-bulletins-import-1.6.0-b7jld 0/1 错误 0 2d15h wsa-secure-bulletins-import-1.6.0-c4cxf 0/1 错误 0 2d15h wsa-secure-bulletins-import-1.6.0-dsmdg 0/1 错误 0 2d15h wsa-secure-bulletins-import-1.6.0-fgj7p 0/1 错误 0 2d21h wsa-secure-bulletins-import-1.6.0-kw9qm 0/1 错误 0 2d15h wsa-secure-bulletins-import-1.6.0-t5sgl 0/1 错误 0 2d15h
如果是这样,请删除公告导入作业。
oc delete job wsa-secure-bulletins-import-1.6.0将创建新的公告导入作业。
- 访问 页面时超出超时时间
- 当 WebSphereSecure UI 使用 Red Hat OpenShift 提供的证书时,无法联系平台 UI 实例,从而导致此问题。 当应用程序通信失败时,浏览器会迂到超时,并显示以下错误:
timeout of 20000ms exceeded要解决这个问题,请删除 WebSphereSecure UI 部署 (
<instance-name>-secure-ui) 以重新启动应用程序。例如,使用 WebSphere Automation 实例名称
wsa时,应删除wsa-secure-ui。使用 oc delete deployment deployment_name 命令删除相关部署。
oc delete deployment <instance-name>-secure-ui -n <namespace> - 在支持 FIPS 的环境中,安装修订或内存泄漏调查不会进行
- 如果使用在支持 FIPS 的 WebSphere Automation安装中的非 FIPS 系统上生成的 SSH 密钥对,那么修订的应用程序或内存泄漏调查可能无法进行。 Pod 日志可能在以下行处停止:
[07/28/23 18:27:00:516 UTC] 1 com.ibm.ws.automation.core.runbook.runner.RunbookRunnerCLI INFO start Request received to execute runbook: install-fix against server: server1.example.com (correlationId: 65301e97-5754-4001-afbe-0c669d6774ff) [07/28/23 18:27:00:607 UTC] 1 com.ibm.ws.automation.core.runbook.runner.AnsibleRunner INFO runRunbook Here is the standard output of the command: [07/28/23 18:27:00:613 UTC] 1 com.ibm.ws.automation.core.runbook.runner.AnsibleRunner INFO runRunbook was: [07/28/23 18:27:00:613 UTC] 1 com.ibm.ws.automation.core.runbook.runner.AnsibleRunner INFO runRunbook hosts: [07/28/23 18:27:00:613 UTC] 1 com.ibm.ws.automation.core.runbook.runner.AnsibleRunner INFO runRunbook server1.example.com: [07/28/23 18:27:00:613 UTC] 1 com.ibm.ws.automation.core.runbook.runner.AnsibleRunner INFO runRunbook ansible_user: root [07/28/23 18:27:00:625 UTC] 1 com.ibm.ws.automation.core.runbook.runner.AnsibleRunner INFO runRunbook Agent pid 41发生此问题的原因是非 FIPS 系统上的
ssh-keygen命令使用 MD5 摘要算法来生成密钥。 在支持 FIPS 的系统上,已禁用 MD5 摘要算法。 没有口令的 SSH 密钥对不受影响。在支持 FIPS 的集群上运行 WebSphere Automation 时,请选择下列其中一个选项以在支持 FIPS 的系统上使用受口令保护的 SSH 密钥对。
- 在启用 FIPS 的系统上生成新的受口令保护的 SSH 密钥对。
- 将现有专用密钥转换为与 FIPS 兼容的格式:
$ openssl pkcs8 -topk8 -v2 aes128 -in <INPUT FILENAME> -out <OUTPUT FILENAME> Enter pass phrase for id_rsa: <PASSPHRASE OF EXISTING KEY> Enter Encryption Password: <PASSPHRASE FOR NEW KEY> Verifying - Enter Encryption Password: <PASSPHRASE FOR NEW KEY>
- 未发送电子邮件通知,
wsa-secure-vulnerability-notifierpod 日志中存在Can't verify identity of server错误消息 从WebSphere Automation 1.7开始,使用比以前的版本更安全的 Javamail 服务,它在建立 TLS 连接时强制执行服务器身份。 如果证书与邮件服务器的主机名不匹配,那么无法建立安全连接,并且不会发送任何电子邮件。
要在发送电子邮件时禁用主机名验证,可以在 " 通知 " 页面中将 mail.smtps.ssl.checkserveridentity 属性设置为
false。- 以具有 管理通知 特权的用户身份登录 WebSphere Automation 。
- 点击 ,然后打开通知页面。
- 在 " 通知 " 页面上的 电子邮件服务器下,单击 配置服务器。
- 单击 添加其他字段下的 添加 按钮。
- 添加 mail.smtps.ssl.checkserveridentity 参数,并将其值设置为
false。 - 单击保存。
- 运行手册日志包含文件访问许可权错误
WebSphere Automation 运行手册要求为 ansible_user 连接变量定义的用户概要文件具有对以下 WebSphere Application Server 传统文件及其父目录的读访问权。
app_server_root/properties/profileRegistry.xml app_server_root/properties/version/installed.xml如果为 ansible_user 连接变量定义的概要文件无法读取文件,那么您可能会在运行手册日志中看到类似于以下内容的错误:
ValueError: File not found or no permissions to access app_server_root/properties/version/installed.xml或
Permission denied: 'app_server_root/properties/profileRegistry.xml'要授予对文件的读访问许可权,请使用操作系统工具来更改文件许可权。 例如:
chmod +r /opt/IBM/WebSphere/AppServer/properties/profileRegistry.xml chmod +r /opt/IBM/WebSphere/AppServer/properties chmod +r /opt/IBM/WebSphere/AppServer/properties/version/installed.xml chmod +r /opt/IBM/WebSphere/AppServer/properties/version更多有用信息,请参阅 WebSphere Application Server 文档中的 " 为配置文件相关任务授予写入权限 "。 尤其请参阅步骤 8 ,并记住链接文档中的用例不同; 请勿明确遵循这些指示信息。
- 没有用于修复 Java SDK 运行时中的漏洞的 iFix 选项
- 在 " 准备修订 " 对话框中,没有任何临时修订 (iFixes) 显示为用于修订 Java SDK 运行时中的漏洞的选项。 必须在 " 选择全局选项 " 页面上选择 修订包 作为 修订类型 ,然后在 " 选择修订 " 页面上选择要安装的修订包。