我们是一家即将通过互联网将我们的SaaS应用程序部署到最终用户的ISV,目前正在寻找应用程序监控解决scheme。 除了监视常见的操作系统级别的嫌疑人(I / O,磁盘空间,日志,CPU,内存,交换等)外,我们还希望监视,警报和报告内部应用程序事件,条件和计数器(考虑内部服务的队列大小,或者通过自定义API从第三方获得的服务的延迟)。
我们开始看Nagios,Zenoss等,但是发现那些只有低级的东西,目前正在看MOM和ManageEngine。 尽pipe如此,他们远不是一个定制的应用程序监控工具。
所以 – 你有什么build议吗?
几个可能性:
大多数监控系统 – 从Nagios到Zenoss再到HP OpenView – 都可以让你编写定制的显示器,这可能是你想要的。
您可以编写一个更简单的监视器,但通过使用(linux)net-snmpd的自定义function导出监视系统不可知。 这些可以让你通过snmp输出你想要的任何随机数字或string; 所有你需要做的就是编写小脚本从你的应用程序中获取数字。 这可能来自日志文件或应用程序定期写出的状态文件。
也许你的软件即服务应用程序可以输出SNMP信息,这些信息可以被任意数量的工具(Nagios,Munin等)收集。
Sun Java System Messaging Server是通过SNMP提供大量统计信息的应用程序示例。 他们的pipe理指南的SNMP实施部分说:
活动信息集中在当前排队的消息和开放的networking连接(例如排队消息的计数,开放networking连接的源IP地址),而历史信息提供累计总数(例如,处理的总消息,总入站连接)。
StackHub做你所问:“监视,警报和报告内部应用程序事件,条件和计数器”。 它本身就是一个SaaS,所以你不必像Nagios / Zenoss /等那样安装和configuration任何庞大的东西。
该服务目前正处于testing阶段,最初针对的是Java应用程序(例如Log4J / Logback),因此欢迎提供反馈意见。
zabbix仍然有很多怪癖,但对我有好处。
不知道这是否是一个完全适合你以后,但monit可以做你所需要的。
我会发布一个链接,但我是一个新的用户。 所以你只需要谷歌它:(
你应该看看Quest Foglight。 它具有标准的基于服务器的度量标准,同时还包括J2EE,.Net以及所有大型应用程序套件(PeopleSoft,电子商务套件等)的应用程序监控。 一个可能非常适合你的function是Foglight体验监视器。 它捕获有线的HTTP请求(无代理),并在技术堆栈的不同层报告响应时间。 您可以使用它来监控您所依赖的第三方,甚至可以将此作为增值function提供给客户,从而监控SaaS产品的性能。
我使用Nagios监视这些事情,以及磁盘空间和负载平均值等等。 看,关于Nagios的事情是,它只是一个故障pipe理系统,它依靠插件来实际检查任何东西。 正好有一些漂亮的默认插件用于监视SNMPvariables和ping等,但只要你可以编写一个程序来检查某些内容并返回一个OK / warning / critical / unknown指示,你就可以监视任何东西。
'plugin'命名有点傻,因为'plugin API'相当于命令参数,环境variables,退出状态以及在stdout上打印的内容。 我有更多的只是20行ksh脚本的插件。
Nagios非常好。 你也可以编写你自己的插件,并很容易地进行设置。
如果您的应用程序正在使用log4j或类似的东西,请尝试logFaces – 这是监视应用程序特定事件的理想select,尤其是对于分布式应用程序。
Zenoss将允许您重用您拥有的任何Nagios插件,并为应用程序添加WMI和JMX监视。 您也可以通过testing应用程序来将事件通过syslog或xml-rpc和REST直接发送到Zenoss。
我们有一个名为RMS(远程监控系统)的应用程序监控工具,您可能会感兴趣。 RMS可以在几分钟内缩小应用程序问题的根本原因。 它可以发送警报和链接到服务台API来生成票据。 它还可以监视SLA并生成报告。 如果您需要更多信息,请与我们联系。
汉斯
如果你觉得更像一个开发人员而不是系统pipe理员,我build议看看AlertGrid服务。 完成一些应用程序监视任务(超级简单集成)可能会有帮助。 然而,系统监控系统统计信息并没有那么有用(其他工具有更多的插件)。