我一直在寻找关于如何监控和警告生产应用程序一段时间的讨论,但没有找到任何压倒性的信息。
我正在将应用程序的庞然大物转换为更小的微服务,并认为现在是实现对此应用程序的更好监视的好时机。有哪些方法,最好不使用付费应用程序,来监控整个应用程序和个人微服务的健康状况?
我考虑过的一些可能性 - 构建一个定期检查或接收心跳的小应用程序 - 在openstack上使用kabana设置logstash,以监控服务吐出的各种日志。
Aaaannnddd,这就是我得到的一切。
答案 0 :(得分:4)
我们正在运行一个相当大的环境(数百台服务器),这是基于微服务/基于docker,多层,高可用性和完全弹性。
在监控和警报方面,我们使用了两种不同的工具:
Nagios 用于可用性监控 - 如果服务中断,缺少资源或遭受任何阻止其运行的其他问题,它基本上会向我们发送电子邮件
ELK - 我们使用它来查找问题的根本原因,并在实际影响应用程序/业务之前提醒问题和趋势。
因此,当存在重大问题时,Nagios会发出警报,我们将跳转到日志分析控制台以尝试查找问题。在某些情况下,ELK会在问题开始建立之前发出警报,然后才能在Nagios上看到它。这样我们就可以防止问题恶化。您可以在此处阅读有关在AWS上设置自己的ELK设置的更多信息 - http://logz.io/blog/deploy-elk-production/
显然有许多商业工具可用于监控,警报和日志分析,但由于您正在寻找免费/开源工具,我建议使用这些工具。
**作为免责声明,我是Logz.io的首席执行官和联合创始人,其中包括提供Enterprise-ELK作为服务
答案 1 :(得分:2)
监控有两个要素:
可用性 - 它会起作用吗? 性能 - 它是否正常工作
可用性很简单,有数百种工具可以进行综合交易。你可以使用一项服务(我可以提供特定的生活,但有很多从pingdom到24x7的站点,到各种其他点解决方案)
如果您想了解性能,请查看APM技术。其中包括更简单的跟踪最终用户和组件级别性能的跟踪产品,以及实际将整个事务路径拼接在一起的更复杂的工具,包括浏览器数据。
Gartner对这两个市场进行了研究(我在离开之前写了很多)。我在AppDynamics公司工作,该公司在单一产品中完成上述所有工作,包括应用程序可用性和性能(移动或Web)。我们提供SaaS解决方案,您也可以在内部安装。最后,我们还将数据拉到一起,包括日志到后端。
您可以构建可用性监视和日志收集,您还可以收集客户端数据和您发出的其他遥测数据,但是没有一个好的开源APM工具可用于真正的事务跟踪技术。还要花多少时间来管理ELK,opentsdb,graphite,statsd,collectd,Nagios等等来完成这项工作......
答案 2 :(得分:0)
有多种方法可以监控您的生产服务器,您可以使用一些像Nagios这样的免费有限服务器监视器,这种监视器很难配置而且工作起来也不那么简单。或者你可以看看这个市场上的一些玩家,比如Stackify,LogicMonitor或其他几个。如果您需要其他工具,如代码级别监控,那么您需要查看提供APM(应用程序性能管理)的供应商,例如Stackify,New Relic,AppDynamics您将发现巨大的价格差异和功能,因此这真的是关于你的要求。