【问题标题】:How to write monitoring software using java如何使用java编写监控软件
【发布时间】:2013-10-23 08:55:05
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 我投票结束这个问题,因为这个话题太广泛了。你能缩小你的问题范围,把注意力集中在你被困在的特定问题上吗?了解自己已经完成的工作会很有帮助。

标签: java cron monitoring


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    感谢您的回复。

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

    我们正在研究几个选项。

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

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

    但是,我们在这里预见到一个问题。 JMS 是否按顺序发送日志条目,而侦听器是否按顺序接收它们。还没有探索过。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2017-05-14
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      相关资源
      最近更新 更多