CN107819607B - 基于dubbo的微服务监控系统 - Google Patents
基于dubbo的微服务监控系统 Download PDFInfo
- Publication number
- CN107819607B CN107819607B CN201710950152.1A CN201710950152A CN107819607B CN 107819607 B CN107819607 B CN 107819607B CN 201710950152 A CN201710950152 A CN 201710950152A CN 107819607 B CN107819607 B CN 107819607B
- Authority
- CN
- China
- Prior art keywords
- service
- information
- dubbo
- micro
- zookeeper
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 45
- 238000002360 preparation method Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 6
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于dubbo的微服务监控系统,包括以下工作步骤:(1)进行前期的准备工作;(2)设置定时信息,系统根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);(3)获取监控目标的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);(4)进行数据处理;(5)通过grafana对处理后的数据进行显示。本发明提供基于dubbo的微服务监控系统,能够在不修改业务代码的情况下收集服务监控信息,还能够根据监控信息动态修改调用负载,同时还拥有告警功能,大大提升了系统的使用安全性与使用效果。
Description
技术领域
本发明涉及一种微服务监控系统,具体是指基于dubbo的微服务监控系统。
背景技术
如今的微服务监控系统主要有两种制作方式,第一种是通过修改jvm启动参数来制作,第二种是通过修改代码添加监听来制作。
通过修改jvm启动参数的具体制作方式为:添加自己开发的jar包到服务启动执行目录下(classpath目录下)并修改jvm启动参数读取配置文件;这类操作方法可参考听云和oneapm的客户端部署方式;(比如启动命令java$JAVA_MEM_OPTS$JAVA_OPTS-classpath$CLASS_PATHcom.alibaba.dubbo.container.Main1>/dev/null2>>"$danlu_jar_logfile"&变为java-javaagent:${danlu_jar_DataDir}/${danlu_jar_HostnameDir}/OneAPM/oneapm.jar$JAVA_MEM_OPTS$JAVA_OPTS-classpath$CLASS_PATHcom.alibaba.dubbo.container.Main 1>/dev/null 2>>"$danlu_jar_logfile"&)。
通过修改代码添加监听的具体制作方式则与javamelody和dubbo-monitor两个工程。
上述的两种方式都需要在业务代码中添加其他的maven依赖和添加相应的jar包到对应lib目录下;他们的特点是如果要做监控就需要修改原来的业务代码;另外,除了修改业务代码外,还需要额外的功能来辅助监控信息的收集;javamelody修改业务代码是为了告诉别人我的哪些方法和接口要提供给别人来监控且该服务本身还得提供一个接口(方式)让别人通过这种接口(方式)来收集数据;dubbo-monitor是把自己伪造成客户端,他在业务代码中就告诉该服务所有的接口调用流量和状态信息就应该发送到dubbo-server。
上述的方法存在的问题如下:
(1)对业务代码有侵入性,即需要修改原业务代码;我们的监控数据收集和动态调整应该跟业务代码解耦;而收集数据、修改调用关系跟服务本身的业务部署本身应该没丝毫联系;
(2)javamoledy这种方法则存在安全隐患:他需要在每个服务上多增加一个接口便于监控服务端来收集数据;而实际的生产服务中本来就应该是接口越少越好,多一个接口开放就多一份风险;
(3)这两种类型都不能动态修改调用关系;而实际上,在理想状态下应该在集群中某些服务器的业务压力过大的时候会自动相应调整调用关系达到把请求分发到业务压力不大的服务器上;
(4)实现复杂度更高,需要各种修改启动jar包和修改代码;
(5)没有友好的运行趋势报告;
(6)没告警功能。
发明内容
本发明的目的在于克服上述问题,提供基于dubbo的微服务监控系统,能够在不修改业务代码的情况下收集服务监控信息,还能够根据监控信息动态修改调用负载,同时还拥有告警功能,大大提升了系统的使用安全性与使用效果。
本发明的目的通过下述技术方案实现:
基于dubbo的微服务监控系统,包括以下工作步骤:
(1)进行前期的准备工作;
该准备工作包括:
(11)完成对dubbo架构的架设,准备至少一个注册中心zookeeper,且拥有在注册中心zookeeper上注册的微服务提供者;
(12)搭建邮件和微信告警服务;
(13)针对dubbo构架的信息里的负载、客户端连接数、数据库配置地址、线程池、内存使用、总体状态以及接口调用信息数量设计influxdb的measurements;
(2)设置定时信息,系统根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);
(3)获取微服务提供者的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);
(4)进行数据处理;
(5)通过grafana对处理后的数据进行显示。
步骤(2)的具体步骤为:
(21)通过python定时读取注册中心zookeeper上面注册的所有微服务提供者的连接信息,并将读取的信息构建成网络拓扑;
(22)根据获取的网络拓扑生成监控对象、监控权重信息以及服务拓扑,若已有服务拓扑则对已有的服务拓扑做增加列表操作。
所述步骤(22)中若需要对服务拓扑中的服务进行更换或移除则需要人工介入进行操作。
步骤(3)中是通过python模拟底层telnet以实现远程调用网络拓扑结构里的微服务提供者的监控信息,并将调用的监控信息格式化成json,且该信息包括负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况以及总体状态。
步骤(4)的数据处理的具体步骤为:
(41)对步骤(3)中获取的监控信息进行分类整理,格式化所有数据得到性能信息,并提取负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况的数据进行调用influxdb持久化落盘操作;
(42)对性能信息进行阈值分析和权重分配分析。
步骤(42)中需要事先输入相应的底层资源使用率的阀值,而所述的阈值分析的目的是分析底层资源使用率,在底层资源使用率达到不同的定义级别的阀值时,需要进行不同级别的邮件和微信告警;而权重分配分析则是将实时的资源使用情况与最近的历史资源使用情况进行对比,并根据对比的结果调整对应的权重信息,并将调整后的权重信息发送至注册中心zookeeper;其中,注册中心zookeeper的第一次权重信息是注册中心zookeeper默认值。
步骤(5)中所述的通过grafana对处理后的数据进行显示的具体步骤为:
(51)通过grafana插件把influxdb中的数据反映出来,并根据预先输入的需求形成dashboard大屏;
(52)根据具体的数据生成趋势报告,该趋势报告包括各个微服务提供者的服务的使用趋势报告以及整体的资源使用趋势报告。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明搭建了邮件和微信告警服务,能够在运行出现异常时通过邮件与微信进行告警,及时的提醒工作人员,使得工作人员可以及时的得知系统的运行状态,并根据告警情况及时的对系统运行遇到的问题进行处理,大大提升了系统的使用安全性。
(2)本发明能够在不修改业务代码的情况下收集服务监控信息,还能够根据监控信息动态修改调用负载,大大提升了系统的使用安全性与使用效果。
具体实施方式
下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例
基于dubbo的微服务监控系统,包括以下工作步骤:
(1)进行前期的准备工作;
该准备工作包括:
(11)完成对dubbo架构的架设,准备至少一个注册中心zookeeper,且拥有在注册中心zookeeper上注册的微服务提供者;
(12)搭建邮件和微信告警服务;
(13)针对dubbo构架的信息里的负载、客户端连接数、数据库配置地址、线程池、内存使用、总体状态以及接口调用信息数量设计influxdb的measurements;
(2)设置定时信息,系统根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);
具体步骤为:
(21)通过python定时读取注册中心zookeeper上面注册的所有微服务提供者的连接信息,并将读取的信息构建成网络拓扑;
(22)根据获取的网络拓扑生成监控对象、监控权重信息以及服务拓扑,若已有服务拓扑则对已有的服务拓扑做增加列表操作;若需要对服务拓扑中的服务进行更换或移除则需要人工介入进行操作。
(3)获取微服务提供者的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);
具体是通过python模拟底层telnet以实现远程调用网络拓扑结构里的微服务提供者的监控信息,并将调用的监控信息格式化成json,且该信息包括负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况以及总体状态。
(4)进行数据处理;
数据处理的具体步骤为:
(41)对步骤(3)中获取的监控信息进行分类整理,格式化所有数据得到性能信息,并提取负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况的数据进行调用influxdb持久化落盘操作;
(42)对性能信息进行阈值分析和权重分配分析;
步骤(42)中需要事先输入相应的底层资源使用率的阀值,而所述的阈值分析的目的是分析底层资源使用率,在底层资源使用率达到不同的定义级别的阀值时,需要进行不同级别的邮件和微信告警;而权重分配分析则是将实时的资源使用情况与最近的历史资源使用情况进行对比,并根据对比的结果调整对应的权重信息,并将调整后的权重信息发送至注册中心zookeeper;其中,注册中心zookeeper的第一次权重信息是注册中心zookeeper默认值。
(5)通过grafana对处理后的数据进行显示。
所述的通过grafana对处理后的数据进行显示的具体步骤为:
(51)通过grafana插件把influxdb中的数据反映出来,并根据预先输入的需求形成dashboard大屏;
(52)根据具体的数据生成趋势报告,该趋势报告包括各个微服务提供者的服务的使用趋势报告以及整体的资源使用趋势报告。
如上所述,便可很好的实现本发明。
Claims (7)
1.基于dubbo的微服务监控系统,其特征在于:包括以下工作步骤:
(1)进行前期的准备工作;
该准备工作包括:
(11)完成对dubbo架构的架设,准备至少一个注册中心zookeeper,且拥有在注册中心zookeeper上注册的微服务提供者;
(12)搭建邮件和微信告警服务;
(13)针对dubbo构架的信息里的负载、客户端连接数、数据库配置地址、线程池、内存使用、总体状态以及接口调用信息数量设计influxdb的measurements;
(2)设置定时信息,系统根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);
(3)获取微服务提供者的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);
(4)进行数据处理;
(5)通过grafana对处理后的数据进行显示。
2.根据权利要求1所述的基于dubbo的微服务监控系统,其特征在于:步骤(2)的具体步骤为:
(21)通过python定时读取注册中心zookeeper上面注册的所有微服务提供者的连接信息,并将读取的信息构建成网络拓扑;
(22)根据获取的网络拓扑生成监控对象、监控权重信息以及服务拓扑,若已有服务拓扑则对已有的服务拓扑做增加列表操作。
3.根据权利要求2所述的基于dubbo的微服务监控系统,其特征在于:所述步骤(22)中若需要对服务拓扑中的服务进行更换或移除则需要人工介入进行操作。
4.根据权利要求3所述的基于dubbo的微服务监控系统,其特征在于:步骤(3)中是通过python模拟底层telnet以实现远程调用网络拓扑结构里的微服务提供者的监控信息,并将调用的监控信息格式化成json,且该信息包括负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况以及总体状态。
5.根据权利要求4所述的基于dubbo的微服务监控系统,其特征在于:步骤(4)的数据处理的具体步骤为:
(41)对步骤(3)中获取的监控信息进行分类整理,格式化所有数据得到性能信息,并提取负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况的数据进行调用influxdb持久化落盘操作;
(42)对性能信息进行阈值分析和权重分配分析。
6.根据权利要求5所述的基于dubbo的微服务监控系统,其特征在于:步骤(42)中需要事先输入相应的底层资源使用率的阀值,而所述的阈值分析的目的是分析底层资源使用率,在底层资源使用率达到不同的定义级别的阀值时,需要进行不同级别的邮件和微信告警;而权重分配分析则是将实时的资源使用情况与最近的历史资源使用情况进行对比,并根据对比的结果调整对应的权重信息,并将调整后的权重信息发送至注册中心zookeeper;其中,注册中心zookeeper的第一次权重信息是注册中心zookeeper默认值。
7.根据权利要求6所述的基于dubbo的微服务监控系统,其特征在于:步骤(5)中所述的通过grafana对处理后的数据进行显示的具体步骤为:
(51)通过grafana插件把influxdb中的数据反映出来,并根据预先输入的需求形成dashboard大屏;
(52)根据具体的数据生成趋势报告,该趋势报告包括各个微服务提供者的服务的使用趋势报告以及整体的资源使用趋势报告。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710950152.1A CN107819607B (zh) | 2017-10-13 | 2017-10-13 | 基于dubbo的微服务监控系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710950152.1A CN107819607B (zh) | 2017-10-13 | 2017-10-13 | 基于dubbo的微服务监控系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN107819607A CN107819607A (zh) | 2018-03-20 |
| CN107819607B true CN107819607B (zh) | 2020-09-01 |
Family
ID=61607299
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201710950152.1A Active CN107819607B (zh) | 2017-10-13 | 2017-10-13 | 基于dubbo的微服务监控系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN107819607B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108965461A (zh) * | 2018-08-03 | 2018-12-07 | 华数传媒网络有限公司 | 服务治理方法、装置及dubbo服务系统 |
| CN109639472A (zh) * | 2018-12-04 | 2019-04-16 | 科大国创软件股份有限公司 | 基于Grafana的容器云平台的集成告警控制方法及系统 |
| CN110505219B (zh) * | 2019-08-12 | 2021-10-26 | 南京莱斯信息技术股份有限公司 | 基于dubbo的微服务服务注册控制管理系统及方法 |
| CN110888783B (zh) * | 2019-11-21 | 2023-07-07 | 望海康信(北京)科技股份公司 | 微服务系统的监测方法、装置以及电子设备 |
| CN113157523B (zh) * | 2021-04-21 | 2022-11-11 | 平安付科技服务有限公司 | 服务监控方法、装置、计算机设备及存储介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105162884A (zh) * | 2015-09-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种基于微服务架构的云管理平台 |
| CN105930491A (zh) * | 2016-04-28 | 2016-09-07 | 安徽四创电子股份有限公司 | 一种基于时间序列数据库InfluxDB的监控数据存储方法 |
| CN105959390A (zh) * | 2016-06-13 | 2016-09-21 | 乐视控股(北京)有限公司 | 微服务的统一管理系统及方法 |
| CN106330576A (zh) * | 2016-11-18 | 2017-01-11 | 北京红马传媒文化发展有限公司 | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 |
| CN106878393A (zh) * | 2017-01-16 | 2017-06-20 | 深圳市商沃科技发展有限公司 | 一种基于融合微服务架构的系统 |
| CN106991035A (zh) * | 2017-04-06 | 2017-07-28 | 北京计算机技术及应用研究所 | 一种基于微服务架构的主机监控系统 |
| CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3210350B1 (en) * | 2014-10-21 | 2020-05-20 | Twilio, Inc. | Method for providing a miro-services communication platform |
-
2017
- 2017-10-13 CN CN201710950152.1A patent/CN107819607B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105162884A (zh) * | 2015-09-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种基于微服务架构的云管理平台 |
| CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
| CN105930491A (zh) * | 2016-04-28 | 2016-09-07 | 安徽四创电子股份有限公司 | 一种基于时间序列数据库InfluxDB的监控数据存储方法 |
| CN105959390A (zh) * | 2016-06-13 | 2016-09-21 | 乐视控股(北京)有限公司 | 微服务的统一管理系统及方法 |
| CN106330576A (zh) * | 2016-11-18 | 2017-01-11 | 北京红马传媒文化发展有限公司 | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 |
| CN106878393A (zh) * | 2017-01-16 | 2017-06-20 | 深圳市商沃科技发展有限公司 | 一种基于融合微服务架构的系统 |
| CN106991035A (zh) * | 2017-04-06 | 2017-07-28 | 北京计算机技术及应用研究所 | 一种基于微服务架构的主机监控系统 |
Non-Patent Citations (1)
| Title |
|---|
| 微服务的一种开源实现方式——dubbo+zookeeper;https://blog.csdn.net/zhdd99/article/details/52263609;《CSDN》;20160820;全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107819607A (zh) | 2018-03-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107819607B (zh) | 基于dubbo的微服务监控系统 | |
| CN111274095B (zh) | 日志数据处理方法、装置、设备及计算机可读存储介质 | |
| EP4176602B1 (en) | Method and apparatus for updating gateway resource, and iot control platform | |
| CN109714192A (zh) | 一种监控云平台的监控方法及系统 | |
| CN106027328B (zh) | 一种基于应用容器部署的集群监控的方法及系统 | |
| US20110296393A1 (en) | Systems and methods for generating an encoded package profile based on executing host processes | |
| CN112231168A (zh) | 微服务器管控方法、装置、设备及存储介质 | |
| CN105677469A (zh) | 定时任务执行方法及装置 | |
| CN102916839A (zh) | 一种糖厂农务自动化监管系统 | |
| CN112350854B (zh) | 一种流量故障定位方法、装置、设备及存储介质 | |
| CN105956481A (zh) | 一种数据处理方法及其装置 | |
| CN111506479B (zh) | 一种日志数据处理方法及装置 | |
| CN105653322B (zh) | 运维服务器和服务器事件的处理方法 | |
| CN114647656A (zh) | 一种更新数据的方法、装置、设备及存储介质 | |
| CN110968479A (zh) | 一种针对应用程序的业务级全链路监控方法及服务器 | |
| JP5268589B2 (ja) | 情報処理装置及び情報処理装置の運用方法 | |
| US8359378B2 (en) | Network system and method of administrating networks | |
| US11146447B2 (en) | Method and apparatus of establishing computer network monitoring criteria | |
| CN106230939A (zh) | 一种应用运行监控方法及系统 | |
| CN114650211A (zh) | 故障修复方法、装置、电子设备和计算机可读存储介质 | |
| CN110795225B (zh) | 一种调度任务的执行方法及系统 | |
| CN115168134A (zh) | 容器信息处理系统、方法、电子设备及存储介质 | |
| CN118316794B (zh) | 用于工业物联网的通信优化方法、系统及设备 | |
| CN112910684A (zh) | 一种通过实时流式平台监控重点数据的方法及终端 | |
| JP2017004201A (ja) | パッチプログラム抽出装置、パッチプログラム抽出プログラム及びパッチプログラム抽出方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |