Kibana没有正常启动.当我打开控制台时,它似乎是一个
javascript资源问题.当我直接打开js文件(点击它们在控制台中的链接)时,它们看起来是不完整的,并且突然被切断了.不确定这是否是浏览器文件限制或某种方式我的文件已被切断?请看下面的图片,向您展示我所看到的.
文件在chrome中看到.根据chrome加载它的方式,这是文件的最底部.
我重新启动了kibana,看看是否可以解决它,没有运气.
我认为浏览器在js文件中有最大行限制.我不确定为什么kibana没有缩小js文件?它是以某种开发模式启动的吗?
问题摘要
我想我已经发现kibana没有加载的原因是因为js没有完全加载,这会改变我的问题,我怎么能得到我的所有javascript加载?
更新
我已将JS文件放在kibana bundles文件夹中,发现该文件完好无损.它确实是一个加载完整文件问题的浏览器.我很困惑为什么突然那些文件太长而无法被浏览器加载?两周前工作正常.仍然试图找出如何让chrome加载文件.
正如@asettouf所建议的,我删除了(备份)/ opt / kibana / optimize目录中的bundles文件夹,并再次启动了kibana.这确实重新生成了bundle文件夹但文件是相同的,这意味着我仍然有同样的问题.为什么Kibana在捆绑文件进行缓存时不会缩小js?
我的kibana.yml.我认为粘贴链接更简洁:
07002
返回打开详细日志记录,这是我删除优化文件夹并重新启动的输出.没有什么是对我的错误信息.
/var/log/kibana/kibana.log
出于隐私和安全原因,将主机名替换为localhost
07003
我认为这是一个错误,webpack模块没有正确编译JS.但是我不太了解模块来调试它.
优化文件夹中的相关文件是:
commons.bundle.js是65723行
kibana.bundle.js在108950行
这些远未优化,文件内的内容不会缩小.
curl -v localhost:5601的结果
07004
CURL直接向KIBANA JS资源请求
我可以确认卷曲-ukibanaadmin -v http://localhost/bundles/commons.bundle.js返回完整的108950内衬JS文件和卷曲-ukibanaadmin -v http://actual_kibana_hostname/bundles/commons.bundle.js返回与浏览器相同的内容(行数).
根据这些信息,我可以假设这根本不是Kibana问题.正如@val所提到的,它可能是nginx中的一个设置,它阻止整个文件被提供,除非被localhost访问.
我想我可以排除Cloudflare,因为当我直接从浏览器点击我的服务器时,我仍然会遇到问题.
感谢大家的建议和帮助到目前为止.越来越接近解决我的问题.我将对Nginx及其设置进行更多研究.
NGINX更新
Nginx似乎只加载了我的havascript文件的前72kbs.我在我的nginx配置文件周围搜索,无法在任何地方看到此设置.我添加了类似的东西
location / {
...
proxy_max_temp_file_size 1m;
...
}
和
location / {
...
sendfile on;
sendfile_max_chunk 1m;
...
}
但是我仍然无法覆盖这个只允许加载文件的第一部分的奇怪设置.
该连接使用nginx proxy_pass将端口80发送到kibanas端口’5601′.我觉得可能有一个限制文件传输超过代理的设置?只是不知道在哪里找到它.
proxypass连接看起来像:
server {
listen 80;
server_name logs.mydomain.com;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
我的默认nginx设置发布在这里.
/etc/nginx/nginx.conf
07005
我尝试添加sendfile_max_chunk 512k并将worker_processes从4更改为2.任何其他配置已经存在.我不是最初设置ELK堆栈的人.
在提到的更改后,它看起来像这样:
/etc/nginx/nginx.conf
07006
错误返回 – 磁盘空间更新
这个问题又回来了.当我检查VMs运行状况时,我注意到磁盘驱动器已满. Elasticsearch每天都会将几GB的文本记录到错误日志中.我仍然没有完全确定为什么弹性搜索充斥错误日志.
但我认为过多的磁盘空间使用导致了这个错误. Nginx可以检测到这一点并切换到最小安全配置,这样只允许每个文件提供72kbs的数据.
当我清除了过多的日志时,我不再需要重新启动nginx或kibana而停止获取不完整的js错误.
最佳答案 由于您在代理后面访问Kibana,您需要绕过代理并查看问题是否仍然存在,即比较加载时间
// through proxy
curl -v kibana_host/bundles/commons.bundle.js
curl -v kibana_host/bundles/kibana.bundle.js
// bypass proxy
curl -v localhost:5601/bundles/commons.bundle.js
curl -v localhost:5601/bundles/kibana.bundle.js
如果绕过代理时加载时间较短,那么您知道这不是Kibana问题,而是配置代理的方式更多.
UPDATE
由于我们已将此范围缩小到代理问题,因此请尝试使用此更新您的nginx配置
sendfile_max_chunk 512k
worker_processes 2
更新2
尝试对nginx配置进行另一次修改:
proxy_buffering: off;