【发布时间】:2010-10-14 16:02:16
【问题描述】:
我们的团队有许多流程,我们手动运行,但可能会运行很多天。这些进程对大量实体(网页、数据库行、图像、文件等)执行各种操作。显然,有时会出现故障,我们必须设计或流程来优雅地处理这些故障并继续前进,这样整个工作才不会被拖垮。
根据所讨论的特定过程,故障的发生率、严重性和紧迫性会有所不同。在某些情况下,我们会在发生罕见但重要的错误时发送电子邮件,在其他情况下,我们只是记录它并继续,等等。
问题是我们到处都有不同的错误处理代码,而且当我们“记录并继续”时,往往没有人回头阅读日志,所以没有人知道发生了什么问题。我们不能默认使用电子邮件解决所有问题,因为电子邮件太多了。
这些是长时间运行的进程,但不是守护进程,它们可能适合 SNMP 或 Nagios。当然这是一个相当普遍的问题,但我似乎无法在网上找到很多解决方案。我听说人们在谈论使用 log4j(或其他类似的日志记录包)登录到数据库等,这似乎是朝着正确方向迈出的一步,但现在肯定有更复杂的解决方案...... ?我正在想象您的记录器将事件写入数据库并且有一个类似 Nagios 的 Web 界面,可让您实时查看哪些进程发生了什么错误以及为特定模式配置电子邮件警报等。
这样的东西存在吗?如果没有,您使用了哪些方法成功处理了类似问题?
(因为我们的大部分代码库都在 python 中是值得的,但我想这个想法的任何体面的实现在很大程度上都是非语言特定的,显然任何概念性的解决方案也是如此)。
更新:我刚刚花了一些时间研究 Chainsaw,这正是我正在寻找的东西,但我希望它是一个 web 应用而不是桌面应用,并具有警报功能。
更新:我刚刚发现 hoptoadapp 和 exceptional 都与我的想法有些相似,尽管它们都专门针对 Rails。
【问题讨论】:
标签: logging monitoring