我们是一家 ISV,即将通过互联网将我们的 SaaS 应用程序部署给我们的最终用户,目前正在寻找应用程序监控解决方案。除了监控常见的操作系统级可疑项(I/O、磁盘空间、日志、CPU、RAM、交换等)之外,我们还希望监控、警告和报告内部应用程序事件、条件和计数器(想想内部服务的队列大小,或者我们通过自定义 API 从第三方获得的服务的延迟)。
我们开始研究 Nagios、Zenoss 等,但发现它们只能做低级的事情,目前正在研究 MOM 和 ManageEngine。不过,它们还远远不能成为定制的应用程序监控工具。
那么 - 您有什么建议吗?
答案1
有几种可能性:
大多数监控系统 - 从 Nagios 到 Zenoss 到 HP OpenView - 都允许您编写自定义监视器,这可能就是您想要的。
您可以编写一个更简单的监视器,但通过使用 (linux) net-snmpd 的自定义功能将其导出,使其更加与监视系统无关。这些允许您通过 snmp 导出您想要的任何随机数字或字符串;您所要做的就是编写小脚本以从您的应用程序中获取数字本身。这可以来自日志文件或您的应用程序定期写出的状态文件或其他任何东西。
答案2
也许您的软件即服务应用程序可以输出 SNMP 信息,这些信息可以被任意数量的工具(Nagios、Munin 等)收集。
Sun Java System Messaging Server 是一个通过 SNMP 提供大量统计数据的应用程序示例。SNMP 实现他们的管理指南部分指出:
活动信息重点关注当前排队的消息和开放的网络连接(例如,排队消息的数量、开放网络连接的源 IP 地址),而历史信息提供累积总数(例如,处理的总消息数、总入站连接数)。
答案3
StackHub 可以满足您的要求:“监控、警告和报告内部应用程序事件、条件和计数器”。它本身就是一个 SaaS,因此您不必安装和配置任何笨重的东西,如 Nagios/Zenoss/等。
该服务目前处于测试阶段,最初针对 Java 应用程序(例如,Log4J/Logback),因此欢迎尽早提供反馈。
答案4
不确定它是否完全符合您的要求,但 monit 可能会满足您的需要。
我会发布一个链接,但我是新用户。所以你只能谷歌一下 :(