01 Prometheus 之监控基础知识
从技术角度来看,监控(monitoring)是衡量和管理技术系统的工具和流程。但监控远不止于此,监控将系统和应用程序生成的指标转换为对应的业务价值。你的监控系统会将这些指标转换为衡量用户体验的依据,该依据为业务提供反馈,以确保为客户提供了所需的产品。同时该依据还提供了对技术的反馈,指出哪些组件不起作用或者导致服务质量下降。
业务是监控系统的第二个客户。监控系统是为了支持业务,并确保业务持续开展。监控可以提供报告,使企业能够进行良好的产品和技术投资,还有助于企业衡量技术带来的价值。
监控是管理基础设施和业务的核心工具。监控也是必需的,应该和应用程序一起构建和部署。没有监控,你将无法了解你的系统环境、进行诊断故障、制定容量计划,也无法向组织提供系统的性能、成本和状态等信息。
服务层级
需要找准服务监控的内容——例如,监控业务事务的内容或速率,而不是监控它运行的 Web 服务器的运行时间。你会获得两种好处:如果服务因配置错误、程序 bug 或受损而导致内容不正确,你会及时查看到;而如果内容因底层 Web 服务而出现错误,你同样也会知道。
始终记住存储足够多的历史数据可以有效地帮助识别性能的问题和趋势。在很多情况下,这可能只需要数天或数周的数据——但如果丢弃了这些数据,则可能无法识别出趋势或发现重复出现的问题。
一个良好的监控系统应该能提供以下内容:
全局视角,从最高层(业务)依次展开。
协助故障诊断。
作为基础设施、应用程序开发和业务人员的信息源。
同时它也应该是:
内置于应用程序设计、开发和部署的生命周期中。
尽可能自动化,并提供自服务。
监控应用程序主要有两种方法:探针(probing)和内省(introspection)。探针监控是在应用程序的外部,它查询应用程序的外部特征:监听端口是否有响应并返回正确的数据或状态码。
内省监控主要查看应用程序内部的内容。应用程序经过检测,并返回其状态、内部组件,或者事务和事件性能的度量。这些数据可准确显示应用程序的运行方式,而不仅是其可用性或其表面行为。内省监控可以直接将事件、日志和指标发送到监控工具,也可以将信息发送给状态或健康检查接口,然后由监控工具收集。
基于拉取的监控方式会提取或检查远程应用程序——例如包含指标的端点,或是探针监控中使用 ICMP 进行的检查。在基于推送的监控方式中,应用程序发送事件给监控系统接收。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/283bae16974e999274c0009e4】。文章转载请联系作者。
评论