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

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

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

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

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

首先,用Python写了一个增量日志分析程序,根据Tmall提供的规则把企业所须要的监控指标数据好比订单总数、失败订单数、退款订单数以及退款失败订单数从第三方的日志文件中读取出来,并写入咱们本身的日志中。
而后,在内网采集器中增长了一个自定义监控的插件,来请求这个日志分析程序得到监控指标数据。
图片描述服务器

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

为何会提供这个功能呢?webapp

监控宝靠网站监控打开了一片天地,后来增长了服务器和服务监控,并逐渐支持Apache、Nginx等典型Web应用,在这个过程当中咱们发现,即便提供再多的标准服务也没法覆盖广大用户不一样版本、不一样类型的应用,还有很多中、高级用户会根据需求本身开发的个性化应用。
对监控来讲,简单说就是采集数据、分析结果、给出告警这三个步骤,而客户的各种个性化应用对咱们来讲最难的一点在于数据采集。监控宝自定义监控的工做原理很是简单,就是将数据采集标准化,咱们制定了一个标准格式的数据交换文件。
<pre>
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
</pre>
<pre></pre>是必须有的,minEnqueueTime、expiredCount等这些都是咱们定义的监控指标,冒号以后是对应的指标值,这个文件是经过界面的方式定义。
图片描述性能

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

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

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

<statisticsBrokerPlugin/>

</plugins>
</broker>
配置项灰常简单,用java写个进程隔几秒钟取一次指标,代码比较挫,能够无视。
图片描述

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

至此,监控指标读取和输出完毕,这部分工做通常是客户本身完成,或是云智慧的工程师来帮客户以项目方式完成,该企业的日志分析程序就是相似这样的。
再后面就是监控宝自定义监控的工做了。
由于tomcat在本机,外网访问不到,因此须要安装一个采集器,选择好自定义监控插件便可。操做过程略过。
图片描述

很是新鲜,刚刚建立的。
图片描述

建立一个自定义监控。

规则是提早建好的,指标多建立起来好麻烦的说。
图片描述

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

最后给你们看下效果吧
图片描述

自定义监控功能很是强大的,若是数据采集输出环节技术难度不大的话,能够很是快速的搞定一个客户的特殊监控需求,因此不少人都最爱自定义监控功能。

相关文章
相关标签/搜索