美文网首页微服务架构与应用
普罗米修斯监控体系

普罗米修斯监控体系

作者: 深圳用友NC | 来源:发表于2018-07-31 11:44 被阅读13次

    导读:“一入IT深似海,从此惬意是笑谈。”相信每个人都能深深体会到这句话的含义,在你追我赶的互联网时代,从业者身上的担子不可谓不重。各家都在取长补短、吸收营养来壮大自己,仿佛一夜之间最宝贵的资源变成了时间。在日常工作中,慢慢发现做好一件事就可以节约很多时间,收获到立竿见影的效果,那就是——监控。把大家的工作从被动的应急状态解救出来,本文从实际应用出发,以生产实用说话,为大家介绍一套比较前卫的监控体系,哪怕对一个人的工作有启发作用,也就实现了本文的价值。

    进入21世纪后,国内的互联网事业进入快速、稳步发展阶段,日新月异的科技进步催生了一批又一批的新型应用模式,概念与生产使用间的距离也在逐渐缩短。近几年公有云、私有云以及混合云已经普遍走进生产阶段,甚至在潜移默化的影响着人们的生活,催生并促进了IaaS(基础设施及服务)、Paas(平台即服务)、Saas(软件即服务)等技术的不断更替迭代。

    在生产实践中人们发现,技术选型变得越来越宽泛,实现手段变得越来越多。这虽然带来了多样性,也给人一种“乱花渐欲迷人眼”的感觉。随着服务器以及服务规模的扩大,监控体系也面临同样的问题,如何更好的在监控层面为日常营运而服务,如何预防并快速定位问题从而解决问题就显得尤为重要了。

    在以往的生产实践中,人们普遍采用的监控方式如:主动监控、被动监控、旁路监控等。相应出现了Nagios、Cacti、Zabbix等人们耳熟能详的监控工具,以及第三方监控平台。在步入以云、容器化为主体的新型应用模式后,它们各自的优缺点也逐步凸显。为了迎合自己的业务需求,有的公司甚至会从基础开始研发监控系统(如Open-Falcon),监控的功用与魅力可见一斑。

    云平台的整体体量也在不断增加,在开发、测试、灰度、生产等各个环节,监控体系穿插其中,逐步完善并形成了自己特有的监控体系。该体系以普罗米修斯为系统核心,根据生产需要增加并调整模块进行对接,易扩展、低耦合、快速部署等特性决定了它的可应用性,数据可定制、绘图功能强大、可自定义等特性决定了它的生产实用性。

    目前云平台存在众多的公有云、私有云、混合云服务器,且众多服务大多以容器化方式运行。这就给要获取的监控数据带来了要求,决定了监控要站在公司的业务角度考虑,而不是某种手段、某个服务;而对于辅助解决问题,又要细化到服务器、服务、容器甚至是进程,站在服务提供的角度发现、定位、解决问题。

    好的监控体系往往可以一针见血的点出使用者以往的痛点,比如:配置复杂,可定制化低,组件间耦合度高,数据生涩,展示化程度低,通知信息不完善等。监控系统作为一种辅助手段,本身属于锦上添花的存在,不需要花费太多的精力在上面,而忽视了根本以及它存在的意义。

    首先从监控体系整体构成方面了解一下该体系的组成模块,对普罗米修斯监控体系有一个整体的认识。监控体系的建立离不开功能模块的加入,不断增加监控模块、类别、参数,进行过滤、整合达到合理的产出。

    模块化结构分析:

    1.探针服务:灵活的收集服务器、容器、服务的各种运行数据,对自己从属节点进行全方位的数据汇总。

    2.监控主体:以PULL的方式根据服务自身当前负载实时获取监控数据,对各节点的数据进行汇总,再带存储机制并以时序格式处理数据,可以通过独特的PromQL语言对数据进行复杂的运算处理,并绘制成构图。

    3.服务发现:探针节点上线会自动向服务发现中心注册,服务中心通过模块向监控主体进行通知,此时就实现了各个节点的监控上线、下线管理。

    4.数据展示:可以对数据进行文本、绘图、仪表等方式的展示,并支持时间段过滤。

    5.告警通知:对预期进行判别,触发邮件、短信、微信、钉钉等的消息通知,提供详细的问题通知。

    6.外部调用:已经存在的数据或结果可以通过Api或者分享绘图的方式调用,将数据引入到需要的地方。

    “工欲善其事,必先利其器。”有了理论知识和结构逻辑作为“器”,下一步就是付诸于建设,根据实际业务场景、应用运行环境打磨出适合自己的一套服务才是好的监控体系,如果不然,再优秀的监控也只是摆设而已。下面根据云平台在生产中的实际使用经验进行进一步探讨。

    实际生产使用:

    1.自动发现服务负载化:数据的自动发现采用Consul作为服务主体,前端SLB方式引入Consul集群,以SLB作为数据的注册及取用点,可以很好的处理大批量节点的高注册(注销)请求。

    2.主机探针:系统层面的负载参数化,可以及时发现系统运行的异常,在系统层面消除隐患,配合消息推送机制,有问题及时处理。

    3.容器探针:容器层面的负载参数化,了解容器运行的负载情况,探知运行异常,可以配合消息机制进行告警。

    4.服务探针:将Mesos、kubernetes、MySQL、Redis、Jenkins等的运行情况参数化,比如调用、负载、登录等等。

    5.应用探针:定制专属服务探针,获取服务存活信息,端口存活信息,Api调用情况等等。

    6.ICMP探针:对于远端服务器存活,可以使用ping检测进行定期检测,确保服务器的存活。

    7.URL探针:对定制的URL地址群进行监测,可以有效发现404、502等错误码,同时可以检测到HTTPS加密证书的到期日期。

    8.告警通知:以邮件作为工作时的有效通知及事件记录手段,辅以短信、微信告警实现24小时最便捷的消息告知方式。

    这套全范围监控体系是用友云从生产实践中总结而来,比较有普遍适用性,同时也经过了时间的检验,为大家的工作带来了不少便捷,也在危急时刻发挥过重要作用。在实际生产中监控作为一种必要手段,贯穿于开发、运维、营运的整个阶段,根据使用场景的不同、应用种类的变化也许会做相应修改,但是万变不离其宗,只要领略到监控的精髓,也就可以更好的贯穿和服务于工作,也正是因为监控手段的驳杂、监控模块的多样、监控点的各具特色使其形成了自己特有的体系,也就是本文探讨的监控体系。相信,随着技术的不断进步,监控也一定会变得更为全面、智能和人性化。

    相关文章

      网友评论

        本文标题:普罗米修斯监控体系

        本文链接:https://www.haomeiwen.com/subject/vcgcvftx.html