IT系统千差万别,即便是通用的Java、PHP也会由于版本的差异,配置和接口存在大同而小异,但往往就是这些小差别,会对系统的稳定性和性能产生大影响。市面上的IT监控产品都只能对标准应用的流行版本进行准确监控,对于分支版本或企业自己开发的应用系统则需要大量的定制开发才能实现监控,而云智慧监控宝提供一种简单灵活的监控手段——自定义监控,让你轻松搞定各种应用系统的性能监控。
下面就用监控宝一个客户的案例让大家认识一下自定义监控。
前一段时间,某著名商业企业上线了他们的Tmall系统,云智慧监控宝为其提供了从服务器、应用服务和API接口的监控服务,除此之外,该企业还期望通过交易日志分析了解订单的状态和性能统计,这部分功能并非监控宝产品自带功能,为此云智慧基于监控宝自定义监控功能进行了定制开发,来实现Tmall系统日志分析和监控功能。
监控部署方面比较麻烦,因为Tmall系统是第三方的,非常不愿意我们去监控他们,有很多限制条件,比如不允许日志服务器向外网请求,我们的采集服务只能请求日志服务器,但最终都得到了圆满的解决。
下面就看看我们怎么用自定义监控搞定Tmall日志监控的。
首先,用Python写了一个增量日志分析程序,根据Tmall提供的规则把企业所需要的监控指标数据比如订单总数、失败订单数、退款订单数以及退款失败订单数从第三方的日志文件中读取出来,并写入我们自己的日志中。
然后,在内网采集器中增加了一个自定义监控的插件,来请求这个日志分析程序获得监控指标数据。
最后,在监控宝自定义监控中增加了一个监控项目,选择采集器Python本地获取数据,实现了这个需求。在部署上,内网采集器独立部署在一台能够访问公网的服务器上,日志分析程序部署在第三方的日志集中存储服务器上。
由于在项目开始的时候,没有认真研究客户日志样例文件和规则说明,所以走了一些弯路,所幸很快校正过来,把所有规则三方确认后升级了一版并最终搞定。这里提醒各位做项目的,项目管理控制必要的步骤不能省,债早晚都是要还的。。。
这个项目是典型的先苦后甜,虽然前期掉了不少坑,但后来通过监控宝发现了不少Tmall系统的问题,在客户面前证明了产品的价值,细节涉及隐私,略过不提。
通过这个案例给大家讲讲监控宝自定义监控,这是我们产品中藏着的一把瑞士军刀,但由于这个功能是免费的,所以很多用户反而不太了解。
那么监控宝为什么会提供这个功能呢?
监控宝靠网站监控打开了一片天地,后来增加了服务器和服务监控,并逐渐支持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监控的指标要求
第二步,写个程序读取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输出的格式。
这个规则是对照着输出结果创建的,而用采集器解决了外网访问不了的问题。
上面提到的那家咖啡企业是采用了“执行内部文件获取数据”的方式,和这个方式不太一样,不过这是最简单和常用的方式。另外,在规则定义中可以定义图和线的,
最后给大家看下效果吧。
自定义监控功能非常强大的,如果数据采集输出环节技术难度不大的话,可以非常快速的搞定一个客户的特殊监控需求,所以很多老用户都最爱自定义监控功能。接下来我们会为您介绍监控宝自定义监控的详细用法,敬请期待。