题
我怀疑有一个无法解释的1600%的交通stream量增长和持续10分钟左右的巨大减速。 我不确定这是否是一个尝试的DoS攻击,字典login攻击等。无论如何,我应该采取什么行动来监视我的服务器(我应该看哪些日志,我应该使用什么工具等),以确保没有什么恶毒发生? 我应该在未来的减速过程中采取哪些措施? 有没有一个标准的方式让服务器在这样的stream量激增期间提醒我?
所有的血淋淋的细节:
我的一个客户今天凌晨1点左右报告了一个没有响应的网站(Ruby on Rails通过Apache,Mongrel和CentOS 5盒子上的mongrel_cluster)。
当我在1:15收到邮件时,我处于完整的故障排除模式。 ssh和加载网页确实非常慢,但ping输出看起来很好(78毫秒),从我的工作站在丹佛的traceroute在从达拉斯到菲尼克斯的服务器中途的某一跳上显示缓慢的时间(1611.978 ms 195.539女士)。 5分钟后,该网站作出反应, traceroute现在正在通过圣何塞路由到凤凰城。 我找不到任何明显的错误 – 系统负载看起来相当合理(0.05 0.07 0.09),我认为这只是一个networking问题。 为了安全起见,我重启了机器。
几个小时后,我loginGoogle Analytics(分析),查看当天的情况。 我有一个巨大的点击率:通常这个站点平均每小时访问6次,但在1点我得到了130(增加了1600%)! 几乎所有这些命中似乎来自世界各地的101个不同的主机。 每个访问者都在网站上0秒,每次访问是直接的(即它不像网页slashdotted),每次访问是一个反弹。
从大约1:30开始,事情进展顺利,每小时平均回访6次。
免责声明:
我是一个代码开发人员(不是系统pipe理员),他必须为运行我编写的代码的机器维护Web服务器。
目前还不清楚你正在ping /追踪,从哪里。 但是,如果这是一个traceroute输出中间跳,那么从190 ms跳到1600 ms可能意味着networking拥塞。 如果这与您的事件和路由path的切换有关,则可能是您的部分提供商networking受到了攻击,包括您的服务器。
你的问题没有单一的解决scheme。 有很多工具和方法,如童子军 , Keynote , New Relic , Nagios等等。 无论你决定做什么,只要不要忘记一件事,如果你监视服务器和服务器上的某些东西,并且该服务器变得不可用,那么你可以用任何方法通知自己它已经closures了。
我会看看这些连接是否来自某种networking爬虫。 来自像http://www.majestic12.co.uk/这样的应用程序的连接数量一直在上升
这种特殊的服务就像SETI @ Home或Folding @ Home一样,将来自分布式用户的抓取数据聚合回中央位置。 Majestic12使用以下浏览器代理: http : //www.majestic12.co.uk/projects/dsearch/mj12bot.php
然而,雄伟的,但是,遵循robots.txt中configuration的规则,所以你可以阻止它爬行你的网站,也有类似的抓取工具以这种分布式的方式工作。
要确定是否属于这种情况,您可以查看您的Web日志,以尝试识别与之build立连接的用户代理。 虽然这并不总是正确地报告,它应该给和表明,如果交通确实来自某种机器人。
如果您发现连接确实来自某种networking爬虫,那么您可以尝试使用robots.txt文件限制其访问。 如果他们全部来自特定的用户代理,那么请您不要使用类似于以下文件的方式来抓取您的网站。
用户代理:MJ12bot(或任何爬虫可能)
不允许: /