本申请涉及云计算领域,特别是涉及一种dns解析监控方法、装置、电子装置和存储介质。
背景技术:
1、在云计算和容器化技术飞速发展的当下,kubernetes(简称k8s)作为开源的容器化应用管理平台,已经广泛应用于各种业务场景中。然而,随着微服务架构的普及,k8s环境下的微服务数量呈爆炸式增长,给运维管理带来了巨大挑战。特别是微服务间的通信依赖于dns解析(domain name system,域名系统),一旦dns解析出现异常,将直接影响服务的正常运行。因此,如何高效、精准地监控k8s环境下微服务的dns解析状态,及时发现并解决潜在问题,成为运维人员关注的焦点。
2、在现有技术中,对于微服务dns解析的监控,k8s默认使用coredns作为其dns服务器,coredns可以配置监控指标,通过监控指标可以了解微服务的dns解析情况,然而,coredns主要关注的是dns服务器的整体性能,而无法深入到具体的微服务层面,即对于微服务存储在nosql数据库或缓存中的域名解析,传统的监控方式往往无法覆盖。此时当dns解析出现异常时,运维人员只能通过查看coredns的日志来定位问题,日志中包含了dns解析的详细信息,包括请求的域名、ip地址、解析结果等,此方法需要运维人员手动查看日志,这导致了告警的延迟。在微服务数量庞大的k8s环境中,手动查看日志不仅耗时费力,还容易遗漏重要信息。因此,现有的监控方案往往无法实时捕获dns解析的异常,也无法提供精准的告警信息(如具体的域名和ip地址),这导致运维人员在处理故障时缺乏足够的信息支持,难以快速定位并解决问题。
3、目前针对相关技术中k8s环境下微服务dns解析异常时难以快速精准监控告警的问题,尚未提出有效的解决方案。
技术实现思路
1、本申请实施例提供了一种dns解析监控方法、装置、系统、电子装置和存储介质,以至少解决相关技术中k8s环境下微服务dns解析异常时难以快速精准监控告警的问题。
2、第一方面,本申请实施例提供了一种dns解析监控方法,包括:
3、获取dns请求;
4、对所述dns请求进行解析处理,若解析失败,则生成第一监控告警结果;
5、若解析到所述dns请求对应的第一域名与第一地址,则基于所述第一域名的首次记录时间间隔,以及基于所述第一域名和所述第一地址在历史解析记录中的查询结果,判断所述dns请求解析是否正常;
6、若判断所述dns请求解析异常,则生成第二监控告警结果。
7、在其中一些实施例中,所述基于所述第一域名的首次记录时间间隔,以及基于所述第一域名和所述第一地址在历史解析记录中的查询结果,判断所述dns请求解析是否正常,包括:
8、若所述第一域名的首次记录时间间隔大于预设阈值,则获取所述第一域名和所述第一地址在历史解析记录中的查询结果,所述历史解析记录包括历史域名和历史地址;
9、若在所述历史解析记录中存在所述第一域名和所述第一地址,则所述dns请求解析正常,若不存在,则所述dns请求解析异常;
10、若所述第一域名的首次记录时间间隔小于或等于所述预设阈值,则记录此次所述第一域名和所述第一地址至所述历史解析记录中。
11、在其中一些实施例中,所述方法还包括:
12、获取http请求;
13、在所述http请求解析成功的情况下,获取所述http请求对应的第二域名与第二地址;
14、基于所述第二域名的首次记录时间间隔,以及基于所述第二域名和所述第二地址在历史解析记录中的查询结果,判断所述http请求解析是否正常;
15、若所述http请求解析异常,则生成第三监控告警结果,所述第三监控告警结果包括所述http请求解析异常时对应的所述第二域名与所述第二地址。
16、在其中一些实施例中,所述获取dns请求,包括:
17、部署ebpf程序;
18、运行所述ebpf程序,基于预设的追踪函数,获取所述dns请求和http请求。
19、在其中一些实施例中,所述部署ebpf程序,包括:
20、在所述ebpf程序中定义dns输出事件和http输出事件;
21、当获取到所述dns请求数据包时,所述dns输出事件用于记录dns请求信息,所述dns请求信息包括所述第一域名、所述第一地址和dns请求响应时间;
22、当获取到所述http请求数据包时,所述http输出事件用于记录http请求信息,所述http请求信息包括所述第二域名、所述第二地址和http请求响应时间。
23、在其中一些实施例中,获取所述历史解析记录,包括:
24、获取对历史请求解析到的历史域名和历史地址,基于所述历史域名和所述历史地址确定所述历史解析记录,并将所述历史解析记录存储至预设的存储系统。
25、在其中一些实施例中,所述第一监控告警结果包括解析失败对应的所述第三域名,所述第二监控告警结果包括所述dns请求解析异常时对应的所述第一域名与所述第一地址。
26、第二方面,本申请实施例提供了一种dns解析监控装置,包括:
27、数据获取模块,用于获取dns请求;
28、dns解析模块,用于对所述dns请求进行解析处理,若解析失败,则生成第一监控告警结果;
29、解析异常验证模块,用于若解析到所述dns请求对应的第一域名与第一地址,则基于所述第一域名的首次记录时间间隔,以及基于所述第一域名和所述第一地址在历史解析记录中的查询结果,判断所述dns请求解析是否正常;
30、解析异常验证模块还用于若判断所述dns请求解析异常,则生成第二监控告警结果。
31、第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的dns解析监控方法。
32、第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的dns解析监控方法。
33、相比于相关技术,本申请实施例提供的dns解析监控方法,通过ebpf技术高效获取解析记录,二次判断是否解析异常,解决了k8s环境下微服务dns解析异常时难以快速精准监控告警的问题,实现了对微服务运行过程的异常检测功能,能够及时发现dns解析过程中的异常情况,快速定位到问题所在,从而缩短排障时间,提高排障效率。
34、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种dns解析监控方法,其特征在于,包括:
2.根据权利要求1所述的dns解析监控方法,其特征在于,所述基于所述第一域名的首次记录时间间隔,以及基于所述第一域名和所述第一地址在历史解析记录中的查询结果,判断所述dns请求解析是否正常,包括:
3.根据权利要求1所述的dns解析监控方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的dns解析监控方法,其特征在于,所述获取dns请求,包括:
5.根据权利要求4所述的dns解析监控方法,其特征在于,所述部署ebpf程序,包括:
6.根据权利要求1所述的dns解析监控方法,其特征在于,获取所述历史解析记录,包括:
7.根据权利要求1至权利要求6任一项所述的dns解析监控方法,其特征在于,所述第一监控告警结果包括解析失败对应的第三域名,所述第二监控告警结果包括所述dns请求解析异常时对应的所述第一域名与所述第一地址。
8.一种dns解析监控装置,其特征在于,包括:
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求7中任一项所述的dns解析监控方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至权利要求7中任一项所述的dns解析监控方法。