Centos 负载巨大,有许多 apache 进程

Centos 负载巨大,有许多 apache 进程

我的服务器目前负载巨大,但我不知道原因。当我使用“top”命令时,有数百个 apache 进程使用命令“aux”,但我在网上找不到任何信息告诉我这意味着什么。负载在 50-150 之间波动,比平时高出 50-150。

Netstat 返回数百行,如下所示:

tcp  0  0 xxx.xxx.xxx.xxx:45216  61.155.202.205:80  CLOSE_WAIT  28863/aux

几乎所有都来自 61.155.xxx.xxx(不确定这是否是相关信息,但尽量提供尽可能多的信息)。

操作系统是 CentOS:版本 5.7 Final 我们只是在其上运行 LAMP 堆栈,其中大约有 30 个网站没有太多负载(或者我是这样认为的)。我检查了所有 vHost 的日志,但似乎没有一个收到很多/任何请求(不足以引起此问题)。我不确定是否还有其他日志我应该检查?

它是几天前开始的;据我所知,服务器上没有发生任何变化。

有人知道我该如何找出导致负载激增的原因吗?我是否遗漏了其他命令/日志,它们可能能够帮助我找出问题所在?

答案1

这没什么联系61.155.xxx.xxx。这是一个连接61.155.202.205 上的网络服务器。

看起来您的网络服务器正在向中国境内 ADSL 连接上的其他网络服务器发出 HTTP 请求。尝试tcpdump -n -A -s0 host 61.155.202.205查看您正在收集什么类型的数据。我怀疑这是恶意的。

如果是恶意的,请参阅我的服务器被黑了!紧急


“许多 Apache 进程”很可能是造成高负载而不是导致高负载。即使平均负载为 50,我也预计会看到 HTTP 请求需要花费数秒的时间。如果负载达到 150,情况会更糟。

答案2

为了帮助遇到同样问题的人,我来告诉你,问题是由特洛伊木马 ( Trojan.Perl.Shellbot-2) 引起的。在这里的回答/评论和我在另一个问题中398715,我们做了以下事情:

  • 安装并运行chkrootkit,但没有找到任何内容
  • 安装并运行clamav,追踪病毒的名称及其所在位置
  • 搜索了其他有同样问题的人,发现这个帖子
  • 按照说明删除并清理病毒
  • 添加apachecron.deny文件并重新启动crond

这只是解决方案的一部分;在我们找到漏洞所在之后,服务器仍然需要重建,但这是一个好的开始,我们让服务器恢复正常运行。

如果有人能想到我遗漏了什么、我做错了什么或者可以做得更好,请告诉我。

相关内容