?

运维监控的终极秘籍,盘它!

一般来说,白盒与黑盒分别从内部和外部来监控系统的运行状况,例如机器存活、CPU内存使用率、业务日志、JMX等监控都属于白盒监控,而外部端口探活、HTTP探测以及端到端功能监控等则属于黑盒监控的范畴。

下面将主要从白盒监控的采集入手,解答上面关于新系统如何添加监控的问题。

运维监控的终极秘籍,盘它!

图 1 黑盒与白盒监控

监控指标的采集

配置监控时,我们首要面对的是监控数据如何采集的问题。一般我们可以把监控指标分为两类:基础监控和业务监控。

基础监控

包括CPU、内存、磁盘、端口和进程等机器、网络的操作系统级别的信息。通常情况下,成熟的监控系统(例如开源的Prometheus、Zabbix等)均会提供基础监控项的采集能力,这里不做过多介绍。但需要注意的一点,机器级别的基础监控指标一般并不能代表服务的真实运行状况,例如单台实例的故障对一个设计合理的分布式系统来说并不会带来严重后果。所以只有结合业务相关监控指标,基础监控指标才有意义。

业务监控

业务监控指标由业务系统内部的服务产生,一般能够真实反应业务运行状态。设计合理的系统一般都会提供相关监控指标供监控系统采集。监控数据的采集方法一般可以分为以下几大类:

日志:日志可以包含服务运行的方方面面,是重要的监控数据来源。例如,通过Nginx access日志可以统计出错误(5xx)、延迟(响应时间)和流量,结合已知的容量上限就可以计算出饱和度。一般除监控系统提供的日志采集插件外,如Rsyslog、Logstash、Filebeat、Flume等都是比较优秀的日志采集软件

JMX:多数Java开发的服务均可由JMX接口输出监控指标。不少监控系统也有集成JMX采集插件,除此之外我们也可通过jmxtrans、jmxcmd工具进行采集

REST:提供REST API来进行监控数据的采集,如Hadoop、ElasticSearch

OpenMetrics:得益于Prometheus的流行,作为Prometheus的监控数据采集方案,OpenMetrics可能很快会成为未来监控的业界标准。目前绝大部分热门开源服务均有官方或非官方的exporter可供使用

命令行:一些服务提供本地的命令来输出监控指标

主动上报:对于采用PUSH模型的监控系统来说,服务可以采取主动上报的方式把监控指标push到监控系统,如Java服务可使用Metrics接口自定义sink输出。另外,运维也可以使用自定义的监控插件来完成监控的采集

埋点:埋点是侵入式的监控数据采集方式,其优点是其可以更灵活地为我们提供业务内部的监控指标,当然缺点也很明显:需要在代码层面动手脚(常常需要研发支持,成本较高)

其它方式:以上未涵盖的监控指标采集方式,例如Zookeeper的四字命令,MySQL的show status命令

以上列出了几种常见的监控指标采集方法,在实际工作,如果没有现成的监控采集插件,则需要我们自行开发采集脚本。

四个黄金指标

运维监控的终极秘籍,盘它!

图 2 四个黄金指标

无论业务系统如何复杂,监控指标如何眼花缭乱,但万变不离其宗,监控的目的无非是为了解服务运行状况、发现服务故障和帮助定位故障原因。为了达成这个目的,Google SRE总结的监控四个黄金指标对我们添加监控具有非常重要的指导意义。图 2给出四个黄金指标所包含的主要监控指标,下面我们就这四个黄金指标分别展开说明,并给出一些监控项的采集实例。

错误:错误是指当前系统发生的错误请求

和错误率

说明:

错误是需要在添加监控时首要关注的指标。在添加错误相关监控时,我们应该关注以下几个方面:

基础监控:宕机、磁盘(坏盘或文件系统错误)、进程或端口挂掉、网络丢包等故障

业务监控:

核心功能处理错误,每种系统都有特定的核心功能,比如HDFS的文件块读写、Zookeeper对Key的读写和修改操作

基础功能单元丢失或异常,这里的基础功能单元是指一个系统功能上的基本单位,例如HDFS的Block、Kafka的Message,这种基础数据的丢失一般都会对业务功能造成直接的影响

Master故障,对于中心化的分布式系统来说,Master的健康状况都是重中之重。例如HDFS的NameNode、Zookeeper的Leader,ElasticSearch的MasterNode

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 微软AI面试题有多难?这里有一份样卷

      究竟什么样的AI人才能被微软这样的巨头聘用呢?今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答......

    06-25????来源:澎湃新闻网

    分享
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20????来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27????来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05????来源:今日头条

    分享
  • 现代编程语言Swift、Kotlin等十大有趣功能

      最近学习了一些现代编程语言,比如Reason,Swift,Kotlin和Dart。这些编程语言提供了许多新功能,本文主要分享了我认......

    04-29????来源:祁东新闻网

    分享
  • 领域场景分析的6W模型

      组成场景的要素常常被称之为6W模型,即描写场景的过程必须包含Who,What,Why,Where,When与hoW这六个要素。......

    04-30????来源:砍柴网

    分享
  • 开源应用服务器WildFly 12发新季度交付模式

      WildFly 12 Final版本现在已经可以下载了,WildFly是一款灵活的开源应用服务器,支持开发人员构建轻量级应用程序。支持......

    05-10????来源:青岛新闻网

    分享
  • 基于Spring Cloud的微服务落地

      微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,......

    06-04????来源:广西新闻网

    分享
  • 为什么阿里工程师纷纷在内网晒代码?

      前阵子,在阿里一个小黑屋里,5名对代码有着极致追求的工程师参与阿里代码领域最高荣誉“多隆奖”的最终角逐。......

    06-08????来源:四川新闻网

    分享
  • 超级大汇总!200多个最好的机器学习、

      我把这篇文章分为了四个部分:机器学习,自然语言处理,python和数学。在每个部分中我都列举了一些主题,但是因......

    09-25????来源:洛阳新闻网

    分享
返回列表
Ctrl+D?将本页面保存为书签,全面了解最新资讯,方便快捷。