我试图debugging一些失败的HTTP POST请求包含大file upload(〜500 MB)。 最终用户正在接收奇怪的HTTP响应,这些响应没有logging在varnish的varnishncsa工具,varnish的varnish日志工具或任何内部web服务器日志中。 由于我不能重复的问题(这可能是一个ISP的代理的结果)我试图find一些选项logging整个请求(由URL标识),并稍后在开发或登台服务器上重播。
看起来Snort可能是解决这个问题的最好方法,因为它允许我们在传入的数据包被解释(错误)之前logging下来,但是我担心它可能会引入显着的延迟,内存开销或其他不可预见的问题有这么大的要求 我们需要做的所有匹配都将基于URL,因此只有第一个kb左右的数据实际上需要过滤,但是我们需要剩余的请求才能重播。
我在snort文档中查看readme.stream5,这使得这看起来可能和合理,但是文档和现实世界之间的差距可能相当大。
Snort是否适合这个任务? 有什么优化,我可以适用于避免过多的内存,磁盘或处理器的开销? 如果你不相信Snort很适合这个任务,你会build议什么?
服务器安装全球分布在运行最近的Linux设置的无头盒子上,所以任何解决scheme都必须是脚本化的,自动化的,并且能够通过某种方式向我报告它已经捕获了请求。