应用程序运行状况监控系统至少应该为您(开发人员)和/或您的老板(IT 经理)和/或运营(待命)员工做什么?
除了最低要求,它还应该做什么?
监控“基础设施”应用程序(ms-exchange、apache 等)是否足够,或者是否还需要监控单个用户应用程序、网站和数据库?
如果是后者,您需要了解它们的哪些信息?
附录:感谢您的意见,我真的在寻找应用程序级监控而不是基础设施监控,但很高兴了解两者
应用程序运行状况监控系统至少应该为您(开发人员)和/或您的老板(IT 经理)和/或运营(待命)员工做什么?
除了最低要求,它还应该做什么?
监控“基础设施”应用程序(ms-exchange、apache 等)是否足够,或者是否还需要监控单个用户应用程序、网站和数据库?
如果是后者,您需要了解它们的哪些信息?
附录:感谢您的意见,我真的在寻找应用程序级监控而不是基础设施监控,但很高兴了解两者
答案是“视情况而定”。为什么需要监控?您的运营人员有多大?你需要报告吗?应用环境是什么?谁在乎申请是否失败?谁在乎是否发生异常?是否有任何错误可恢复?我可以问这样的问题很长时间。
这是一个开放式问题,但我将从物理测量开始。
1. 我认为托管此站点的所有机器都可以 ping 通吗?
2.所有应该提供内容的机器实际上都在提供一些内容吗?(理想情况下,这将来自外部网络。)
3. 每台机器上的每个预期服务是否正在运行?
3a。这些服务最近有运行吗?
4、每台机器是否有剩余硬盘空间?(别忘了db)
5. 这些机器有备份吗?最后一次是什么时候?
一旦制定了系统的物理监控,就可以解决特定于系统的问题吗?
1. 自动化脚本可以登录吗?花了多长时间?
2. 有多少用户在直播?是否添加了一百万个虚假帐户?
......
这类问题变得更加模糊,并且可能非常特定于系统。当响应物理测量时,它们通常也可以被动地推导出来。硬盘满了,也许是因为一堆代理创建了太多假用户,所以网络服务器日志被填满了。那种事。
虽然 A 计划不一定是被动的,但它是许多站点设置监控系统的方式。
好问题。
前段时间我们一直在寻找一些应用级监控解决方案来满足我们的需求,但没有任何运气。流行的监控解决方案主要用于监控基础设施 - 在我看来 - 它们对于大多数中小型公司的要求来说太复杂了。
我们需要(主要)以下功能:
因为我们没有找到合适的解决方案,所以我们开始编写自己的解决方案。最后,我们以名为AlertGrid的启动和运行服务结束。(您当然可以免费查看。)
它背后的想法是提供一种简单的方法来处理自定义监控场景。集成 API 非常简单(一个函数有两个必需参数)。目前,我们和其他人将其用于:
最低要求:确保它正在运行:)
但是,其他一些东西会非常有用。例如,CPU 负载、RAM 使用率以及(在多用户系统中)哪个用户正在运行什么。此外,对于访问网络的应用程序,每个应用程序的网络连接列表。而且(如果您可以访问客户端计算机)能够看到应用程序的“窗口标题”会很酷 - 如果它更改并保存它,可能每 2-3 分钟检查一次。此外,应用程序打开的文件列表可能非常有用,但这不是必须的。
我认为这相当简单 - 监控,以便在出现问题之前尽早警告您。这意味着监控依赖关系和应用程序本身。
如果您不打算提供有关您正在监视的应用程序的详细信息,那么很难提供细节,所以我会说将其用作一般规则。
至少您想知道系统是否健康。这在定义您的系统是否健康方面是主观的。是否计算机已启动,是否存在所需资源,数据是否正在流经系统,数据是否正确产生结果等等。
在我的项目中,我们对其中的大部分进行监控,然后再进行一些监控。它真的归结为您可以用来分析一切正常的最高级别。在我们的例子中,我们需要知道数据输出。如果您只需要知道这些机器是否正常运行,那么您就无需尝试向没有经验的最终用户展示问题所在。
如果您对数据结果过于努力,也有一些“现成的”工具可以为您完成很多艰苦的工作。当我环顾四周时,我特别喜欢Nagios,但我们需要的不仅仅是它可以轻易展示的东西,所以我编写了自己的监控系统。基本上我们还会观察系统中的“特殊性”、内存/cpu 峰值等......
感谢大家的投入,我真的在寻找应用程序级监控而不是基础设施监控,但很高兴了解两者
区别在于:
有时很难划清界限——过于简单的定义可能是“如果你的团队编写了它,它就是一个应用程序;如果你买了它,它就是基础架构”
我认为在实践中最好同时监控两者
您需要做的是分解应用程序的业务流程,然后让软件在主要业务组件上发出事件。此外,您需要创建端到端合成交易(例如,模拟最终用户点击网站)。所有这些数据都将被输入监控工具。过去,我为流入 Tivoli Monitoring 的 JMX 适配器的应用程序完成了 JMX,然后我完成了实现“假用户”的脚本,然后将结果通过管道输入到 Tivoli Monitoring 的脚本适配器中。Tivoli Monitoring 获取数据,然后根据该原始数据创建应用程序运行状况和性能图表。