应用程序运行状况监视系统有哪些要求?

问题描述 投票:10回答:9

应用程序健康监控系统至少应该为您(开发人员)和/或您的老板(IT经理)和/或操作(待命)员工做些什么?

除最低要求外还应该做些什么?

监控“基础架构”应用程序(ms-exchange,apache等)是否足够,或者是否还需要监控单个用户应用程序,网站和数据库?

如果是后者,你需要了解他们什么?

附录:感谢您的投入,我真的在寻找应用程序级别的监控,而不是基础设施监控,但很高兴知道两者

monitoring health-monitoring
9个回答
12
投票
  • 应用程序是否正在运行。
  • 不寻常的CPU /内存/网络使用情况。
  • 报告任何未处理的例外情况。
  • 各种模块的状态(如果适用)。
  • 外部组件的状态(数据库,Web服务,文件服务器等)
  • 待处理后台任务的数量(如果适用)。
  • 可能跟踪应用程序的使用情况并报告大多数/较少使用的功能的统计信息,以便您了解优化最有利的位置。

2
投票

答案是“这取决于”。你为什么需要监控?你的运营人员有多大?你需要报告吗?什么是应用环境?谁在乎应用程序是否失败?谁在乎是否发生异常?是否可以恢复任何错误?很长一段时间我都可以问这样的问题。


2
投票

好问题。

我们一直在为我们的需求寻找一些应用程序级别的监控解决方案,但没有任何运气。流行的监控解决方案主要用于监控基础设施,在我看来,它们太复杂,无法满足大多数中小型企业的需求。

我们需要(主要)以下功能:

  • 警报 - 我们希望尽快了解事件
  • 无痛管理 - 托管服务将是最好的
  • 可视化 - 知道发生了什么并从数据中获取一些知识是很好的

因为我们找不到合适的解决方案,所以我们开始自己编写。最后,我们以称为AlertGrid的正常运行服务结束。 (你当然可以免费查看。)

它背后的想法是提供一种处理自定义监控方案的简单方法。 Integration API非常简单(一个函数有两个必需参数)。我们和其他人正在使用它来:

  • 监视预定任务(cron作业)
  • 监控整个应用逻辑执行
  • 警告应用程序中的错误
  • 我们还在研究使用AlertGrid进行基本基础设施监控的示例

2
投票

这是一个开放式的问题,但我会从物理测量开始。 1.我认为托管这个网站的所有机器都可以ping通吗? 2.应该提供内容的所有机器是否实际上都提供了某些内容? (理想情况下,这将来自外部网络。) 3.每台机器上的每项预期服务都在运行吗? 3A。最近有这些服务吗? 4.每台机器是否都有硬盘空间? (别忘了db) 5.这些机器是否已备份?最后一次是什么时候? 一旦人们对系统进行物理监控,就能解决系统特有的问题? 1.自动脚本可以登录吗?花了多长时间? 2.有多少用户?是否添加了一百万个假帐户? ... 这些问题变得更加模糊,并且可能非常系统化。它们通常也可以在响应动态测量时被反应性地导出。硬盘填满,也许网络服务器日志已经填满,因为一堆代理创建了太多假用户。那种事。

虽然计划A不一定是被动的,但它是许多站点设置监控系统的方式。


1
投票

最低限度:确保它正在运行:)

但是,其他一些东西会非常有用。例如,CPU负载,RAM使用情况和(在多用户系统中)用户运行的是什么。此外,对于访问网络的应用程序,每个应用程序的网络连接列表。并且(如果您可以访问客户端计算机),能够看到应用程序的“窗口标题”会很酷 - 如果更改并保存,可能每2-3分钟检查一次。此外,应用程序打开的文件列表可能非常有用,但它不是必须的。


1
投票

我认为这很简单 - 监控,以便在出现问题之前及早得到警告。这意味着监视依赖项和应用程序本身。

如果您不打算提供有关您正在监控的应用程序的详细信息,那么提供细节真的很难,所以我会说这是一般规则。


1
投票

至少你想知道系统是健康的。这对于定义您的系统是健康的是主观的。是计算机是否已启动,所需资源是否存在,数据是否流经系统,数据是否正确生成结果等等。

在我的项目中,我们会对大部分内容进行监控,然后进行监控。它真正归结为可用于分析一切正常的最高级别。在我们的例子中,我们需要了解数据输出。如果您只是需要知道这些机器是什么,它可以节省您试图向没有经验的最终用户显示错误。

如果你只是太难看数据结果,还有“现成的”工具可以为你做很多艰苦的工作。当我环顾四周时,我特别喜欢Nagios,但我们需要的东西比它能够轻松显示的要多,所以我编写了自己的监控系统。基本上我们也会关注系统中的“特性”,内存/ CPU峰值等等......


1
投票

感谢大家的投入,我真的在寻找应用程序级别的监控而不是基础设施监控,但要了解这两者是很好的

不同的是:

  • 基础架构监控将是服务器以及MS Exchange Server,Apache,IIS等
  • 应用程序监视将是用户计算机和用于执行其工作的特定程序,和/或服务器以及它们运行的​​数据移动/后端应用程序以保持数据流动

有时很难画线 - 一个过于简单的定义可能是“如果你的团队写了它,它是一个应用程序;如果你买了它,它的基础设施”

我认为在实践中最好监控两者


1
投票

您需要做的是分解应用程序的业务流程,然后让软件在主要业务组件上发出事件。此外,您还需要创建端到端综合事务(例如,模拟最终用户点击网站)。所有这些数据都将被输入监测工具。在过去,我已经为流入Tivoli Monitoring的JMX Adapter的应用程序完成了JMX,然后我完成了实现“假用户”的脚本,然后将结果通过管道传输到Tivoli Monitoring的脚本适配器中。 Tivoli Monitoring获取数据,然后根据原始数据创建应用程序运行状况和性能图表。

© www.soinside.com 2019 - 2024. All rights reserved.