zoukankan      html  css  js  c++  java
  • 惊艳二重奏!专家这样用开源软件建立监控体系

    关注“数据和云”,精彩不容错过

    640?wx_fmt=jpeg

    昌盛


    中国人寿上海数据中心工程师。2009 年加入中国人寿,先后负责多个重点应用系统项目的上线、推广、运维工作。2015 年起主导公司自主应用监控系统“全球鹰”监控项目,填补了公司应用监控及业务实时展现的空白。在保险公司监控体系建设、智能预警及相关创新应用方面积累了一定的经验。现致力于智能监控、区块链等方面的研究。



    提起监控,相信大家都不陌生。从马路上的监控探头、手机地图的实时路况到特斯拉的自动驾驶传感器,监控无处不在。设想有一天,路上的监控摄像头都消失了,你还放心让孩子一个人过马路吗?


    IT 运维领域也是一样,为保证系统的正常运行,便于运维人员及时了解当前状态,必须建设一套完整的监控体系。假设 IT 运维没有监控,必然导致事故频发(CPU/内存使用率、进程状态无从知晓)、debug 困难(无法定位问题原因)、产品推广缓慢(用户指标、实时业务无法知晓)。到头来,怎么死的都不知道!


    笔者就职于中国人寿数据中心,负责智能监控系统建设,在长期的工作中对监控体系建设有一些心得体会,愿与大家分享。


    一、监控体系的金字塔结构

    我们先来谈谈 IT 运维的监控结构。这里说的 IT 运维监控,是在机房基础建设之上的,不包括机房的风、水、电等基础建设的监控。IT 运维监控主要分为三大领域:基础环境监控、安全监控、应用监控。


    基础环境监控指针对数据中心所有运行的服务器、数据库、存储、网络设施的运行状态的监控,如 CPU/内存/磁盘空间使用率、网络延迟、带宽占用、数据库死锁、磁盘 IOPS 等,可理解为 IaaS 层的监控;安全监控包括对内网用户访问的审计和外部攻击的监控等。


    对于金融企业而言,信息安全永远是最重要的话题之一,所以要单独把安全监控列出来,作为单独的一个领域;应用监控是在基础和安全监控之上的领域,侧重应用系统的运行指标,如访问量、交易时长、交易占比、业务指标等,可理解为 PaaS 或 SaaS 层的监控。


    尤其是业务指标,每个系统的功能不一样,有业务系统、有客户服务系统、有办公系统,关注的业务指标也不一而足。因此,除了些共性的指标,针对每一个应用系统设计不同的监控指标,也是一件庞大而复杂的工作。


    基础环境监控、安全监控、应用监控室最主要的三大领域,撑起这些领域的,是广泛部署的监控探针。就像汽车的传感器,道路的摄像头一样,探针作为监控系统的末梢,接入大量的被采集服务器,肩负起了获取最原始监控数据的重任。再好的监控算法、再牛X的实时计算平台,若原始数据都无法准确、实时获取,都是白费。很多人问笔者如何衡量一套监控系统的好坏,笔者的回答是,先看探针!


    640?wx_fmt=jpeg

    图一、监控系统的金字塔体系


    二、智能预警——金字塔顶的明珠

    探针、三大监控领域(基础环境、安全、应用)共同组成了中国人寿的IT监控金字塔体系,不过我们不能忘了,在塔的顶端,还有一个领域,这就是需要着重强调的智能预警。前文提到的监控,均是在系统发生故障后或指标达到预设的阈值后才发出告警,阈值是事先固定的,例如 java 进程 down,CPU 使用率超过 85% 等,是一个固定的值,不会随着系统及时间的变化而变化。


    固定值会有一个问题:假如我们设定 CPU 使用率超过 85% 就告警,那么请问系统在凌晨没什么人使用的时候,CPU 使用率超过了 50%,系统是正常还是异常的?按照固定阈值算法,CPU 使用率未超过 85%,系统正常,不触发告警。但是用常识想一想,业务闲时系统的 CPU 使用率也超过 50%,明显不正常啊!


    这个问题怎么破?有人会说,把告警阈值动态调整,闲时设低一点,忙时设高一点。这个想法不错,但是会有两个问题:1、怎么识别闲时和忙时?2、每个指标都动态调整的话,自定义的量太大。所以,智能预警就非常重要。简单地说,所谓智能预警,就是根据该指标历史数据,动态调整当前的告警阈值,做到早发现、早追踪、早处理。


    智能预警引入了时间的维度,利用大数据和实时计算技术,将之前几周甚至几个月的指标进行聚合计算,得出当前时间的动态告警阈值,并根据时间的变化而不断调整。如果说监控是看现在,那么智能预警就是观过去,测未来。别小看智能预警,中国人寿自主开发的智能预警系统“响尾蛇”,在2016年成功预测了12起潜在的故障,避免了严重的生产事故。


    640?wx_fmt=jpeg

    图二、中国人寿预警系统——“响尾蛇”智能预警系统


    三、监控的平台化思路

    监控系统是一个统一的平台,其输入为各种原始监控数据和配置信息,输出为各类业务和告警信息,监控系统负责将输入数据经过处理和计算,输出需要的信息。监控系统平台化架构如下图所示:


    640?wx_fmt=jpeg

    图三、监控系统的平台化思路


    其中输入的监控数据可通过本地、远程或手工录入的方式获取,配置信息(服务器类别、用途、通知人、联系方式等)从 CMDB 获取;输出的信息除发送至短信、邮件系统外,也可以通过 REST API 供第三方系统调用,或对接自动化运维平台。


    平台化架构的优势在于开放。除了监控系统配套的探针传来的数据,也可以通过 API接收合规的第三方的数据,大大拓展了监控平台的业务场景。


    将将将将~

    二重奏来啦

    本周星级推荐,名额不多哟

    本期推送

    640?wx_fmt=png640?wx_fmt=png

    本周四 20:00--21:00 由恩墨学院 OCM 明星讲师吕星昊,手把手带你入门 12c OCM 直考,从实操细节详细讲解每个知识点,干货满满的线上讲解专题课,不容错过!现在转载本条内容到朋友圈保留 3小时 以上,扫码报名活动,加入资料发放群,更有价值千元的教学资料免费领取。



    四、中国人寿的监控选型

    市场上的监控产品种类繁多,收费的有,开源的也有。中国人寿根据自身特点,结合长期的运维经验,走出了最适合自身的一条监控选型道路。


    基础环境监控方面,我们选用了 zabbix。众所周知,在开源的服务器和网络监控产品中,zabbix 是较为突出的一个。它具有自主发现服务器、分布式监控、可视化配置等功能。同时 zabbix 社区会员众多,一般的问题都可以直接解决。


    同时,我们针对 zabbix 进行了二次开发,增加了诸如统一告警页面、对接 cmdb、对接云助理(一款内部办公软件)等功能。目前 zabbix 已接入近万台服务器,为中国人寿基础环境稳定运行提供监控保障。


    安全监控方面,我们采用了 ELK 技术栈对大量的安全设备日志进行统一采集和管理。ELK 是 ElasticSearch、Logstash、Kibana 三款开源系统的统称,其一般作为套件统一使用,提供日志检索服务。作为国内市值最大的保险集团,我们每天都会受到大量的外部网络攻击,部署的安全设备每天会生成大量的防护日志。


    因为品牌不同,日志格式不一致,监控界面也不尽相同。因此,我们以 ELK 为核心,将分布在各品牌安全设备中的日志统一收集,统一展现,统一管理,提高了公司整体的安全防护能力。


    640?wx_fmt=jpeg

    图四、中国人寿安全监控——“大黄蜂”安全监控


    应用监控方面,针对不同的业务场景,我们选用了两套不同的方案。对于运维人员,我们采用了和安全监控相同的ELK方案,并在此基础上增加了 Filebeat 作为 agent,采集应用系统的 access log 和 server log,并根据统一模板定制展示。ElasticSearch 强大的实时搜索能力可在毫秒内搜索上亿的业务日志信息,为告警和展现提供强有力的引擎支撑。同时,我们也自开发了远程采集接口,可以做到无 agent 监控,减少对被管机的压力。


    640?wx_fmt=jpeg

    图五、中国人寿应用监控——“全球鹰”应用监控(应用监控界面)


    针对业务管理人员,我们自开发了业务监控系统,展现渠道保费、区域分布、用户数量、访问量等信息,便于管理层实时决策;同时大屏监控系统在每年开门红期间(保险业的“双十一”)提供强大的业务决策支撑。


    640?wx_fmt=jpeg

    图六、中国人寿应用监控——“全球鹰”应用监控(业务监控界面)


    五、结语


    监控的目的是更早、更准确地预测及发现系统故障,为运维人员争取恢复时间。同时针对保险行业,监控系统也被赋予了安全监测、实时业务展现和智能预警等功能。不论是开源还是商业产品,在引入前都必须针对保险行业的特殊性进行本地化改造,打破单监控产品的壁垒,形成统一的体系。


    转载自:高可用架构 。

    投稿:有投稿意向技术人请在公众号对话框留言。

    转载:意向文章下方留言。

    更多精彩请关注 “数据和云” 公众号


    资源下载

    关注公众号:数据和云(OraNews)回复关键字获取

    2018DTCC , 数据库大会PPT

    2017DTC,2017 DTC 大会 PPT

    DBALIFE ,“DBA 的一天”海报

    DBA04 ,DBA 手记4 电子书

    122ARCH ,Oracle 12.2体系结构图

    2017OOW ,Oracle OpenWorld 资料

    PRELECTION ,大讲堂讲师课程资料

    近期文章

    仅仅使用AWR做报告? 性能优化还未入门

    实战课堂:一则CPU 100%的故障分析

    杨廷琨:如何编写高效SQL(含PPT)

    一份高达555页的技术PPT会是什么样子?

    大象起舞:用PostgreSQL解海盗分金问题

    ProxySQL!像C罗一样的强大

    高手过招:用SQL解决环环相扣刑侦推理问题

    640?wx_fmt=png

  • 相关阅读:
    c# EPPlus读取Excel里面的时间字段时,1900-01-01转成了1899-12-31
    c# MongoDB分页辅助类,支持多条件查询
    c#比较器辅助类
    mysql创建存储过程动态SQL语句
    MySQL数据库之DML(数据操作语言)
    MySQL数据库之DDL(数据定义语言)
    MySQL数据库的基本语法
    MySQL入门基础知识
    scala入门基础学习
    推荐算法杂点
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312302.html
Copyright © 2011-2022 走看看