Web应用程序监控最佳实践

我们正在完成我们的Web应用程序并计划部署。 部署到生产中的非常重要的方面是监视系统的健康状况。 拥有一小组开发人员/支持人员,对于我们获得潜在问题的早期通知以及在影响用户之前解决问题非常重要。

使用Nagios接口就像一个很好的选择,但是想要获得更多关于通用应用程序的最佳监视工具/实践的更多意见,特别是对于Django应用程序? 除了显而易见的CPU,内存,磁盘空间,数据库连接性之外,还欢迎有关应该监视什么的建议。

我们的网络应用程序是用Django编写的,我们使用Apache + Fast CGI和PostgreSQL数据库在Linux(Ubuntu)上运行。

编辑我们在Linode下有一个完全虚拟化的环境。

编辑我们使用Django的日志记录,所以我们有一种方式单独的信息,错误,关键问题等。


Nagios很好,可能会有系统测试(Selenium)定期运行。

编辑:Hyperic和Groundwork也看起来很有趣。

可能有一套测试套件系统可以为您保留一切压力测试。 我记不起头顶的名字,也许有人可以在下面提一个。

我喜欢做的其他事情:

基础设施的最佳座右铭始终是修复,检测和修复。 得到它,找到它的根,并且如果可以的话,治愈/预防它。

由于系统存在多个层次,因此我们应该在很多层面上进行测试:

编辑:将所有错误或警告通过电子邮件直接发送给您的个案管理员。 这样你就可以在一个地方跟踪事件。

1) 连接 :从服务器和外部监控您的互联网连接。 记录这个地方

2) 服务器 :监控您需要的所有进程,以确保它们正在运行并且不锁定服务器。 使用惠普服务器或其他类似的硬件故障通知,它可以从bios级别执行。 通知并记录它们是否是。

3) 软件 :确定始终需要运行的关键软件。 设置性能水平(如果有的话)然后监控它们。 Nagios应该能够为此提供帮助。 在Windows上它可以更多一点。 发生异常时,您应该能够从中运行脚本以自动重新启动进程。 我的梦想系统允许我通过短信与服务器交互,如果服务器认为它是我必须允许的异常,或者除非我通过短信取消,否则会自动发生。 一天..

4) 远程电源 :确保远程电源重置功能在你的手中。 如果您曾经使用过任何窗口,您可能需要安排每周重启。

5) 业务逻辑测试 :定期运行测试系统工作流程的脚本。 Selenium可能可以实现这一点,但我也喜欢记录结果,并说这次运行,这些文件有错误。 如果可能,请让系统通过脚本监控自己。

6) 备份 :做一个备份,你可以设置和忘记。 如果您可以将东西放入虚拟机中,那么这将非常理想,因为您可以随时扩展,移动或部署基础架构的任何部分。 我遇到了一些情况,我将一台死了的服务器移到我的笔记本电脑上,让我在解决问题时运行在vmware上。


监视与Web服务器和数据库的连接数量是另一件好事。 有机会,如果一个人通过屋顶射击,东西是资源匮乏,网站即将下降。

另外请确保您有一个对系统进行合理端到端测试的URL的定期请求。 如果您的网站支持搜索,那么请让nagios执行搜索 - 这应确保搜索索引健康,Web服务器和数据库服务器。

此外,请确保您的应用程序在您的用户看到错误或有未处理的异常时随时向您发送电子邮件。 这样你就知道应用程序在现场失败了。


如果我必须选择一种类型的测试,那就是测试系统的最终用户功能。 重要的是要考虑的是用户。 在测试诸如数据库可用性,服务器正常运行时间等事情时,测试是非常重要的,通过您的系统通过远程UI测试系统测试工作流程涵盖了所有这些基础。 如果您知道系统的关键部分可供最终用户使用,那么您知道您的系统已经完好无损。

  • 确定系统中的重要工作流程。 例如,如果您编写了电子商务网站,则可以确定“搜索产品,将产品放入购物车并购买产品”的工作流程。
  • 优先考虑工作流程,首先建立更高优先级的测试。 在开始生产后,您可以随时添加其他测试。
  • 使用可用的UI测试框架之一构建UI测试。 有许多自由和商业的UI测试框架可以以自动化的方式运行。 首先构建一组核心测试,以解决关键工作流程。
  • 设置至少一个运行测试的远程位置。 您想测试系统的每个方面,这意味着远程测试它。 互联网连接了吗? Web服务器是否正在运行? 与数据库服务器的连接是否正常工作? 等等。如果您远程测试,请确保您的系统可用于外界,这意味着它很可能是端到端的工作。 您也可以在内部运行这些测试,但我认为从外部运行这些测试非常重要。
  • 确保您的解决方案包括报告和通知。 如果您的一项关键工作流程测试失败,您希望有人了解它以尽快解决问题。 如果非关键任务失败,也许您只需要报告,以便您可以在带外解决问题。
  • 这种最终用户测试不应该消除数据中心系统的监控,但我想重申,最终用户测试是您可以为Web应用程序执行的最重要的测试类型。

    链接地址: http://www.djcxy.com/p/59703.html

    上一篇: Web application monitoring best practices

    下一篇: JOIN Query In MYSQL and PHP