我认为我们的服务器受到了一些攻击,因为我们的服务器现在每天都瘫痪。我想监控导致服务器瘫痪的原因,或者是否有来自某个网站的攻击,或者它的爬虫是否在发起攻击。
有没有什么工具可以解决此问题?如果没有,我该怎么做才能找出问题的原因。
已编辑
- 我的服务器是 Linux
- 我有 cpanel 控制面板
- 我还没有检查日志
- 我没有做任何事情来查看问题的原因
- 所以我来这里是为了问如何才能找出问题的原因。我们服务器上有个家伙,他说是服务器内存的问题,他们告诉我们要扩展更多的内存,但是上面没有很多网站,也没有很多来自这些网站的负载,所以我不明白为什么我们的 2gb 内存会被用到。所以我想知道 :/
再次编辑
Linux 的版本是什么(CentOS、Debian、Redhat 等)
回答:CentOS
解释一下“服务器瘫痪”是什么意思。这是否意味着整个服务器停止响应,您必须进入并手动重新启动,还是意味着服务器继续运行,但只有网站停止响应?ftp、ssh 等是否继续工作?
回答:好吧,我们听到过几次服务器宕机的情况。第一次宕机时,你可以 ping 通它,但 Apache 无法工作。然后服务器又宕机了,有人说这是因为服务器主机有问题,所以他们修好了它,它就不会再宕机了。然后又发生了,即使重启后,服务器也没有修好,有人去启动服务器。第四次,我刚重启了一下,它就恢复了在线状态。现在每天都会发生这种情况,但通常是在早上,服务器一整天都运行良好,但早上它就会宕机
您如何重新启动它或者它最终会自行开始工作?
回答:不,我们必须手动重新启动才能开始工作,否则它将无法工作。
答案1
人们很想帮助你,但你的问题/回答太模糊了,很难提供帮助。我知道你是新手,但请先告诉我们:
- Linux 的版本是什么(CentOS、Debian、Redhat 等)
- 解释一下“服务器瘫痪”是什么意思。这是否意味着整个服务器停止响应,您必须进入并手动重新启动,还是意味着服务器继续运行,但只有网站停止响应?ftp、ssh 等是否继续工作?
- 您如何重新启动它或者它最终会自行开始工作?
- /var/log/messages 可能是查找服务器错误或内存不足错误的好地方。
我怀疑您的内存耗尽,正如您的服务提供商所说,这很可能是由于 apache/mod_php 网络服务器配置造成的。我多次见过同样的问题,追踪起来非常令人沮丧,因为很多时候服务器不会在日志文件中留下任何有用的信息,例如“内存不足”错误消息。
如果您认为是 Web 服务器导致的问题,以下是我对 Apache 设置的建议。我不使用 cpanel,因此无法为您提供具体说明。请务必记下默认设置,以防您需要回滚。
- 关闭保持活动 “KeepAlive Off”
- 将 StartServers 设置为“StartServers 8”
- 将 MinSpareServers 设置为“MinSpareServers 5”
- 将 MaxSparServers 设置为“MaxSpareServers 20”
- 将服务器限制设置为“ServerLimit 40”
- 将 MaxClients 设置为“MaxClients 40”
这些设置应该可以防止 apache/php 占用全部 2G 内存。由于 keepalive 关闭,打开包含多个图像的页面会稍微慢一些,但您只需先尝试一下,看看您的服务器是否保持运行。如果有效,您可以打开 keepalive,也许将 KeepAliveTimeout 更改为 5 或类似的值。如果它继续有效,每次将 ServerLimit 和 MaxClients 增加 5 或 10。
祝你好运
编辑:
我无法肯定地告诉你,但听起来你的服务器确实内存不足。我在几个配置错误的 CentOS 网络服务器上都看到过这种情况。这种情况通常发生在 2-3 分钟内。糟糕的是,它不会在日志文件中留下发生的事情的痕迹,它只会锁定直到你重新启动。如果你不尝试我建议的方法,但又想看看到底发生了什么,我知道的最好/最简单的方法是使用一个名为 atop 的程序。Cacti、Munin 和 Nagios 都很棒,但它们不会给你 atop 那样详细的数字。它们的设置也困难得多。
http://www.atoptool.nl/与 top 类似,但它会按照用户定义的间隔对 atop 窗口进行快照。在 /etc/atop/atop.daily 中设置 INTERVAL=60 可获取 1 分钟快照。运行 atop -r /var/log/atop/atop_20100311 可查看特定日期的 1 分钟间隔。使用 t 和 T 键可向前和向后查看时间。扫描时,您将能够看到正在运行的进程以及它们使用了多少资源。一旦内存使用量超过某个阈值,读数将变为红色,您就知道有问题了。留意 MEM 和 SWP。
答案2
首先查看服务器日志。日志中的内容可能表明服务器宕机的原因。
答案3
特别是 munin 可以让你监控服务器的性能,并让你知道哪个用户或进程收集了你所有的资源
另一个有用的工具可能是呼噜- 入侵预防和检测系统,但这并不容易建立
为了“更安全”,你可以通过以下方式限制每分钟每个 ip 的访问量iptables/netfilter,我在所有机器上都进行了此设置 - 但请记住:1.)这不会阻止分布式攻击 2.)如果您在网站上使用 ajax,请考虑所需请求的最低限度
答案4
调查ConfigServer 安全和防火墙 (csf+lfd)。这是一个可以安装到 WebHost Manager 中的软件包,它有许多工具可以帮助您评估服务器的安全性并自动阻止正在执行某些类型攻击的主机。我强烈推荐它。
如果你看到的不是攻击而是资源问题,请查看仙人掌、SNMP 和 MRTG。Cacti 的设置可能非常困难,但它可以创建服务器上资源使用情况的图表——这对于确定负载是否过高、RAM 是否不足或其他问题非常有用。Cacti 通过 SNMP 收集数据并使用 MRTG 生成图表。