我想编写一个库来监视在widnows服务器/ linux服务器上运行的java cron作业。
不确定我们如何跟踪java cron作业
我们在公司设置基础设施来监控服务器,磁盘使用情况,内存等......但我们没有跟踪我们在部门设置的cron作业。
我打算在这个版本中使用java,但不知道如何做到这一点。此外,我打算使用数据库来收集状态和存储,以便我们可以查看历史数据而不仅仅是当前状态。
请让我知道如何做到这一点......基本上设计了一个简单的东西,一次性描绘我所有工作的状态。
感谢您在这方面的任何帮助。
答案 0 :(得分:0)
我们已经创建了内部使用的内容,最终我们将其变成了SaaS webapp。它被称为PushMon,它几乎完成了你上面列出的内容。它不是一个图书馆,但我可以快速描述我们是如何做到的。
它已经运行了。你的cron工作“ping”监控系统,告诉它运行。它只是调用一个URL。
这是成功的。如果你成功,你只能“ping”。
失败时。如果作业知道何时失败,则可以执行特殊的失败“ping”。如果作业不知道它失败了,就像它从未运行过一样,监控系统会注意到丢失的ping并发送警报。
最后一次成功是什么时候。监控系统记录这些“ping”。
维护历史数据。监控系统将所有信息存储在数据库中,并提供一些表格和图表。
这是在Tomcat上运行的Spring MVC编写的Web应用程序。仪表板/ UI是jQuery UI,但如果有机会重新执行它,则会使用Bootstrap。图表正在使用Google Charts。
答案 1 :(得分:0)
感谢您的回复。
处理方式很好。也许,我们也可能会想到这个选择。是开源吗?我们需要调用的URL是否特定于PushMon(意味着作业状态将存储在您的数据库中?我们需要在公司内部存储所有内容)
我们正在研究一些选择。
使用上面的内容,我们将状态记录到JMS,lsitener将读取并插入到DB中,以便我们可以存储历史数据。在此DB的顶部提供Web界面以读取状态并提供图形视图。
但是,我们预计会有一个问题。 JMS是按顺序发送日志条目,列表器是否按顺序接收它们。还没有探讨过。
最初我们考虑使用JDBCAppender将条目直接记录到DB。但是,很少有评论说它有点慢,因为我们的应用程序和数据库是分布式的,可能会有网络开销并且会影响应用程序的性能。
如果您知道更好的方法,请告诉我们。