完备的监控应覆盖什么?


对于一个互联网公司,要对哪些方面做了监控,才能称得上完备?今天笔者抛砖引玉,给出一个列表,不足之处,欢迎业界同仁补充,共同进步:)


网络监控

终端客户要想访问你的服务,势必要经过一系列网络链路,这是我们的第一个着眼点

网络质量

全国各地,不同的地区,不同的运营商,访问你的网站的质量,比如延迟是多少,是否不通了

公网出口

服务部署在某个IDC,IDC的公网出口是不是拥塞了,是不是断了

专线带宽

服务可能是依赖其他服务的,而被依赖的服务却不在同一个机房,中间通过专线连通,那么专线的质量就需要关注了,典型的比如丢包情况,是否连通,带宽是否到达上限

网络设备

各种交换机、路由器,是不是挂了,是不是丢包了,硬件是否故障了

机器监控

这个大家通常不会忽略,毕竟你的服务是在机器上跑的嘛,简单唠叨一下

机器硬件

比如磁盘是不是只读了,raid是不是故障了,内存是不是故障了,可以使用远程控制卡管理

机器运行态

比如磁盘是不是满了,CPU是不是持续跑满,内存是不是快吃光了,IO持续100%,网卡是不是丢包了,系统进程总数是不是过多了,打开的文件句柄是不是过多了。

机器配置

比如ulimit配置是否合理,一些系统参数比如nf_conntrack_max配置是否合理。

系统进程

比如ntp是否工作正常,系统时间是否偏差太大,sshd进程是否工作正常,crond是否挂了

业务监控

服务本身运行的情况,自然也是要监控的

存活性

进程是否还在,端口是否还在监听,LOG是否不再滚动

异常日志

比如抛了Exception,出现了ERROR、FATAL、ALERT等关键字

健康指标

这个经常容易忽视,需要研发配合,能够反映服务自身健康状况的指标,跟业务自身相关。比如MQ,能够反映MQ健康状况的可能是消息堆积量。

接口监控

服务对外提供的API,其成功率、延迟情况、QPS等等。一些人做的域名监控也可以归到这里。

周边依赖

比如你依赖的其他服务是否健康,比如用到的HTTPS证书是否过期