本发明专利技术提供了一种基于字节码技术的零侵入监控方法及系统,本发明专利技术基于java代理以及字节码技术,对系统内部http服务、service服务以及JDBC服务进行监听,在零侵入的情况下,采集系统日志、系统调用链耗时日志以及服务器的基本信息等,并对采集到的数据进行异常告警。本发明专利技术可有效弥补内部数据监控不准确的问题,且可做到零侵入,通过字节码插桩减少对现有业务系统的侵入,规避降低传统项目接入监控系统的风险,降低运维成本,便于实施推广,另外可扩展,可有效集成到开源的监控系统中。
【技术实现步骤摘要】
一种基于字节码技术的零侵入监控方法及系统
本专利技术涉及系统监控
,特别是一种基于字节码技术的零侵入监控方法及系统。
技术介绍
监控系统整体实现分为数据采集、传输、存储、图表展示以及报警,其中采集可分为资源指标和系统指标两类。一般监控系统调用操作系统命令可轻松获得资源指标,而内部的系统指标,或者应用自身采集数据发送数据监控系统,或者引入监控系统提供的JAR来修改,但无论哪种都对应用造成了侵入,不利于实施。
技术实现思路
本专利技术的目的是提供一种基于字节码技术的零侵入监控方法及系统,旨在解决现有技术中系统监控对应用造成侵入的问题,实现在零侵入的情况下,采集服务器各项信息,提高监控数据的准确性。为达到上述技术目的,本专利技术提供了一种基于字节码技术的零侵入监控方法,所述方法包括以下操作:通过java代理监控应用程序,并通过字节码修改来获取应用程序的返回值,形成agent服务,打包成jar包,用于监控系统内部http服务、service服务以及JDBC服务;在应用启动时,加载用于监控的jar包,启动监听;部署filebeat采集系统日志以及系统调用链耗时日志,部署metricbeat采集中间件以及服务器的基本信息,将filebeat和metricbeat收集到的数据通过logstash写入服务器集群;在kibana中查看采集数据以及制作各种监控报表,并在logstash中配置输出监控告警的规则,进行异常信息的告警。优选地,所述http服务的监控具体为:对调用链数据进行字节码监听,形成http监控数据,http监控数据模型字段包括开始时间、请求URL、客户端IP、调用耗时、记录耗时以及服务类型。优选地,所述service服务的监控具体为:对service服务进行字节码监听,形成service监控数据,service监控数据模型字段包括开始时间、耗时、异常消息、异常类型、服务类名、服务类名简称、方法名、主机IP、应用名称和标识、追踪ID以及服务类型。优选地,所述JDBC服务的监控具体为:对JDBC服务进行字节码监听,数据访问对象获取连接时生成代理连接,预声明SQL生成代理SQL语句,执行SQL生成代理结果集,读取返回结果,形成JDBC监控数据,JDBC监控数据模型字段包括开始时间、调用耗时、客户端IP、执行SQL、数据库、记录耗时以及服务类型。本专利技术还提供了一种基于字节码技术的零侵入监控系统,所述系统包括:监听打包模块,用于通过java代理监控应用程序,并通过字节码修改来获取应用程序的返回值,形成agent服务,打包成jar包,用于监控系统内部http服务、service服务以及JDBC服务;监听启动模块,用于在应用启动时,加载用于监控的jar包,启动监听;信息采集模块,用于部署filebeat采集系统日志以及系统调用链耗时日志,部署metricbeat采集中间件以及服务器的基本信息,将filebeat和metricbeat收集到的数据通过logstash写入服务器集群;信息展示模块,用于在kibana中查看采集数据以及制作各种监控报表,并在logstash中配置输出监控告警的规则,进行异常信息的告警。优选地,所述http服务的监控数据模型字段包括开始时间、请求URL、客户端IP、调用耗时、记录耗时以及服务类型。优选地,所述service服务的监控数据模型字段包括开始时间、耗时、异常消息、异常类型、服务类名、服务类名简称、方法名、主机IP、应用名称和标识、追踪ID以及服务类型。优选地,所述JDBC服务的监控数据模型字段包括开始时间、调用耗时、客户端IP、执行SQL、数据库、记录耗时以及服务类型。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:与现有技术相比,本专利技术基于java代理以及字节码技术,对系统内部http服务、service服务以及JDBC服务进行监听,在零侵入的情况下,采集系统日志、系统调用链耗时日志以及服务器的基本信息等,并对采集到的数据进行异常告警。本专利技术可有效弥补内部数据监控不准确的问题,且可做到零侵入,通过字节码插桩减少对现有业务系统的侵入,规避降低传统项目接入监控系统的风险,降低运维成本,便于实施推广,另外可扩展,可有效集成到开源的监控系统中。附图说明图1为本专利技术实施例中所提供的一种基于字节码技术的零侵入监控方法流程图;图2为本专利技术实施例中所提供的零侵入监控架构示意图;图3为本专利技术实施例中所提供的JDBC监控原理示意图;图4为本专利技术实施例中所提供的一种基于字节码技术的零侵入监控系统框图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。下面结合附图对本专利技术实施例所提供的一种基于字节码技术的零侵入监控方法及系统进行详细说明。如图1、2所示,本专利技术公开了一种基于字节码技术的零侵入监控方法,所述方法包括以下操作:通过java代理监控应用程序,并通过字节码修改来获取应用程序的返回值,形成agent服务,打包成jar包,用于监控系统内部http服务、service服务以及JDBC服务;在应用启动时,加载用于监控的jar包,启动监听;部署filebeat采集系统日志以及系统调用链耗时日志,部署metricbeat采集中间件以及服务器的基本信息,将filebeat和metricbeat收集到的数据通过logstash写入服务器集群;在kibana中查看采集数据以及制作各种监控报表,并在logstash中配置输出监控告警的规则,进行异常信息的告警。本专利技术实施例使用java代理+字节码技术监控系统内部的http服务、service服务以及JDBC服务。Javaagent为java代理,其为一个jar包,但不能独立运行,需要依附在目标JVM进程中。在需要了解目标JVM的运行指标时,通过javaagent来获取性能日志等。Javassit是一个java字节码的类库,其直接使用java编码的形式进行字节码处理。对于http服务,http监控数据模型采用JSON数据格式,字段包括开始时间、请求URL、客户端IP、调用耗时、记录耗时以及服务类型。通过对javax.servlet.http.HttpServlet#service进行字节码监听,实现对调用链数本文档来自技高网...
【技术保护点】
1.一种基于字节码技术的零侵入监控方法,其特征在于,所述方法包括以下操作:/n通过java代理监控应用程序,并通过字节码修改来获取应用程序的返回值,形成agent服务,打包成jar包,用于监控系统内部http服务、service服务以及JDBC服务;/n在应用启动时,加载用于监控的jar包,启动监听;/n部署filebeat采集系统日志以及系统调用链耗时日志,部署metricbeat采集中间件以及服务器的基本信息,将filebeat和metricbeat收集到的数据通过logstash写入服务器集群;/n在kibana中查看采集数据以及制作各种监控报表,并在logstash中配置输出监控告警的规则,进行异常信息的告警。/n
【技术特征摘要】
1.一种基于字节码技术的零侵入监控方法,其特征在于,所述方法包括以下操作:
通过java代理监控应用程序,并通过字节码修改来获取应用程序的返回值,形成agent服务,打包成jar包,用于监控系统内部http服务、service服务以及JDBC服务;
在应用启动时,加载用于监控的jar包,启动监听;
部署filebeat采集系统日志以及系统调用链耗时日志,部署metricbeat采集中间件以及服务器的基本信息,将filebeat和metricbeat收集到的数据通过logstash写入服务器集群;
在kibana中查看采集数据以及制作各种监控报表,并在logstash中配置输出监控告警的规则,进行异常信息的告警。
2.根据权利要求1所述的一种基于字节码技术的零侵入监控方法,其特征在于,所述http服务的监控具体为:
对调用链数据进行字节码监听,形成http监控数据,http监控数据模型字段包括开始时间、请求URL、客户端IP、调用耗时、记录耗时以及服务类型。
3.根据权利要求1所述的一种基于字节码技术的零侵入监控方法,其特征在于,所述service服务的监控具体为:
对service服务进行字节码监听,形成service监控数据,service监控数据模型字段包括开始时间、耗时、异常消息、异常类型、服务类名、服务类名简称、方法名、主机IP、应用名称和标识、追踪ID以及服务类型。
4.根据权利要求1所述的一种基于字节码技术的零侵入监控方法,其特征在于,所述JDBC服务的监控具体为:
对JDBC服务进行字节码监听,数据访问对象获取连接时生成代理连接,预声明SQL生成代理SQL语句,执行SQL生成代理结果集,...
【专利技术属性】
技术研发人员:王金国,苗功勋,崔新安,杨尚伟,
申请(专利权)人:中孚安全技术有限公司,中孚信息股份有限公司,北京中孚泰和科技发展股份有限公司,南京中孚信息技术有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。