检查MySQL日志是否存在性能问题/ DOS攻击

问题描述:

我们在PHP中编写了大部分网站,并且经常使用MySQL数据库连接。我们目前正在专用服务器上遇到一个主要的性能问题。访问我们的服务器时,它会非常缓慢地加载网页,并且永久性地使用SSH进入机器。我们重新启动了几次,几分钟后问题再次出现。检查MySQL日志是否存在性能问题/ DOS攻击

我们的网络主机(MidPhase)表示它可能与DOS攻击有关,他们将把我们的专用服务器放置在CiscoGuard上24小时,并检查我们的服务器日志以验证是否属实。

我担心我们可能会有一些编码不好的PHP脚本被利用。

如何检查服务器广泛的可能是PHP/MySQL注入漏洞可能导致的问题?

谢谢 Tegan

+0

看起来我可能已经找到了罪魁祸首。我使用了“ps aux”,并且看到mysql使用了我们CPU的24%。 然后我看着mysql正在运行的进程,并注意到我们的一个客户正在遭受重创。 这是一个使用旧版本Drupal的客户端,有人试图强行登录。我完全禁用了网站,现在情况看起来好转了。 有人没有及时了解安全补丁的经典案例。 – 2010-02-08 17:18:11

我会检查是否有不寻常的请求访问日志(特别是那些表明SQL注入,或大量的请求到相同的URL),并且还使MySQL的慢查询日志可以是有用的,因为它将允许您查看任何可能表明有人倾销您的数据库的重度查询,或者您自己的代码在查询上表现不佳。

考虑修改较慢的查询时间值(默认10秒)以获得有价值的日志,而不是查询空/臃肿。

使用mtop实时查看MySQL的性能可能也很有帮助。

假设你用一盏灯的设置,我会的东西开始喜欢

$ top 

$ ps aux 

看看什么进程正在使用大量资源。它可能是php/mysql,但它也可能是邮件服务器或垃圾邮件过滤器(只是一个例子,如果你在同一台服务器上运行它)。

+0

是的,它是一个LAMP设置。 让我说运行上面的命令后,我看到mysql正在使用大量的资源。 我该如何深入研究并查看哪些单个PHP页面可能导致问题。 – 2010-02-08 16:47:10

+0

这是一个棘手的问题,我记得寻找并没有找到它。除了检查哪些页面在httpd日志中的加载比平常更多之外,我只能推荐在serverfault.com上询问相同的问题。抱歉。 – jeroen 2010-02-08 17:02:49

我建议您简单地通过任何PHP,并确保查询正在被转义(或使用绑定),并且您正在筛选可能的XSS攻击。