不确定标题是否是表达我的实际问题的好方法,如果这个问题过于笼统,我深表歉意,但我在思考如何做某事时遇到了一些麻烦。
我正在尝试做的事情:这个想法是为我负责监控的数千台服务器创建一个“中断”的 MySQL 数据库。这将提供停机时间的历史记录,并提供一种简单的方法来追溯发生的事情。该数据库将通过一个相当简单的 PHP 表单进行查询,您可以在其中按日期或服务器主机名等浏览这些中断。
到目前为止我所拥有的:我有一个 python 脚本,它定期作为 cron 运行,以调用 Pingdom API 以获取 pingdom 服务报告的当前停机警报列表。对于每个停机警报,将一行插入包含主机名、时间戳、pingdom 检查 ID 等的数据库中。然后我有一个简单的 php 表单,可以很好地查询停机警报。
问题:我现在所拥有的缺少一些重要的功能,并不是我想要的。目前,查询这个数据库会给我一个简单的向下警报列表,如下所示:
从 2012-05-01 到 2012-06-30 的 Test_Check 的 Pindom 警报:
test_check 在 2012-05-24 00:11:11 报告为 DOWN test_check 在 2012-05-24 00:17:28 报告为 DOWN test_check 在 2012-05-24 00:25:24 报告为 DOWN test_check 在2012-05-24 00:25:48
我想要的是这样的:
test_check 被报告了 15 分钟(2012-05-24 00:11:11 到 2012-05-24 00:25:48)(链接到此中断的评论)(链接到有关此中断的信息)。
在这个理想的最终结果中,将有一行包含中断 ID、服务器 pingdom 的主机名报告故障、该框最初报告故障的时间戳和再次报告故障的时间戳以及“注释” ' 我(和其他管理员)在事后将使用该字段添加有关此特定事件的注释。我不确定在从 pingdom 中提取警报时是否应该尝试执行此操作,或者是否应该在收集警报以填充新表后重新处理它们,我也不太确定我会如何解决这些选项中。
我对如何将在短时间内发生的多个停机警报组合成一个“中断”感到有点迷茫被存储。这将允许我评论并添加具体细节以供将来参考,并且通常会使这个东西更有用。我不确定在从 pingdom 中提取警报时是否应该尝试执行此操作,或者是否应该在收集警报以填充新表后重新处理它们,我也不太确定我会如何解决这些选项中。
我一直在绞尽脑汁想弄清楚如何做到这一点。这似乎是一个简单的概念,但我是一个有点缺乏经验的程序员(我是一名专业的 Linux 管理员),在这一点上我很难过。
我正在寻找任何想法、建议、示例,甚至只是对我在这里尝试做的更技术性的解释,以帮助我指明正确的方向。我希望这是有道理的。提前感谢您的任何建议:)