我有一些在给定的Ubuntu服务器上运行多个低stream量网站的客户端。 当我设置这些东西时,我总是configuration每个Nginx虚拟主机写入自己的访问错误日志文件。
这种方法对于几乎所有的事情都很有效,但是时不时的一个场景就是当一个站点受到某种暴力攻击,甚至怪异的非恶意事件的攻击时,却会产生类似的不必要的有害的stream量。
我可以看到CPU和内存的高峰,但我不知道该怎么做的是快速确定哪个站点正在被攻击。 通常我发现自己在每个站点访问日志上运行tail -f几秒钟,直到我发现正在写入的日志比预期更频繁。
我想知道是否有某种单线程的脚本,可以帮助我快速识别哪些访问日志文件增长最快或写入最多或其他。 任何事情都会让我更加接近确定目标的速度,比我目前以我的辛苦方法达到目标的速度更快。
假设您将日志文件保存在/ var / log / nginx下,并且包含访问权限的名称,这可以做到这一点:
find /var/log/nginx -type f -iname '*access*' -exec wc -l '{}' \+ | sort -n
你会发现按命中次数sorting的日志文件,最后打印的是最忙的日志文件。
请注意,这是一个“或多或less”的指示,如果你在SYN洪水攻击下,或者你应该检查其他的东西。