需要帮助为分布式系统构建正常运行时间仪表板

问题描述

我有一个产品,我想为其创建一个仪表板来显示 随着时间的推移其可用性/正常运行时间并显示任何中断。

特别是我正在寻找

  • 能够报告有关服务正常运行时间的历史信息
  • 提供有关任何服务中断的详细信息

该产品在一组 linux 服务器上运行并连接到正在运行的数据库一个单独的实例上,我们还有一些每晚运行的专用实例 批处理作业。我的系统也依赖一些外部服务来提供 为特定客户提供的附加功能。也有 redis 缓存 为多个客户缓存数据。

我们复制上述所有设置(应用程序服务器、数据库、作业服务器、redis 缓存等)到大客户的专用集群中。小客户放 在共享集群之一上以保持低成本。

目前我们仅在应用服务器上运行健康检查并提供 该信息在一个简单的 HTML 页面中。这是最终用户/客户的页面支持团队。

由于产品是使用多个系统/服务构建的,因此我们当前的 HTML 页面经常说系统已启动并运行良好,但可能会遇到 其某些组件或外部服务出现问题。

当前的健康检查正在使用一个简单的 HTTP 请求并查找 200 状态代码,此检查每分钟运行一次,我们将这些数据绘制成一个简单的 显示过去 30 天的图表。我们还显示了带有时间戳的中断列表和 手动添加的其他静态信息。

我们希望构建一个更强大的解决方案,该解决方案可以监控比 HTTP 端口更多的内容 以及我们在哪里有更多详细信息,例如哪个部分 系统存在问题以及这些问题如何影响系统以及 哪些客户受到影响。

感谢任何指导或帮助。我们更喜欢使用以下方法构建解决方案 开源工具,因为我们没有太多预算。目标是改善事物 我的团队成员已经超负荷了。

解决方法

鉴于我不了解您的产品,我不确定这对于您的设置是否会过大,但请查看 ELK Stack,看看您是否可以使用一些组件或至少一些想法从那里:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...