像往常一样开机,敲入命令运行kibana,但突然报系统配置性,无法启动,如下:
# 以调试模式启动kibana # ./kibana.bat --dev --no-base-path Kibana did not load properly. Check the server output for more information.以为是自己失手改动了关键配置,但以普通方式启动,一切又表现正常。
# 以普通方式启动 ./kibana.bat -q打开日志系统进行调试,却发现是权限错误:
# 打开服务器调试日志 ./kibana.bat --dev --no-base-path -l e:\kibana.log错误信息如下:
"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"翻阅源码,找到src\optimize\index.js文件,提供服务的代码如下:
const bundles = kbnServer.bundles; server.exposeStaticDir('/bundles/{path*}', bundles.env.workingDir); await bundles.writeEntryFiles();继续查看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 } }); });看来看去,唯一的问题只可能是文件系统的问题了,试着以管理员身份运行powershell,再次敲入命令“./kibana.bat –dev –no-base-path -q”,这次kibana终于正常工作了。
事后,还发现另外一种解决办法,以MINGW64运行Kibana命令,也可以正常工作,如下:
# 请勿加上.bat后缀名 bin/kibana --dev --no-base-path由于文件系统的权限问题,导致kibana的调试模式无法正常工作,解决办法共有两种,分别为增加管理员权限与linux终端模拟。