2

我想编写一个库来监控在 widnows 服务器/linux 服务器上运行的 java cron 作业。

不确定我们如何跟踪 java cron 作业

  1. 它已经运行
  2. 如果有,是否成功
  3. 如果不是,当它失败时
  4. 最后一次成功是什么时候
  5. 另外,维护上述信息的历史数据

我们在公司建立了基础设施来监控服务器、磁盘使用情况、内存等……但是我们没有对我们部门设置的 cron 作业进行任何跟踪。

我打算为此使用java,但不确定如何做到这一点。另外,我打算使用数据库来收集状态和存储,以便我们可以查看历史数据而不仅仅是当前状态。

请让我知道如何做到这一点....基本上设计一种仪表板类型的东西,它可以一次性描述我所有工作的状态。

感谢您在这方面的任何帮助。

4

2 回答 2

0

我们已经创建了一些内部使用的东西,最终我们将其制成了一个 SaaS 网络应用程序。它被称为 PushMon,它几乎可以完成您上面列出的工作。它不是图书馆,但我可以快速描述我们是如何做到的。

它已经运行了。您的 cron 作业“ping”监控系统以告诉它运行。它只是调用一个 URL。

这是成功的。如果你成功了,你只会“ping”。

失败的时候。如果作业知道它何时失败,它可以执行一个特殊的失败“ping”。如果作业不知道它失败了,就像它根本没有运行一样,监控系统会注意到丢失的 ping 并发送警报。

最后一次成功是什么时候。监控系统跟踪这些“ping”。

维护历史数据。监控系统将所有信息存储在数据库中,并提供一些表格和图表。

这是一个在 Tomcat 上运行的用 Spring MVC 编写的 Web 应用程序。仪表板/UI 是 jQuery UI,但如果有机会重新做一遍,会使用 Bootstrap。图表使用谷歌图表。

于 2013-10-24T04:03:11.593 回答
0

感谢您的回复。

它的处理方式很好。可能,我们也可能会想到那个选项。是开源的吗?我们需要调用的 URL 是否是 PushMon 特定的(意味着工作状态将存储在您的数据库中?我们需要将所有内容存储在我们公司的基础设施中)

我们正在研究几个选项。

  1. 使用 log4j 和 JMSappender 和 Apache ActiveMQ 作为 JMS 服务器

使用上述方法,我们将状态记录到 JMS,lsitener 将读取并插入数据库,以便我们可以存储历史数据。在此 DB 之上提供 Web 界面以读取状态并提供图形视图。

但是,我们在这里预见到一个问题。JMS 是否按顺序发送日志条目,而侦听器是否按顺序接收它们。尚未对此进行探索。

最初我们考虑使用 JDBCAppender 将条目直接记录到 DB。然而,很少有评论说它有点慢,因为我们的应用程序和数据库是分布式的,可能会产生网络开销并影响应用程序的性能。

  1. 探索一些可以满足我们要求的开源监控软件,这样我们只需要花时间设置监控软件就可以了,我们很好.....不需要真正进入测试/维护自己开发的监控软件。

如果您知道任何更好的方法,请告诉我们。

于 2013-10-25T07:03:55.570 回答