本技术涉及智能运维,尤其涉及一种故障定位方法、装置、设备、及存储介质。
背景技术:
1、近年来,随着全面上云工作的不断推进,各类应用正不断朝着在云下服务器部署转至云上kubernetes集群中。伴随着集群业务混合部署,业务量的不断增大,通过智能运维的方式,对集群状态、应用状态与业务请求进行监控并分析,能够极大减轻运维人员的负担,产生广泛效益。
2、在遭遇业务访问成功率下降的情况时,运维人员仍然需要手动查看集群的监控指标等各种数据,并结合运维人员自身的经验,进行故障的分析与定位等处理。
3、然而,上述过程繁琐,耗费时间长,导致故障分析的效率较低。
技术实现思路
1、本技术实施例提供故障定位方法、装置、设备、及存储介质,用以达到提高故障分析效率的技术效果。
2、第一方面,本技术实施例提供一种故障定位方法,应用于kubernetes集群中的电子设备,所述方法包括:
3、获取所述kubernetes集群中的业务告警信息,所述业务告警信息包括:时间信息、集群名;
4、根据所述业务告警信息,确定所述kubernetes集群中的access log日志信息和所述kubernetes集群中的pod信息;
5、根据所述access log日志信息和所述kubernetes集群中的pod信息,确定所述kubernetes集群中非200响应码的九元组请求;
6、将所述非200响应码的九元组请求作为异常请求,并确定出所述异常请求对应的故障信息。
7、在一种可能的实施方式中,所述根据所述access log日志信息和所述kubernetes集群中的pod信息,确定所述kubernetes集群中非200响应码的九元组请求,包括:
8、确定所述access log日志信息的七元组,所述七元组包括:请求发生的时间、请求到达负载均衡器pod ip、请求到达的负载均衡器的pod、请求的状态码、请求路径、后端服务的pod ip以及请求总时间;
9、根据所述七元组和所述pod信息,确定所述kubernetes集群的九元组请求序列;
10、确定所述九元组请求序列中非200响应码的九元组请求。
11、在一种可能的实施方式中,所述九元组请求包括:客户端发送到集群的请求、所述请求发生的时间、所述请求的状态码、所述请求所到达的pod、请求达到负载均衡器pod的互联网协议ip地址、后端服务的pod名、后端服务的pod所属的命名空间、后端服务的pod所在的业务节点ip、整个请求的总时间。
12、在一种可能的实施方式中,所述根据所述业务告警信息,确定所述kubernetes集群中的access log日志信息和所述kubernetes集群中的pod信息,包括:
13、根据所述业务告警信息,生成elastic search查询语句和prometheus查询语句;
14、根据所述elastic search查询语句,查询所述kubernetes集群中的access log日志信息;
15、根据所述prometheus查询语句,抽取所述kubernetes集群中从所述时间信息中的开始时间到结束时间的pod信息。
16、在一种可能的实施方式中,根据所述业务告警信息,生成elastic search查询语句,包括:
17、根据预设的日志查询模板、所述时间信息、以及所述集群名,生成所述elasticsearch查询语句,所述日志查询模板包括:开始时间、结束时间、集群名、与条件、或条件、每次查询的数量以及时间排序。
18、在一种可能的实施方式中,根据所述业务告警信息,生成prometheus查询语句,包括:
19、根据预设的指标查询模板、所述时间信息、以及所述集群名,生成所述prometheus查询语句,所述指标查询模板包括:开始时间、结束时间、集群名。
20、在一种可能的实施方式中,所述access log日志信息包括:从所述时间信息中开始时间至结束时间在elastic search抽取的日志信息。
21、第二方面,本技术实施例提供一种故障定位装置,应用于kubernetes集群中的电子设备,所述装置包括:
22、获取模块,用于获取所述kubernetes集群中的业务告警信息,所述业务告警信息包括:时间信息、集群名;
23、第一确定模块,用于根据所述业务告警信息,确定所述kubernetes集群中的access log日志信息和所述kubernetes集群中的pod信息;
24、第二确定模块,用于根据所述access log日志信息和所述kubernetes集群中的pod信息,确定所述kubernetes集群中非200响应码的九元组请求;
25、第三确定模块,用于将所述非200响应码的九元组请求作为异常请求,并确定出所述异常请求对应的故障信息。
26、在一种可能的实施方式中,所述第二确定模块,具体用于:
27、确定所述access log日志信息的七元组,所述七元组包括:请求发生的时间、请求到达负载均衡器pod ip、请求到达的负载均衡器的pod、请求的状态码、请求路径、后端服务的pod ip以及请求总时间;
28、根据所述七元组和所述pod信息,确定所述kubernetes集群的九元组请求序列;
29、确定所述九元组请求序列中非200响应码的九元组请求。
30、在一种可能的实施方式中,所述九元组请求包括:客户端发送到集群的请求、所述请求发生的时间、所述请求的状态码、所述请求所到达的pod、请求达到负载均衡器pod的互联网协议ip地址、后端服务的pod名、后端服务的pod所属的命名空间、后端服务的pod所在的业务节点ip、整个请求的总时间。
31、在一种可能的实施方式中,所述第一确定模块,具体用于:
32、根据所述业务告警信息,生成elastic search查询语句和prometheus查询语句;
33、根据所述elastic search查询语句,查询所述kubernetes集群中的access log日志信息;
34、根据所述prometheus查询语句,抽取所述kubernetes集群中从所述时间信息中的开始时间到结束时间的pod信息。
35、在一种可能的实施方式中,所述第一确定模块,根据所述业务告警信息,生成elastic search查询语句,具体用于:
36、根据预设的日志查询模板、所述时间信息、以及所述集群名,生成所述elasticsearch查询语句,所述日志查询模板包括:开始时间、结束时间、集群名、与条件、或条件、每次查询的数量以及时间排序。
37、在一种可能的实施方式中,所述第一确定模块,根据所述业务告警信息,生成prometheus查询语句,具体用于:
38、根据预设的指标查询模板、所述时间信息、以及所述集群名,生成所述prometheus查询语句,所述指标查询模板包括:开始时间、结束时间、集群名。
39、在一种可能的实施方式中,所述access log日志信息包括:从所述时间信息中开始时间至结束时间在elastic search抽取的日志信息。
40、第三方面,本技术实施例提供一种电子设备,包括:存储器,处理器;
41、所述存储器存储计算机执行指令;
42、所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如上第一方面和/或第一方面各种可能的实施方式。
43、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上第一方面和/或第一方面各种可能的实施方式。
44、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面和/或第一方面各种可能的实施方式。
45、本技术实施例提供的故障定位方法、装置、设备、及存储介质,该方法应用于kubernetes集群中的电子设备,方法包括:获取kubernetes集群中的业务告警信息,业务告警信息包括:时间信息、集群名;根据业务告警信息,确定kubernetes集群中的access log日志信息和kubernetes集群中的pod信息,根据access log日志信息和kubernetes集群中的pod信息,确定kubernetes集群中非200响应码的九元组请求,将非200响应码的九元组请求作为异常请求,并确定出异常请求对应的故障信息的技术手段,达到提高故障分析效率的技术效果。