每个运维监控工具,一般要追踪数十万个内部性能指标。学会对哪些事件进行告警以及监控确实需要花费想当长的一段时间。因为,并非所有的指标等级都是一致。因此我们需要摸索出一套简单的方法,便于管理所有指标,而且简单易学。以下为我们总结的 Datadog 的一些实践经验。
监控目标
首先我们应该了解我们为什么你要花费心力实现更好的监控? 以下三点为总结的监控目标:
在客户及老板觉察之前发现问题
了解系统以及应用的运行状况
尽可能降低你的压力水平
指标分类
在了解目标后,应该清楚各个指标的种类。如你的监控工具追踪了哪些指标 ? 常见的指标有:CPU 使用量,内存使用量,数据库或 Web 请求。指标的种类多种多样,但是所有指标都可归入基本的两大类:工作指标以及资源指标。
工作指标
一般来说工作指标有两大类:
工作指标测量系统或应用生产的有价值的事物的量。例如,数据库每秒返回的查询数量,Web 服务器每秒发送的网页数量。因为,数据库的主要功能在于返回查询结果,Web 服务器则在于为网页提供服务。
应用带来的经济效益,比如收入。这种指标可以直观地追踪应用以及基础架构的可用性,便于了解其运行效率,因此更加有用。
资源指标
资源是用于生产价值所消耗的事物。因此,资源指标用于测量完成某项工作、生产某些内容所消耗的事物的量。
你若是问“数据库使用了多少 CPU ?”,这种问题往往无益于判定应用的效用。因为一般的回答是:“ 我有足够的 CPU ”,或者 “ 我的 CPU 使用量已经到达极限了 ”。
对于内存,磁盘,网页带宽等资源的提问也是如此。通常,资源指标会用于容量规划,而非可用性管理。
优化监控方案
了解了工作指标与资源指标之后,我们可以进一步讨论最佳实践方案。
1.将关键指标分为工作或资源指标
审视关键指标,尤其是那些是你真正在意的指标。再将它们归类为工作指标或资源指标。
2.仅为工作指标设置告警
分类完成之后(请务必花时间进行分类,这很重要),你需要确定为哪些指标设置告警。事实上,你应该仅为工作指标设置告警。换言之,你应该为测量系统可用程度的指标设置告警。
不过,给指示应用宕机的首要资源指标设置告警也很有益。比如,磁盘空间是一种资源指标。然而,如果磁盘空间耗尽了,整个应用就无法运转,因此,为这类指标设置告警也很重要。但是,总体而言,为资源指标设置告警的情况非常罕见。
3.仅为可操作的工作指标设置告警
针对上一条最佳实践的一点修正是:仅为可操作的工作指标设置告警。换言之,你应该为可以采取行动的工作指标设置告警。
例如,对于 Web 服务器而已,可操作的工作指标可以是每秒内无错误服务的网页数量。这之所以是可操作的工作指标,是因为如果 Web 服务器服务的网页数量为零,网站肯定不再运行,而是宕机了。这时候,你必须采取行动了。
无法操作的工作指标可以是 Web 服务器每秒服务的 404 页面数量。该指标之所以无法操作,是因为其完全取决于访客的行为。如果他们访问许多不存在的 URL,那么肯定会生成许多 404 页面。这并不是说网站性能不好,而是访客的行为超出了预期。因此,你不应该为不可操作的工作指标设置告警。
4.定期回顾检查指标与告警
第四点,也可能是最难坚持的一点,是定期地回顾并检查指标与告警。你可以一周一次,两周一次,或者一个月一次,但请一定要在繁忙的任务表中划出一些时间,与团队一起进行回顾。
回到目标
现在,让我们将这些最佳实践与前文提到的监控目标结合起来。请注意:将关键指标分类为工作指标或资源指标是一切的前提。
1. 在客户及老板觉察之前发现问题
仅为工作指标设置告警,可以避免一些无用的告警,从而达到更好的监控结果。
2. 尽可能降低你的压力水平
仅为可操作的工作指标设置告警,因为你不打算获得无法控制的告警信息。
3. 了解系统以及应用的运行状况
定期回顾并检查指标与告警,可以对系统的运行状况与性能趋势有更深刻的感知,从而方便性能调优。
通过这些最佳实践,可以增强你的监控策略。国内外有很多优秀的监控工具,如 Zabbix 、Nagios 、Datadog 、阿里云 、监控宝、腾讯云等。此外 OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性。
本文转自 OneAPM 官方博客