资讯专栏INFORMATION COLUMN

通过案例学功能 自定义监控功能初探

hizengzeng / 2196人阅读

摘要:通过这个案例给大家讲讲监控宝自定义监控,这是我们产品中藏着的一把瑞士军刀,但由于这个功能是免费的,所以很多用户反而不太了解。创建一个自定义监控。

IT系统千差万别,即便是通用的Java、PHP也会由于版本的差异,配置和接口存在大同而小异,但往往就是这些小差别,会对系统的稳定性和性能产生大影响。市面上的IT监控产品都只能对标准应用的流行版本进行准确监控,对于分支版本或企业自己开发的应用系统则需要大量的定制开发才能实现监控,而云智慧监控宝提供一种简单灵活的监控手段——自定义监控,让你轻松搞定各种应用系统的性能监控。

下面就用监控宝一个客户的案例让大家认识一下自定义监控。

前一段时间,某著名商业企业上线了他们的Tmall系统,云智慧监控宝为其提供了从服务器、应用服务和API接口的监控服务,除此之外,该企业还期望通过交易日志分析了解订单的状态和性能统计,这部分功能并非监控宝产品自带功能,为此云智慧基于监控宝自定义监控功能进行了定制开发,来实现Tmall系统日志分析和监控功能。
监控部署方面比较麻烦,因为Tmall系统是第三方的,非常不愿意我们去监控他们,有很多限制条件,比如不允许日志服务器向外网请求,我们的采集服务只能请求日志服务器,但最终都得到了圆满的解决。

下面就看看我们怎么用自定义监控搞定Tmall日志监控的。

首先,用Python写了一个增量日志分析程序,根据Tmall提供的规则把企业所需要的监控指标数据比如订单总数、失败订单数、退款订单数以及退款失败订单数从第三方的日志文件中读取出来,并写入我们自己的日志中。
然后,在内网采集器中增加了一个自定义监控的插件,来请求这个日志分析程序获得监控指标数据。

最后,在监控宝自定义监控中增加了一个监控项目,选择采集器Python本地获取数据,实现了这个需求。在部署上,内网采集器独立部署在一台能够访问公网的服务器上,日志分析程序部署在第三方的日志集中存储服务器上。
由于在项目开始的时候,没有认真研究客户日志样例文件和规则说明,所以走了一些弯路,所幸很快校正过来,把所有规则三方确认后升级了一版并最终搞定。这里提醒各位做项目的,项目管理控制必要的步骤不能省,债早晚都是要还的。。。
这个项目是典型的先苦后甜,虽然前期掉了不少坑,但后来通过监控宝发现了不少Tmall系统的问题,在客户面前证明了产品的价值,细节涉及隐私,略过不提。
通过这个案例给大家讲讲监控宝自定义监控,这是我们产品中藏着的一把瑞士军刀,但由于这个功能是免费的,所以很多用户反而不太了解。

为什么会提供这个功能呢?

监控宝靠网站监控打开了一片天地,后来增加了服务器和服务监控,并逐渐支持Apache、Nginx等典型Web应用,在这个过程中我们发现,即使提供再多的标准服务也无法覆盖广大用户不同版本、不同类型的应用,还有不少中、高级用户会根据需求自己开发的个性化应用。
对监控来说,简单说就是采集数据、分析结果、给出告警这三个步骤,而客户的各类个性化应用对我们来说最难的一点在于数据采集。监控宝自定义监控的工作原理非常简单,就是将数据采集标准化,我们制定了一个标准格式的数据交换文件。


minEnqueueTime:0.0
expiredCount:0
storePercentUsage:0
dequeueCount:906
memoryUsage:96692
consumerCount:3
memoryPercentUsage:0
averageEnqueueTime:14668.775461866415
maxEnqueueTime:1205901.0
dispatchCount:2090
size:92
producerCount:1
enqueueCount:5567
tempPercentUsage:0

是必须有的,minEnqueueTime、expiredCount等这些都是我们定义的监控指标,冒号之后是对应的指标值,这个文件是通过界面的方式定义。

定义好这个规则之后,剩下的就简单了,让被监控的目标程序或是应用把指标写成这种格式的文件,做成一个可以被http请求到的资源,不断的把指标数据值写进来。之后在自定义监控中创建监控项目,选择这个规则,就可以了。

举例说明:
ActiveMQ 是Apache的开源消息总线,如果用自定义监控如何实现ActiveMQ的监控需求呢?
第一步,整理出ActiveMQ监控的指标要求

第二步,写个程序读取ActiveMQ的指标数据,这里用到了statistics plugin ,在ActiveMQ中配置一下即可。



配置项灰常简单,用java写个进程隔几秒钟取一次指标,代码比较挫,可以无视。

主要是看输出文件位置:"/Users/jason/workspace/tomcat7065/webapps/root/mqkeyindex.html"
在本机装个tomcat,这个位置就是默认的应用目录,mqkeyindex.html就是我们定义的规则文件。

至此,监控指标读取和输出完毕,这部分工作一般是客户自己完成,或是云智慧的工程师来帮客户以项目方式完成,该企业的日志分析程序就是类似这样的。
再后面就是监控宝自定义监控的工作了。
因为tomcat在本机,外网访问不到,所以需要安装一个采集器,选择好自定义监控插件即可。操作过程略过。

非常新鲜,刚刚创建的。

创建一个自定义监控。

规则是提前建好的,指标多创建起来好麻烦的说。

这个是创建页面,这里面的状态页其实就是我之前/Users/jason/workspace/tomcat7065/webapps/root/mqkeyindex.html输出的格式。
这个规则是对照着输出结果创建的,而用采集器解决了外网访问不了的问题。
上面提到的那家咖啡企业是采用了“执行内部文件获取数据”的方式,和这个方式不太一样,不过这是最简单和常用的方式。另外,在规则定义中可以定义图和线的,

最后给大家看下效果吧

自定义监控功能非常强大的,如果数据采集输出环节技术难度不大的话,可以非常快速的搞定一个客户的特殊监控需求,所以很多人都最爱自定义监控功能。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65551.html

相关文章

  • 阿里,B站小伙伴奉献的中高级大数据运维习课程与规划,高薪原来需要掌握这些

    摘要:大数据运维更偏向于大数据生态的大数据应用运维。后面我们会上大数据开发课程,其实大数据开发和大数据运维课程很多跟运维课程是重叠的,只是掌握的着重点不同。因材施教,重点会针对每个小伙伴的情况,基本水平,确立职业规划,基于职业规划定制学习计划。 一.大数据运维相关答疑与概述 1.0 课程与老师介绍...

    renweihub 评论0 收藏0
  • Docker 容器监控系统初探

    摘要:是一个时序数据库,专门用于存储时序相关数据,很适合存储的数据。容器监控数据存储配置和运行是一个开源的分布式时序数据库,使用语言开发。的特色功能作为时序数据库,相比传统数据库它有很多特色功能,比如独有的一些特色函数和连续查询功能。 本文已获得原作者__七把刀__授权。 随着线上服务的全面 docker 化,对 docker 容器的监控就很重要了。SA 的监控系统是物理机的监控,在一个物理...

    aboutU 评论0 收藏0
  • Docker 容器监控系统初探

    摘要:是一个时序数据库,专门用于存储时序相关数据,很适合存储的数据。容器监控数据存储配置和运行是一个开源的分布式时序数据库,使用语言开发。的特色功能作为时序数据库,相比传统数据库它有很多特色功能,比如独有的一些特色函数和连续查询功能。 本文已获得原作者__七把刀__授权。 随着线上服务的全面 docker 化,对 docker 容器的监控就很重要了。SA 的监控系统是物理机的监控,在一个物理...

    cyixlq 评论0 收藏0
  • 利用TICK搭建Docker容器可视化监控中心

    摘要:在我的前文容器可视化监控中心搭建之中我们就实践过容器的可视化监控,在那篇文章中我们是使用了技术栈来完成的。 showImg(https://segmentfault.com/img/remote/1460000015484084); 概述 性能监控是容器服务必不可少的基础设施,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等...

    LiuZh 评论0 收藏0
  • SegmentFault 技术周刊 Vol.35 - WebGL:打开网页看大片

    摘要:在文末,我会附上一个可加载的模型方便学习中文艺术字渲染用原生可以很容易地绘制文字,但是原生提供的文字效果美化功能十分有限。 showImg(https://segmentfault.com/img/bVWYnb?w=900&h=385); WebGL 可以说是 HTML5 技术生态链中最为令人振奋的标准之一,它把 Web 带入了 3D 的时代。 初识 WebGL 先通过几个使用 Web...

    objc94 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<