查找一次nexus3无法下载raw代理文件的问题

背景

再利用OWASP Dependency Check 工具做漏洞检查时需要连接国家的漏洞库,这里利用到上篇博客用到的nexus3代理的漏洞库,在测试时发现有的漏洞库文件可以下载,有的文件不可以下载,用浏览器下载时浏览器提示在这里插入图片描述

问题分析

这时候用过nexus3代理的都会知道,如果代理第一次访问,会去远端服务器上下载,最后缓存到本地的nexus3服务器上。在这缓存期间,可能会无法下载,那么问题可能就是在这段时间,但是后来等了3个小时左右,还不可以下载,这时候问题应该就不是那个问题了,这时候去nexus3的服务器上检查日志。发现服务器上nexus3日志正常

tail -f $NEXUS_HOME/../sonatype-work/nexus3/log/nexus.log -n 10000

说名问题不在nexus3,这里,这时候想着分析查看一下服务器资源是否正常,先查看服务器内存使用情况

free -m 

在这里插入图片描述
通过上图可以看到服务器内存资源充足,内存没问题,那么有没有可能是存储的问题呢

df -h

通过df -h 查看后发现服务器上/目录下已经使用的100%了,这是问题已经明了了,就是没有硬盘资源导致nexus3无法下载.

解决问题

那么这时候需要查看一下是什么文件占用了大量的空间,使用前一篇博客中提到的技巧最后查找到是一个nginx的日志占用了大量的空间。大概3G左右,还是一个error的日志?问题是为什么这个error日志这么大。然后通过查看nginx的配置文件发现核心配置如下

  gzip  on;
    server {
        listen       80;
        server_name  localhost;
        access_log /var/log/nexus_access_log main;
        error_log  /var/log/nexus_error_log  debug_http;

原来是开启了http的debug模式,导致每次请求都会产生调试日志到error的日志中,OK 到这里,已经真相大白了。
nginx http调试日志格式如下

2018/10/09 17:25:38 [debug] 836#0: *1 http process request header line
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Host: 192.168.30.100"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Connection: keep-alive"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Content-Length: 992"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Origin: http://localhost"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "X-Requested-With: XMLHttpRequest"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "X-Nexus-UI: true"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Accept: */*"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Referer: http://localhost/"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Accept-Encoding: gzip, deflate"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Accept-Language: zh-CN,zh;q=0.9"
2018/10/09 17:25:38 [debug] 836#0: *1 http header: "Cookie: _ga=GA1.4.143565627.1521178533"
2018/10/09 17:25:38 [debug] 836#0: *1 http header done
2018/10/09 17:25:38 [debug] 836#0: *1 generic phase: 0
2018/10/09 17:25:38 [debug] 836#0: *1 rewrite phase: 1
2018/10/09 17:25:38 [debug] 836#0: *1 test location: "/"
2018/10/09 17:25:38 [debug] 836#0: *1 test location: "files/"

nexus3 无法下载raw文件的原因?

  1. 服务器没有磁盘空间了,为什么服务器没有磁盘空间了?
  2. 因为nginx的错误日志中有调试日志,每次请求服务器时都会产生大量的请求调试日志。
  3. 而nexus3是有nginx做了个反代处理的,而nginx没有空间,进程就无法处理请求了

然后这里直接删除了错误的请求日志。

rm -rf /var/log/nexus-error-log

删除后,这时候文件不在了,用查看磁盘的命令查看空间是否恢复,

df -h

竟然空间还是100%,应该是由于nginx的进程还占用着这里的文件句柄,重启nginx试一下

service nginx restart
df -h

重启之后,ok,可以使用,再用浏览器下载文件,可以下载了
在这里插入图片描述

问题解决

结论

对于Linux上的基础性服务,需要有监控服务,可以有定期处理这些日志文件。有预警服务来完善这些事情

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值