服务器达到 100% 并保持在该状态,我该如何调查此问题?

服务器达到 100% 并保持在该状态,我该如何调查此问题?

我有个问题。

我使用的是 Xen VPN,运行 CentOS 6 和 Apache。我有一个中等流量的 Zen Cart 商店和几个低流量的 wordpress。我有一两个非常简单的 PHP 表单提交脚本,它们被正确转义了。

有时,我的 CPU 使用率会跳升至 100%(实际上是 200%)。这会导致服务器彻底崩溃 - 我无法登录、无法 SSH、无法访问控制面板(interworx)、无法执行任何操作。我唯一的办法就是重新启动服务器。

当我重新启动时,一切又恢复正常......持续了几个星期。

如果我不重启,CPU 会一直稳定在 200%,直到我检查并重启。这种情况持续了 24 小时。当它这样做时,网络利用率会降至零 - 这个流氓进程会彻底毁掉整个服务器。

因为我无法通过 ssh 登陆,所以我无法使用 top 或任何类似的直接工具。

我怀疑这是恶意软件,每次发生这种情况时我都会仔细检查所有访问日志。然而,(我很确定)我找不到任何太可疑的东西(我经常受到攻击,但似乎都被拒绝了)。我已尽我所能搜索任何似乎不应该存在的后门或脚本。

我的 Zen Cart 和 Wordpress 都是最新的。我使用非常安全的密码,并且只从 Linux 终端进行连接。

我该如何调查此事?是否有任何工具可以设置,以某种方式记录发生这种情况时到底发生了什么?从你的直觉来看,这更有可能是一个无辜的软件错误,还是我的服务器以某种方式被入侵并被用于……我不知道是什么?Folding@Home 的流氓研究人员?!我无法想象黑客会在 CPU 达到最大限度但网络为零的情况下做什么。

任何见解都将不胜感激。这将会成为一个大问题。谢谢!

答案1

设置一个 cron 作业,top -b -n1每分钟运行一次,并将输出转储到文件中。这将为您提供 (a) 哪些进程正在消耗 CPU 以及 (b) 进程在不同状态下所花费的时间的记录。这可能会提示您应将调查重点放在何处。

相关内容