捕获诊断信息
编辑捕获诊断信息
编辑Kibana 支持诊断工具捕获 Kibana 及其任务管理器健康状况的即时快照。它适用于 Kibana 7.11.0 及更高版本。
您可以使用该工具捕获的信息来排查 Kibana 实例的问题。请查看 Kibana 健康状况故障排除博客,了解示例。
您可以使用此工具生成诊断信息,然后再联系 Elastic 支持 或 Elastic Discuss,以帮助您及时获得答案。
要求
编辑- Java 运行时环境或 Java 开发工具包 v1.8 或更高版本。
访问该工具
编辑支持诊断工具作为子库内置在以下位置:
- Elastic Cloud Enterprise - 在 Elastic Cloud Enterprise > 部署 > 操作 > 准备捆绑包 > Kibana 下查找该工具。
- Elastic Cloud on Kubernetes - 使用
eck-diagnostics
运行该工具。
您还可以通过从 support-diagnostic
存储库下载 diagnostics-X.X.X-dist.zip
文件来获取该工具的最新版本。
捕获诊断信息
编辑要运行 Kibana 诊断
-
在终端中,通过轮询 Kibana 的 任务管理器健康状况,验证您的网络和用户权限是否足以连接。
例如,使用参数
host:localhost
、port:5601
和username:elastic
,您将使用以下 curl 请求。根据您的上下文调整这些参数。curl -X GET -k -H 'kbn-xsrf: true' -u elastic -p https://127.0.0.1:5601/api/task_manager/_health
如果您收到 HTTP 200
OK
响应,您可以继续执行下一步。如果您收到不同的响应代码,您必须在继续操作之前 诊断问题。 -
使用相同的环境参数,运行诊断工具脚本。
有关您可以传递给该工具的参数的信息,请参阅 诊断参数参考。
建议使用以下命令选项
基于 Unix 的系统
sudo ./diagnostics.sh --type kibana-local --host localhost --port 5601 -u elastic -p --bypassDiagVerify --ssl --noVerify
Windows
sudo .\diagnostics.bat --type kibana-local --host localhost --port 5601 -u elastic -p --bypassDiagVerify --ssl --noVerify
脚本执行模式
您可以在三种 模式下执行脚本
-
kibana-local
(默认,推荐):轮询 Kibana API,收集操作系统信息,并捕获集群和垃圾回收 (GC) 日志。 -
kibana-remote
:建立到适用目标服务器的 SSH 会话,以拉取与kibana-local
相同的信息。 -
kibana-api
:轮询 Kibana API。所有其他数据必须手动收集。
-
- 当脚本完成时,请验证
diagnostic.log
中是否未记录任何错误。如果日志文件包含错误,请参阅 诊断diagnostic.log
中的错误。 - 如果脚本完成时没有错误,则会在工作目录或您指定的输出目录中创建一个格式为
<diagnostic type>-diagnostics-<DateTimeStamp>.zip
的存档。您可以根据需要查看或共享诊断存档。
诊断非 200 响应
编辑当您轮询任务管理器健康状况时,如果您收到除 200 0K
之外的任何响应,则诊断工具可能无法按预期工作。请根据您收到的错误代码检查可能的解决方案
-
HTTP 401
UNAUTHENTICATED
- 错误中的其他信息通常表明您的
username:password
对无效,或者您的 Elasticsearch.security
索引不可用,您需要使用role:superuser
设置一个临时的 Elasticsearch 基于文件的领域用户进行身份验证。 -
HTTP 403
UNAUTHORIZED
- 您的
username
被识别,但没有足够的权限来运行诊断。请使用其他用户名或提高用户的权限。 -
HTTP 429
TOO_MANY_REQUESTS
(例如,circuit_breaking_exception
) - 身份验证和授权成功,但 Elasticsearch 集群未响应请求。此问题通常是间歇性的,并且可能在集群不堪重负时发生。在这种情况下,请先解决 Elasticsearch 的健康状况,然后再返回 Kibana。
-
HTTP 504
BAD_GATEWAY
- 您的网络无法连接到 Kibana。您可能正在使用代理或防火墙。考虑从不同的位置运行诊断工具,确认您的端口,或使用 IP 而不是 URL 域。
诊断 diagnostic.log
中的错误
编辑以下是运行诊断工具时可能遇到的常见错误
-
错误:找不到或无法加载主类 com.elastic.support.diagnostics.DiagnosticApp
这表示您意外地从发行页面下载了源代码文件,而不是
diagnostics-X.X.X-dist.zip
。 -
包含
is unauthorized for user
的security_exception
提供的用户没有足够的管理员权限来运行诊断工具。请使用其他用户,或授予该用户
role:superuser
权限。 -
{kib} 服务器尚未准备就绪
这表示 Kibana 的依赖项存在问题,阻止完全启动。要调查,请查看 排查 Kibana UI 错误。