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

news/2024/7/1 12:32:19

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输出的格式。
这个规则是对照着输出结果创建的,而用采集器解决了外网访问不了的问题。
上面提到的那家咖啡企业是采用了“执行内部文件获取数据”的方式,和这个方式不太一样,不过这是最简单和常用的方式。另外,在规则定义中可以定义图和线的,
图片描述

最后给大家看下效果吧
图片描述

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


http://lihuaxi.xjx100.cn/news/285839.html

相关文章

容器云开发必备知识

如今&#xff0c;「即服务 」的时代已经到来&#xff0c;将能力服务化&#xff0c;万物皆可具备基础设施的特征。在IT界更是如此&#xff0c;譬如&#xff0c;基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)等等。容器即服务(CaaS)无疑是这波浪潮中的又一位重量级参…

使用C++基于Socket编程实现文件下载(改进-封装成类)

使用&#xff1a; &#xff08;1&#xff09;首先运行服务端&#xff0c;待服务端运行起来&#xff1b; &#xff08;2&#xff09;最后运行客户端&#xff0c;输入要传输文件到哪个目标机器的IP地址&#xff1b; &#xff08;3&#xff09;输入传输文件的路径及文件&#xff0…

北大高材生割美国韭菜被FBI通缉?本人回应予以否认

一位国内私募公司创始人疑似因策划操纵股票期货合约&#xff0c;被美国司法部起诉。11月7日&#xff0c;美国司法部和商品期货交易委员会&#xff08;CFTC&#xff09;发布通告称&#xff0c;高频交易公司Tower Research Capital同意签署了一项延期起诉协议&#xff08;DPA&…

Codeforces Round #648 (Div. 2)题解 A-D

文章目录A - Matrix GameB - Trouble SortC - Rotation MatchingD - Solve The MazeA - Matrix Game 题解&#xff1a;其实这个题细细一想&#xff0c;剩下可以化1的位置的数量就是整行不包含1的行数或整列不包含1的列数的两者最小值&#xff0c;最后在判断一下奇偶即可。 /*K…

分类讨论 ---- 2021 icpc 沈阳 L Linear Fractional Transformation (思维题)

题目链接 题目大意 给你一个线性变换函数f(z)azbczdf(z)\frac{azb}{czd}f(z)czdazb​,现在把取值范围扩展到复数域。给你3个等式 f(z1)w1f(z_1)w_1f(z1​)w1​ f(z2)w2f(z_2)w_2f(z2​)w2​ f(z3)w3f(z_3)w_3f(z3​)w3​ 问你f(z0)f(z_0)f(z0​)是多少&#xff1f; 解题思路&a…

用Python做一个翻译软件

来源 | Ahab杂货铺&#xff08;ID&#xff1a;PythonLearningCamp&#xff09;前两天吃了平哥的一波狗粮&#xff0c;他给女朋友写了一个翻译软件&#xff0c;自己真真切切的感受到了程序员的浪漫。在学习requests请求的时候做过类似的Demo&#xff0c;给百度翻译发送一个post请…

[分享]iOS开发-UI篇:CAlayer层的属性

iOS开发UI篇—CAlayer层的属性 一、position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性&#xff1a;position和anchorPoint property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) property CGPoint anchorPoint; 称为“定位点”、…

云服务新手必备的SaaS成本管理技巧

企业加速部署基于云的SaaS产品可以归因于很多因素-全球疫情蔓延、过时的软件和硬件&#xff0c;甚至仅仅是企业数据中心中的简单设备故障。 但是很快–如果还没有&#xff0c;你的第一笔账单也将到来。如果你是云服务新手&#xff0c;并且没有适当的SaaS成本管理控制措施&#…