如何定制 Squid 访问日志以显示上传文件,就像记录下载文件一样

如何定制 Squid 访问日志以显示上传文件,就像记录下载文件一样

只是想知道,有没有办法使用 squid 日志检查上传内容或与上传相关的任何数据?有任何插件或增强功能吗?还有其他可行的选择吗?感谢您的任何建议。谢谢。

答案1

文件上传只是 POST 请求,Squid 默认记录使用的请求方法:

Squid 的原生格式为:经过时间 远程主机代码/状态字节 方法 URL rfc931 peerstatus/peerhost 类型

因此,像这样的命令grep POST /var/log/squid/access.log应该为您提供所有的 POST 请求,但这也将包括许多非文件上传的请求,例如:

1416604451.778    243 172.16.1.20 TCP_MISS/200 455 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604497.047    245 172.16.1.20 TCP_MISS/200 327 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604542.304    241 172.16.1.20 TCP_MISS/200 327 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604587.562    241 172.16.1.20 TCP_MISS/200 327 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604694.915    241 172.16.1.20 TCP_MISS/200 313 POST http://serverfault.com/posts/validate-body - HIER_DIRECT/198.252.206.16 application/json

您可以尝试按请求正文大小进行过滤以获取更好的日志,但如果不修改 Squid 的源代码就无法记录请求正文,因此您将很难获取实际上传的文件。

也许可以看看独立资本管理委员会并创建一个响应 REQMOD 的程序并在将请求返回给 Squid 之前记录请求正文?

相关内容