我是服务器管理新手,刚刚设置了一个新的四核实例,可托管大约 15 个网站。
过去几天,我的服务器负载平均保持在 15.00 左右。我认为这是因为一个(或许是多个)网站被垃圾邮件机器人发送了垃圾邮件。
在命令行中输入“top”会显示来自用户“www-data”的许多进程,这表明有大量网络流量。有没有一种简单的方法可以确定我的哪个网站正在遭受攻击?
读取 apache 错误日志是一项非常困难的任务,因为大多数网站每天都会接收 10,000 多个独立用户的流量。
任何帮助,将不胜感激!
答案1
每个vhost(域)都应该编写自己的access.log
然后只需比较日志文件的文件大小即可。如需更详细的统计数据,您应使用日志文件分析器,如 awstats (http://awstats.sourceforge.net/)
答案2
您可以在 apache 上启用服务器状态模块。它对于实时查看服务器的运行情况非常有用。
(确保通过 .htaccess 限制对服务器状态模块的访问,不要将其公开!)
答案3
安装并使用名为伊夫托普或者也可以使用工具wireshark以便进行更好的分析。
答案4
我安装了 iftop,发现它对于识别哪些主机正在发送我的服务器请求非常有用。但是,apachetop 是一个更好的工具,可以查看各个虚拟主机上正在请求哪些文件。它还告诉我哪些 IP 地址正在发出请求