Kibana没有正常启动。当我打开控制台时,它似乎是一个javascript资源问题。当我直接打开js文件(点击它们在控制台中的链接)时,它们看起来是不完整的,并且突然被切断了。不确定这是否是浏览器文件限制或某种方式我的文件已被切断?请看下面的图片,向您展示我所看到的。
在chrome中看到的文件。根据chrome的加载方式,这是文件的最底部。
我已经重新启动了kibana,看看是否可以解决它,没有运气。
我认为浏览器在js文件中有最大行限制。我不确定为什么kibana没有缩小js文件?它是以某种开发模式启动的吗?
问题摘要
我想我已经发现kibana没有加载的原因是因为js没有完全加载,这会改变我的问题,我怎样才能加载我的所有javascript?
更新
我已将JS文件放在kibana bundles文件夹中,发现该文件完好无损。它确实是一个加载完整文件问题的浏览器。我很困惑为什么突然间这些文件太长而无法被浏览器加载?两周前工作正常。仍然试图找出如何让Chrome加载文件。
正如@asettouf所建议的那样,我删除了bundles
目录中的/opt/kibana/optimize
文件夹并重新启动了kibana。这确实重新生成了bundles
文件夹,但文件是相同的,这意味着我仍然有同样的问题。为什么Kibana在捆绑文件进行缓存时不会缩小js?
我的 kibana.yml 。我认为粘贴链接更简洁:
返回打开详细日志记录,这是我删除优化文件夹并重新启动的输出。没有什么是对我的错误信息。
/var/log/kibana/kibana.log
出于隐私和安全原因,将localname替换为localhost
我认为这是一个错误,webpack模块没有正确编译JS。但是我不太了解模块来调试它。
优化文件夹中的相关文件是:
commons.bundle.js 65723行
108950行kibana.bundle.js
这些远未优化,文件内的内容也没有缩小。
curl -v localhost:5601
直接向KIBANA JS资源请求
我可以确认curl -ukibanaadmin -v http://localhost/bundles/commons.bundle.js
返回完整的108950内存JS文件,curl -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
我尝试添加sendfile_max_chunk 512k
并将worker_processes
从4更改为2.任何其他配置内容已经存在。我不是那个最初建立ELK堆栈的人。
在提到的更改后,它看起来像这样:
/etc/nginx/nginx.conf
错误返回 - 磁盘空间更新
这个问题又回来了。当我检查VMs运行状况时,我注意到磁盘驱动器已满。 Elasticsearch每天都会将少量GBs
个文本记录到错误日志中。我仍然没有完全确定为什么弹性搜索充斥着错误日志。
但我认为过多的磁盘空间使用导致了这个错误。 Nginx可以检测到这一点并切换到最小安全配置,这样只允许每个文件提供72kbs的数据。
当我清除过多的日志时,我不再需要重新启动nginx
或kibana
而停止获取不完整的js错误。
答案 0 :(得分:2)
由于您在代理后面访问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问题,而是配置代理的方式更多。
<强>更新强>
由于我们已将此范围缩小到代理问题,请尝试使用此更新您的nginx配置
sendfile_max_chunk 512k
worker_processes 2
更新2
尝试对nginx配置进行另一次修改:
proxy_buffering: off;