javascript – Kibana卡在加载屏幕上[UPDATE – Nginx只提供部分JS文件]

Kibana没有正常启动.当我打开控制台时,它似乎是一个
javascript资源问题.当我直接打开js文件(点击它们在控制台中的链接)时,它们看起来是不完整的,并且突然被切断了.不确定这是否是浏览器文件限制或某种方式我的文件已被切断?请看下面的图片,向您展示我所看到的.

《javascript – Kibana卡在加载屏幕上[UPDATE – Nginx只提供部分JS文件]》

文件在chrome中看到.根据chrome加载它的方式,这是文件的最底部.

《javascript – Kibana卡在加载屏幕上[UPDATE – Nginx只提供部分JS文件]》

我重新启动了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;
点赞