细心的读者可能会发现,上一篇《运维的价值和目标拆解》中有个脑图,其中监控完备这部分是没有展开的。那么对于一个互联网公司,要对哪些方面做了监控,才能称得上完备?今天笔者抛砖引玉,给出一个列表,不足之处,欢迎业界同仁补充,共同进步:)
网络监控
终端客户要想访问你的服务,势必要经过一系列网络链路,这是我们的第一个着眼点
网络质量
全国各地,不同的地区,不同的运营商,访问你的网站的质量,比如延迟是多少,是否不通了
公网出口
服务部署在某个IDC,IDC的公网出口是不是拥塞了,是不是断了
专线带宽
服务可能是依赖其他服务的,而被依赖的服务却不在同一个机房,中间通过专线连通,那么专线的质量就需要关注了,典型的比如丢包情况,是否连通,带宽是否到达上限
网络设备
各种交换机、路由器,是不是挂了,是不是丢包了,硬件是否故障了
机器监控
这个大家通常不会忽略,毕竟你的服务是在机器上跑的嘛,简单唠叨一下
机器硬件
比如磁盘是不是只读了,raid是不是故障了,内存是不是故障了
机器运行态
比如磁盘是不是满了,CPU是不是持续跑满,内存是不是快吃光了,IO持续100%,网卡是不是丢包了,系统进程总数是不是过多了,打开的文件句柄是不是过多了。
机器配置
比如ulimit配置是否合理,一些系统参数比如nf_conntrack_max配置是否合理。
系统进程
比如ntp是否工作正常,系统时间是否偏差太大,sshd进程是否工作正常,crond是否挂了
业务监控
服务本身运行的情况,自然也是要监控的
存活性
进程是否还在,端口是否还在监听,LOG是否不再滚动
异常日志
比如抛了Exception,出现了ERROR、FATAL、ALERT等关键字
健康指标
这个经常容易忽视,需要研发配合,能够反映服务自身健康状况的指标,跟业务自身相关。比如MQ,能够反映MQ健康状况的可能是消息堆积量。
接口监控
服务对外提供的API,其成功率、延迟情况、QPS等等。一些人做的域名监控也可以归到这里。
周边依赖
比如你依赖的其他服务是否健康,比如用到的HTTPS证书是否过期