如何用java编写监控软件

时间:2013-10-23 08:55:06

标签: java cron monitoring

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

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

  1. 已经运行
  2. 如果是的话,是否成功
  3. iF NOT,当它被罚款
  4. 上一次成功是什么时候
  5. 此外,维护以上信息的历史数据
  6. 我们在公司设置基础设施来监控服务器,磁盘使用情况,内存等......但我们没有跟踪我们在部门设置的cron作业。

    我打算在这个版本中使用java,但不知道如何做到这一点。此外,我打算使用数据库来收集状态和存储,以便我们可以查看历史数据而不仅仅是当前状态。

    请让我知道如何做到这一点......基本上设计了一个简单的东西,一次性描绘我所有工作的状态。

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

2 个答案:

答案 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(意味着作业状态将存储在您的数据库中?我们需要在公司内部存储所有内容)

我们正在研究一些选择。

  1. 使用log4j和JMSappender以及Apache ActiveMQ作为JMS服务器
  2. 使用上面的内容,我们将状态记录到JMS,lsitener将读取并插入到DB中,以便我们可以存储历史数据。在此DB的顶部提供Web界面以读取状态并提供图形视图。

    但是,我们预计会有一个问题。 JMS是按顺序发送日志条目,列表器是否按顺序接收它们。还没有探讨过。

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

    1. 探索一些可以满足我们要求的开源监控软件,这样我们只需要花时间设置监控软件,而且我们很好.....无需真正开始测试/维护自行开发的监控软件。
    2. 如果您知道更好的方法,请告诉我们。