System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种基于linux定时任务的kafka监控方法及装置。
技术介绍
1、目前部分业务系统运行中对kafka队列高度依赖,现有技术中,kafka的监控通常有以下几种方式:
2、1)通过zabbix工具监控kafka的jmx端口进而监控队列信息。
3、2)通过第三方开发的kafka监控管理工具进行监控。
4、3)基于kafka提供的脚本进行监控。
5、上述几种监控方法均有各自的优缺点,各方法优缺点如下。
6、1)zabbix监控优点:能对kafka队列与性能进行多方面监控,可以查看kafka全时段的运行状态;缺点:此方案实现过程较为复杂,对监控人员专业技术要求较高,zabbix仅5.0以上版本支持kafka监控。
7、2)第三方kafka监控管理工具优点:能查看kafka实时运行信息,也能对异常情况进行有效告警;缺点:第三方开发非开源,工具需付款才能使用,因各公司运行环境的差异,第三方厂商普遍需要二次开发,整体成本较高,部署周期较长。
8、3)kafka脚本监控优点:不受运行环境、版本、专业技术等限制,具备一定的普遍性,并且监控易于实现;缺点:监控场景单一,仅能监控实时队列积压情况。
技术实现思路
1、本专利技术提供了一种基于linux定时任务的kafka监控方法及装置,用以解决或者至少部分解决现有技术中存在的监控效果不佳的技术问题。
2、为了解决上述技术问题,本
3、获取待监控的kafka消费组名称;
4、根据待监控的kafka消费组名称,利用预设查询脚本获取对应kafka消费组的实时状态,其中,kafka消费组的实时状态包括队列总笔数、已消费队列笔数和未消费队列笔数;
5、将获取的kafka消费组的实时状态进行存储;
6、通过编写linux定时任务脚本,触发预设查询脚本在预设时间间隔内重新获取对应kafka消费组的实时状态;
7、根据当前获取的实时状态与前一次获取的实时状态的变化情况,对kafka队列进行监控。
8、在一种实施方式中,将获取的kafka消费组的实时状态进行存储包括:
9、将获取的kafka消费组的实时状态存储至本地文件或者数据库中。
10、在一种实施方式中,根据当前获取的实时状态与前一次获取的实时状态的变化情况,对kafka队列进行监控,包括:
11、根据当前获取的实时状态与前一次获取的实时状态中的队列总笔数的差值计算kafka消息队列的新增笔数;
12、根据当前获取的实时状态与前一次获取的实时状态中的已消费队列笔数的差值计算kafka消息队列的消费笔数;
13、根据kafka消息队列的新增笔数和消费笔数计算kafka消息队列的消费速率;
14、根据当前获取的实时状态中队列总笔数与已消费队列笔数的差值计算当前kafka消息队列的积压笔数。
15、在一种实施方式中,所述方法还包括根据当前获取的实时状态与前一次获取的实时状态的变化情况与对应阈值的关系,触发不同的告警信息。
16、在一种实施方式中,预先设定队列新增阈值、队列消费速率阈值和队列积压阀值,根据当前获取的实时状态与前一次获取的实时状态的变化情况与对应阈值的关系,触发不同的告警信息,包括:
17、如果kafka消息队列的新增笔数超过队列新增阈值,则触发kafka流量超限告警;
18、如果kafka消息队列的新增笔数大于0并且kafka消息队列的消费笔数小于或等于0,则触发kafka未消费告警;
19、如果kafka消息队列的消费速率小于等于队列消费速率阈值,则触发kafka消费速率过慢告警;
20、如果kafka消息队列的积压笔数超过队列积压阀值,则触发kafka队列积压告警。
21、在一种实施方式中,所述方法还包括根据触发的不同类型的告警,设置不同的告警级别,具体为:
22、将kafka流量超限告警的告警级别设置为提醒;
23、将kafka未消费告警的告警级别设置为预警;
24、将kafka消费速率过慢告警的告警级别设置为预警;
25、将kafka队列积压告警的告警级别设置为严重。
26、在一种实施方式中,所述方法还包括将告警信息发送至告警平台。
27、基于同样的专利技术构思,本专利技术第二方面提供了一种基于linux定时任务的kafka监控装置,包括:
28、kafka消费组名称获取模块,用于获取待监控的kafka消费组名称;
29、kafka消费组实时状态获取模块,用于根据待监控的kafka消费组名称,利用预设查询脚本获取对应kafka消费组的实时状态,其中,kafka消费组的实时状态包括队列总笔数、已消费队列笔数和未消费队列笔数;
30、存储模块,用于将获取的kafka消费组的实时状态进行存储;
31、定时模块,用于通过编写linux定时任务脚本,触发预设查询脚本在预设时间间隔内重新获取对应kafka消费组的实时状态;
32、监控模块,用于根据当前获取的实时状态与前一次获取的实时状态的变化情况,对kafka队列进行监控。
33、基于同样的专利技术构思,本专利技术第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
34、基于同样的专利技术构思,本专利技术第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
35、相对于现有技术,本专利技术的优点和有益的技术效果如下:
36、本专利技术提供的一种基于linux定时任务的kafka监控方法,首先获取待监控的kafka消费组名称;然后根据待监控的kafka消费组名称,利用预设查询脚本获取对应kafka消费组的实时状态,然后将获取的kafka消费组的实时状态进行存储;再通过编写linux定时任务脚本,触发预设查询脚本在预设时间间隔内重新获取对应kafka消费组的实时状态;最后根据当前获取的实时状态与前一次获取的实时状态的变化情况,对kafka队列进行监控。由于本专利技术的方法获取的实时状态包括队列总笔数、已消费队列笔数和未消费队列笔数,根据几个不同的状态值的变化情况可以同时监控多种场景(队列积压、流量徒增、不消费、消费速率下降),改善了监控效果。
37、进一步地,根据根据不同的告警信息,运维人员可快速锁定问题,有效减少了运维人员kafka问题的排查时间,对运维人员保障业务连续性有显著效果。
本文档来自技高网...【技术保护点】
1.一种基于linux定时任务的kafka监控方法,其特征在于,包括:
2.如权利要求1所述的基于linux定时任务的kafka监控方法,其特征在于,将获取的kafka消费组的实时状态进行存储包括:
3.如权利要求1所述的基于linux定时任务的kafka监控方法,其特征在于,根据当前获取的实时状态与前一次获取的实时状态的变化情况,对kafka队列进行监控,包括:
4.如权利要求3所述的基于linux定时任务的kafka监控方法,其特征在于,所述方法还包括根据当前获取的实时状态与前一次获取的实时状态的变化情况与对应阈值的关系,触发不同的告警信息。
5.如权利要求4所述的基于linux定时任务的kafka监控方法,其特征在于,预先设定队列新增阈值、队列消费速率阈值和队列积压阀值,根据当前获取的实时状态与前一次获取的实时状态的变化情况与对应阈值的关系,触发不同的告警信息,包括:
6.如权利要求5所述的基于linux定时任务的kafka监控方法,其特征在于,所述方法还包括根据触发的不同类型的告警,设置不同的告警级别,具体为:<
...【技术特征摘要】
1.一种基于linux定时任务的kafka监控方法,其特征在于,包括:
2.如权利要求1所述的基于linux定时任务的kafka监控方法,其特征在于,将获取的kafka消费组的实时状态进行存储包括:
3.如权利要求1所述的基于linux定时任务的kafka监控方法,其特征在于,根据当前获取的实时状态与前一次获取的实时状态的变化情况,对kafka队列进行监控,包括:
4.如权利要求3所述的基于linux定时任务的kafka监控方法,其特征在于,所述方法还包括根据当前获取的实时状态与前一次获取的实时状态的变化情况与对应阈值的关系,触发不同的告警信息。
5.如权利要求4所述的基于linux定时任务的kafka监控方法,其特征在于,预先设定队列新增阈值、队列消费速率阈值和队列积压阀值,根据当前获取的实时状态与前一次获取的...
【专利技术属性】
技术研发人员:夏思康,白建武,胡小伟,
申请(专利权)人:武汉众邦银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。