像往常一样开机,敲入命令运行kibana,但突然报系统配置性,无法启动,如下:
# 以调试模式启动kibana# ./kibana.bat --dev --no-base-path Kibana did not load properly. Check the server output for more information.
- 1
- 2
- 3
以为是自己失手改动了关键配置,但以普通方式启动,一切又表现正常。
# 以普通方式启动 ./kibana.bat -q
- 1
- 2
打开日志系统进行调试,却发现是权限错误:
# 打开服务器调试日志./kibana.bat --dev --no-base-path -l e:\kibana.log
- 1
- 2
错误信息如下:
"statusCode":403,"req":{"url":"/bundles/commons.style.css?v=8467","method":"get""statusCode":403,"req":{"url":"/bundles/kibana.style.css?v=8467","method":"get""statusCode":403,"req":{"url":"/bundles/commons.bundle.js?v=8467","method":"get"
- 1
- 2
- 3
翻阅源码,找到src\optimize\index.js文件,提供服务的代码如下:
const bundles = kbnServer.bundles;server.exposeStaticDir('/bundles/{path*}', bundles.env.workingDir);await bundles.writeEntryFiles();
- 1
- 2
- 3
继续查看exposeStaticDir方法,发现问题依旧不在这里。
server.decorate('server', 'exposeStaticDir', function (routePath, dirPath) { this.route({ path: routePath, method: 'GET', handler: { directory: { path: dirPath, listing: false, lookupCompressed: true } }, // 并没有打开权限管理 config: { auth: false } });});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
看来看去,唯一的问题只可能是文件系统的问题了,试着以管理员身份运行powershell,再次敲入命令“./kibana.bat –dev –no-base-path -q”,这次kibana终于正常工作了。
事后,还发现另外一种解决办法,以MINGW64运行Kibana命令,也可以正常工作,如下:
# 请勿加上.bat后缀名bin/kibana --dev --no-base-path
- 1
- 2
结论
由于文件系统的权限问题,导致kibana的调试模式无法正常工作,解决办法共有两种,分别为增加管理员权限与linux终端模拟。