我们正在完成我们的Web应用程序和部署计划.部署到生产的非常重要的方面是监控系统的运行状况.拥有一个由开发人员/支持人员组成的小团队,这对我们获取潜在问题的早期通知并在这些问题对用户产生影响之前解决它们非常重要.

使用Nagios Seams是个不错的 Select ,但想了解更多关于一般Web应用程序,特别是Django应用程序的最佳监控工具/实践的意见?我也欢迎关于除了明显的CPU、内存、磁盘空间和数据库连接之外应该监控哪些内容的建议.

我们的Web应用程序是用Django编写的,我们运行在Linux(Ubuntu)上,运行在Apache+Fast CGI下,带有PostgreSQL数据库.

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

编辑 我们使用Django日志(log)记录,因此我们有一种分离信息、错误、关键问题等的方法.

推荐答案

Nagios很好,可以让系统测试(selenium)正常运行是很好的.

Edit: 100 and 101 also look interesting.

可能有一个测试套件系统可以为您保持压力测试.我一时想不起这个名字,也许有人能在下面提到一个.

我喜欢做的其他事情:

基础设施的最佳座右铭始终是修复、检测和维修.振作起来,找出问题的根源,如果可能的话,治疗/预防它.

因为一个系统存在于多个层次,所以我们应该在多个层次进行测试:

编辑:将所有错误或警告通过邮箱直接发布给您的 case 经理.这样您就可以在一个地方跟踪事件.

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

2)Server:监控您需要监控的所有进程,以确保它们正在运行,而不是固定在服务器上.使用HP服务器或具有硬件故障通知功能的类似设备,它可以从BIOS级别执行此操作.如果是,请通知并记录.

3)Software:识别始终需要运行的关键软件.设置性能级别(如果有),然后监视它们.纳吉奥斯应该能帮上忙.在Windows上,它可能会更多一点.当发生异常时,您应该能够从它运行脚本以自动重新启动进程.我的梦想系统是允许我通过短信与服务器互动,如果服务器认为这是我必须允许的例外,或者除非我通过短信取消,否则它将自动发生.总有一天...

4)Remote Power:确保远程电源重置功能在您手中.如果您曾经使用windows进行任何操作,您可能希望计划每周重新启动一次.

5)Business Logic Testing:让定期运行的脚本测试您的系统工作流.Selenium可能可以实现其中的一些功能,但我也喜欢记录结果,因为它是在这个时候运行的,并且这些文件有错误.如果可能,请让系统通过您的脚本监控自身.

6)Backups:做一份备份,你可以设置好,然后忘记.如果您可以将东西放到虚拟机中,那将是最理想的,因为您可以在任何地方扩展、移动或部署基础架构的任何部分.我曾经遇到过这样的情况:我将故障服务器移到我的笔记本电脑上,让它在我修复问题的同时在VMware中运行.

Django相关问答推荐

Django中的判断约束

RDBMS多对多关系Django

如何将Django项目连接到容器化的PostgreSQL数据库?

Django中的DateTimeField到DateField

如何在 Django REST Framework API 响应中使用多标签过滤器?

基于令牌的身份验证如何工作?

djangorestframework:过滤相关字段

删除所有实例后,Django 模型实例主键不会重置为 1

在 Django 中,您可以向查询集添加方法吗?

将现有 auth.User 数据迁移到新的 Django 1.5 自定义用户模型?

UnicodeDecodeError:asciicodec can't decode byte 0xe0 in position 0: ordinal not in range(128)

如何从 django 的 db 模型中获取字段类型字符串

Django 国际化语言代码

整数的Python正则表达式?

Django - 每 x 秒运行一个函数

如何使 Django QuerySet 批量删除()更高效

在 Django shell 启动时自动导入模型

如何使 Django 的开发服务器公开?

Django:按位置排序,忽略 NULL

判断列表 django 模板中是否存在