我在CentOS Plesk服务器上有100多个域名。 突然,服务器上的负载变得非常高,吃掉了所有的资源。 吃掉所有的RAM,所有的CPU,由于我甚至不能login到服务器来检查发生了什么事情的服务器。 我试图看到所有网站的实时尾日志,没有显示任何东西,如有一些外部的威胁。 服务器上已经安装了Mod_Evasive,这也没有阻塞任何东西。
我的问题是,我怎么知道究竟是哪个域/站点/ Cron作业或任何服务器正在吃掉所有的资源。
注意:在Htop实用程序中,我可以看到,它的httpd正在吃掉所有的资源。
你使用的是哪个版本的Apache? mod_evasive
几乎停止了Apache 2.2+的工作。 您的第一个通话端口可能会查看httpd status
。
赶紧跑
service httpd status
在命令行,它会给你一个实时显示的请求,主机名和IP。 您可能正在观察攻击(例如,攻击者同时打开大量连接的攻击)。
如果这不起作用,请将这些行添加到httpd.conf
:
<Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from 127.0.0.1 </Location>
Cyberciti有一个很好的文章 。 接下来你可以尝试一下
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
下面的命令会创build一个连接到服务器的IP地址列表以及它们的总连接数。
( 转自DDos Deflate )。 运行这两个之后,你就可以看到你是否受到攻击,或者一个网站正在占用不成比例的CPU。