问题说明
新部署Kibana的时候,部署结束后很长一段时间Kibana都无法使用,不可用的时间不固定,但是安装成功后,下次更新Kibana配置就不会出现这种情况。查看部署时候的日志如下
{"type":"log","@timestamp":"2021-07-06T06:44:14Z","tags":["info","optimize"],"pid":1,"message":"Optimizing and caching bundles for graph, monitoring, space_selector, ml, dashboardViewer, apm, code, maps, canvas, infra, siem, uptime, kibana, stateSessionStorageRedirect, status_page and timelion. This may take a few minutes"}
Browserslist: caniuse-lite is outdated. Please run next command `npm update`
日志基本上就是Kibana加载plugin并且执行optimize(缓存bundles),这个动作的详情我并没有详细了解,重点在如何解决这个问题。
环境说明
1. KIbana 7.3.2
2. Centos7.9
3. Docker部署
解决方案
这里根本问题在于Kibana的optimize动作是在部署完之后执行的,这样就导致部署过程缓慢,那么我们直接把这个过程在docker镜像制作过程中完成就可以了。(为了简化流程,我们直接使用官方的镜像进行部署,等待optimize执行完成之后,将容器commit后创建新的镜像即可)
1. 使用官方Kibana 7.3.2 的imgae进行部署
注意事项
Kibana缓存bundles的路径(基于7.3.2的官方image)是 /usr/share/kibana/optimize/bundles/,如果要使用docker commit的话,这个路径不可以挂载到宿主机。(挂载到宿住机后,docker commit后的image不会包含缓存的bundles)
2. 等待Kibana部署完成
成功访问Kibana则认为部署成功,这个过程取决于你的环境。
注意事项
Kibana有控制内存的环境变量,如果安装过程很慢你可以尝试增加内存,有可能会加速。NODE_OPTIONS=--max-old-space-size=8192
3. 执行docker commit
docker commit container_id kibana:7.3.2-1
4. 完成后直接使用新的image启动就可以跳过optimize过程,加速部署
网友评论