为什么监控¶
监控一个系统有多个原因,包括如下几项:
趋势分析
数据库当前的数据量,以及增长速度,又比如日活用户的增长数量;
跨时间范围的比较,或是找出各组之间的区别
使用apache 与 nginx 作web服务器,哪个速度更快?增加node数量,memcache的缓存命中率是否增加,网站是否比上周的访问速度加快?
警报
某项服务出现了故障,需要有人立刻修复;或者某项服务已经达到警告阈值,马上会出现故障,需要人为介入排查。
监控可视化
监控可视化可以直观的回答一些服务的基本问题,经常会包括四个黄金指标(后面会深入讲解,这是监控基础,跟你使用什么监控无关)
临时行增长分析
请求延迟增加,图片加载速度过慢,有没有其他类似的现象发生?
系统监控不仅仅是监控与警报,还可以给业务分析提供原始数据和分析安全入侵的场景也有一定作用,比如当前业务的用户增量幅度以及入侵时候的access log的分析等;
监控与告警可以给让一个系统在发生故障时,主动通知我们,或者告诉我们即将发生什么。当系统无法自动修复【自愈】的时候,需要人为介入来检查这个警报的源头与原因,用以决定故障的真实性,采取有效措施,解除故障。
对于紧急警报过于频繁,导致无效信息过多,从而怀疑警报的有效性甚至可能会忽略掉警报,忽略掉了真实的故障。同时,在分析与修复过程中,因无效信息过多,导致排查时间增加,修复变慢,故障时间延长。
由此可以看出,构建一个高效的警报系统是多么重要,而高效的警报系统提供的信息是足够的有效信息,用以降低误报率与提高效率。