CN111026574A - 诊断Elasticsearch集群问题的方法及装置 - Google Patents

诊断Elasticsearch集群问题的方法及装置 Download PDF

Info

Publication number
CN111026574A
CN111026574A CN201911163627.8A CN201911163627A CN111026574A CN 111026574 A CN111026574 A CN 111026574A CN 201911163627 A CN201911163627 A CN 201911163627A CN 111026574 A CN111026574 A CN 111026574A
Authority
CN
China
Prior art keywords
diagnosis
item
target
information
sub
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.)
Granted
Application number
CN201911163627.8A
Other languages
English (en)
Other versions
CN111026574B (zh
Inventor
周朝卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongying Youchuang Information Technology Co Ltd
Original Assignee
Zhongying Youchuang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongying Youchuang Information Technology Co Ltd filed Critical Zhongying Youchuang Information Technology Co Ltd
Priority to CN201911163627.8A priority Critical patent/CN111026574B/zh
Publication of CN111026574A publication Critical patent/CN111026574A/zh
Application granted granted Critical
Publication of CN111026574B publication Critical patent/CN111026574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Abstract

本申请公开了一种诊断Elasticsearch集群问题的方法及装置,该方法包括:接收用户输入的诊断参数;根据诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API,所述API用于获取对应的诊断项的信息;通过所述目标API获取对应的目标诊断项的信息;根据所述目标诊断项的信息判断目标诊断项是否出现问题;如果目标诊断项出现问题,则通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据所述子项信息,确定目标诊断项出现问题的原因。本申请可以节约诊断Elasticsearch集群问题的时间。

Description

诊断Elasticsearch集群问题的方法及装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种诊断Elasticsearch集群问题的方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
Elasticsearch是一个搜索服务器,其提供了一种分布式多用户能力的全文搜索引擎。Elasticsearch提供了丰富的应用程序接口(Application Programming Interface,API)来管理集群、节点、索引和元数据等,以及查看集群、节点和索引等的健康状态和统计信息。但是由于API的接口非常多,用户往往难以记忆每个API的使用方法及功能。当Elasticsearch集群出现问题时,用户通常需要查阅相关文档来查找API的使用信息,再使用API获取Elasticsearch的健康状态和统计信息,进而确定Elasticsearch集群出现问题的原因,这往往需要耗费大量的时间。
发明内容
本申请实施例提供一种诊断Elasticsearch集群问题的方法,用以节约诊断Elasticsearch集群问题的时间,该方法包括:
接收用户输入的诊断参数;从封装的所有用于诊断Elasticsearch集群问题的API中确定目标API,所述API用于获取对应的诊断项的信息;通过所述目标API获取对应的目标诊断项的信息,所述目标诊断项的信息包括状态参数和/或数据参数;根据所述状态参数和/或数据参数判断目标诊断项是否出现问题;如果目标诊断项出现问题,则通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据所述子项信息,确定目标诊断项出现问题的原因。
本申请实施例还提供一种诊断Elasticsearch集群问题的装置,用以节约诊断Elasticsearch集群问题的时间,该装置包括:
接收模块,用于接收用户输入的诊断参数;获取模块,用于根据接收模块接收的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API,所述API用于获取对应的诊断项的信息;所述获取模块,还用于通过所述目标API获取对应的目标诊断项的信息;判断模块,用于根据获取模块获取的所述目标诊断项的信息判断目标诊断项是否出现问题;确定模块,用于当判断模块判断目标诊断项出现问题时,通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据所述子项信息,确定目标诊断项出现问题的原因。
本申请实施例中,将所有用于诊断Elasticsearch集群问题的API封装在一起,并通过定义的诊断参数来调用相应的API获取诊断项的信息,与现有技术中需要用户耗费大量时间了解大量API的使用方法及功能相比,本申请实施例中无需用户关心底层API即可获取所需的诊断项的信息及Elasticsearch集群问题的出现原因,节省了用户时间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例中一种诊断Elasticsearch集群问题的方法的流程图;
图2为本申请实施例中一种诊断Elasticsearch集群问题的装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本申请实施例做进一步详细说明。在此,本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。
本申请实施例提供一种诊断Elasticsearch集群问题的方法,如图1所示,该方法包括步骤101至步骤105:
步骤101、接收用户输入的诊断参数。
诊断参数是用户预先设置的,其用于调用相关联的API。
示例性的,直接使用Elasticsearch集群自带的底层API查看集群的健康状态,请求调用API的脚本为:curl-XGET http://192.168.118.200:19200/_cat/health?v;查看集群的状态信息,请求调用API的脚本为:curl-XGET http://192.168.118.200:19200/_cluster/stats/。而使用本申请实施例中的方案,使用python语言对API进行封装,统一的执行脚本为access.py,查看集群的健康状态可以使用命令:./bin/access.py clusterhealth,其中,cluster和health是用户输入的诊断参数;查看集群的状态信息时,只需要输入与状态对应的诊断参数即可:./bin/access.py cluster state。对比现有技术中使用的脚本与本申请实施例用户输入的诊断参数可见,现有技术中提供的脚本复杂难以记忆,且输入过程中很容易出错,本申请实施例提供的方案则不会出现上述问题。
考虑到Elasticsearch集群中用于诊断问题的API众多,而用户可能无法了解调用每一个API的诊断参数,为了便于不了解诊断参数的用户快速获取调用API的诊断参数,本申请实施例中,在接收用户输入的诊断参数之前,还可以接收用户输入的请求帮助指令;响应于请求帮助指令,诊断装置则显示用于获取每个诊断项的信息的诊断参数和诊断项的对应关系,用户可以从该对应关系中选择所需的诊断参数使用。
示例性的,用户输入的请求帮助指令可以为“help”,完整的查看帮助命令为:./bin/access.py help,响应信息如下所示:
Figure BDA0002286826160000031
Figure BDA0002286826160000041
其中,三级选项为二级选项的子选项,也即使用二级选项查找到的内容包含多个三级选项的内容。
Elasticsearch对外提供的API是以HTTP协议、通过JSON格式以表述性状态传递(Representational State Transfer,REST)服务对外提供服务。当用户输入诊断参数之后,与预设的前缀(如./bin/access.py)生成调用指令,诊断装置根据调用指令调用Elasticsearch集群的REST API来执行。其中REST为开发的一种约定,当开发者都遵循这种约定的时候,可大大简化开发沟通的成本。REST的标准方法有Post、Get、Put、Delete,对应CRUD(Create、Read、Update、Delete)四种数据操作。
步骤102、根据诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API。
其中,API用于获取对应的诊断项的信息。
其中,诊断项包括集群的健康状态、CPU利用率、内存使用率、磁盘空间占用率、查询速度、分片分配情况、分片恢复状态是否正常、节点服务是否正常和参数是否合理等。
在本申请实施例中,预先将所有用于诊断Elasticsearch集群问题的API封装在一起,并设置用于触发每个API的诊断参数,当用户输入诊断参数之后,诊断装置可以根据诊断参数确定对应的目标API,这样用户只需要输入诊断参数即可方便快捷的调用相关的API,而无需再去了解所需使用的API的使用信息并按照使用信息调用API。
API的封装方式多种多样,可基于Python、Java等语言对相关的API进行封装,用户只需要输入相关参数即可调用API获取诊断项的信息。
步骤103、通过目标API获取对应的目标诊断项的信息。
目标诊断项的信息用于从整体上判断目标诊断项是否出现问题,也就是对Elasticsearch集群进行整体诊断,确定其包含的目标诊断项是否出现问题,以便于后续确定导致目标诊断项出现问题的原因。
为了方便用户对目标诊断项的情况有更加清晰的认知,在本申请实施例中,在通过目标API获取对应的目标诊断项的信息之后,还将该目标诊断项的信息显示给用户查看。示例性的,获取的诊断项的信息如下所示:
Figure BDA0002286826160000051
Figure BDA0002286826160000061
Figure BDA0002286826160000071
Figure BDA0002286826160000081
Figure BDA0002286826160000091
从上述诊断项的信息中可以看出,通过API获取的诊断项的信息是JSON(JavaScript Object Notation)格式,且多层嵌套,其中包含很多无用的信息,用户需要对每个API返回的信息做规整以方便从中筛选关键信息,如“status:yellow”,这个过程不但费时费力,还容易出现错误。因此,可以按照预设的关键字从目标诊断项的信息中提取与关键字对应的关键信息,并显示关键信息。这样,用户就可以直接获取到所需信息而无需自己进行筛选,节省了时间。
需要说明的是,关键字由用户自行设置,对于关键字的具体内容,在此不做限定。
示例性的,查看集群的健康状态时,得到的诊断项的信息如下所示:
epoch timestamp cluster status node.total node.data shards pri reloinit unassign pending_tasks max_task_wait_time active_shards_percent
1572187357 14:42:37 elasticsearch yellow 1 1 393 393 00 385 0 -50.5%
通过关键字“集群名称”、“集群状态”和“总节点数”等,从上述诊断项的信息中提取出的关键信息如下表一所示:
表一
Figure BDA0002286826160000092
Figure BDA0002286826160000101
需要说明的是,关键信息可以以上述表格的形式显示,还可以以文字列表或图像等多种形式显示,上述表格形式不应作为对关键信息的显示形式的限定。
示例性的,当获取Elasticsearch集群的相关信息的时候,输入的诊断参数为:cluster[type][params],其中,cluster表示为获取集群相关信息,type为集群相关信息的类型,可取值health、state或stats。health为查看集群的健康状况,state为查看集群总体状态信息,stats为查看集群总体统计信息。param紧接着type参数,可更细致的查看每种类型的相关信息。param个数为0到多个。当state和stats后附加的param个数为0时,则返回所有状态信息或所有统计信息。
例如,当查看Elasticsearch集群的健康状态时,使用命令:./bin/access.pycluster health,通过API返回的响应信息经过关键字提取后如下表二所示:
表二
Figure BDA0002286826160000102
当查看Elasticsearch集群总体状态信息时,使用命令:./bin/access.pycluster state[params],param参数可包含的内容如下表三所示:
表三
Figure BDA0002286826160000103
Figure BDA0002286826160000111
以param参数为nodes为例,调用API的命令为:./bin/access.py cluster statenodes,返回的响应信息经过关键字提取后得到的内容如下表四所示:
表四
Figure BDA0002286826160000112
当查看Elasticsearch集群总体统计信息时,使用命令:./bin/access.pycluster stats[params],params参数可包含的内容如下表五所示:
表五
Figure BDA0002286826160000113
Figure BDA0002286826160000121
以param参数为jvm为例,查看节点的jvm内存使用情况调用API的命令为:./bin/access.py cluster stats nodes jvm,返回的响应信息经过关键字提取后得到的内容如下表六所示:
表六
版本 虚拟机名称 使用内存 最大内存 线程数
1.8.0_151 Java HotSpot(TM)64-Bit Server VM 26G 128G 322
步骤104、根据目标诊断项的信息判断目标诊断项是否出现问题。
其中,目标诊断项的信息包括状态参数和/或数据参数。也就是说,目标诊断项的信息中可能包含状态参数或者数据参数中的一类,也可能同时包含状态参数和数据参数。
具体的,根据目标诊断项的信息判断目标诊断项是否出现问题,包括:根据状态参数确定目标诊断项是否出现问题;和/或,将数据参数与预设的基线进行对比,确定目标诊断项是否出现问题。
目标诊断项的信息中包含状态参数和/或数据参数,状态参数分为正常状态的参数和异常状态的参数,通过状态参数可以直接诊断出异常问题。示例性的,Elasticsearch集群包含三种健康状态,分别为green、yellow和red,其中,green用于指示集群正常运行,功能齐全;yellow用于指示集群中数据均可用,但存在异常的副本分片,集群功能齐全;red用于指示集群中某些数据可能由于某些原因不可用,集群功能部分生效。如表一中所示的获取的集群状态为yellow,通过“yellow”即可直接确定集群存在异常的副本分片问题。此外,状态参数还包括未分配分片数,当存在未分配分片数时,即可确定分片的分配存在问题。至于为何集群状态为yellow、为何存在未分配的分片等问题,则需要按照步骤105中提供的方法进行详细诊断。
数据参数是需要与预设的基线进行比对来确定是否出现问题的参数,其多为与节点性能指标相关的参数,如CPU利用率、内存利用率、磁盘空间占用率、打开的文件句柄数以及查询数据耗时等。示例性的,比如,CPU利用率的基线设置如下:CPU利用率大于等于90%为严重告警状态,大于等于70%小于90%为告警状态,小于70%为正常状态,当CPU利用率出现严重告警状态或告警状态时,CPU出现问题。
对于每种数据参数各自对应的基线,可以由用户根据业内公认的Elasticsearch集群正常运行时的运行参数范围自行设置,也可以根据用户自身对于Elasticsearch集群的使用情况进行设置,对于每种数据参数对应基线的具体设置情况,在此不做限定。
步骤105、如果目标诊断项出现问题,则通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据子项信息,确定目标诊断项出现问题的原因。
示例性的,如果通过步骤104中的整体诊断确定CPU出现问题,其利用率过高,导致其出现利用率高的可能原因是线程或索引,则线程即为一个诊断子项,索引为另一个诊断子项。
用于获取线程的信息的诊断参数为hot_threads[nodes_id],其中,hot_threads表示用于诊断CPU利用率高的原因,在[nodes_id]中写入节点id,多个节点id以逗号分隔。例如,调用诊断线程的API的命令为:./bin/access.py hot_threads nxXlIU_bQlW0XdfLmoMXVw,得到的响应信息如下表七所示:
表七
Figure BDA0002286826160000131
Figure BDA0002286826160000141
从上述响应信息中可以看出,节点nxXlIU_bQlW0XdfLmoMXVw的“入库(bulk)”占用了65.3%的CPU内存,可见,经过详细诊断,bulk是导致CPU利用率高的原因。
对于索引的诊断包括对索引统计信息的诊断以及对索引恢复信息的诊断。
(1)索引统计信息提供了有关索引上发生的不同的操作,诊断参数为index_stats[index_name][params],其中,index_stats表示查询索引统计信息,index_name为索引名称,param参数为可选参数,用于指示返回特定的统计信息。param可取值如下表八所示:
表八
Figure BDA0002286826160000142
以param参数为translog为例,查看事务日志统计信息调用API的命令为:./bin/access.py index_stats index1translog,返回的响应信息经过关键字提取后得到的内容如下表九所示:
表九
操作数 大小 未提交的大小 未提交的操作数
0 275 275 0
从上述表九中可以看出,当前索引上发生了275个操作,操作数量较多,其是导致CPU利用率高的原因之一。
(2)索引恢复信息提供正在进行的索引Shard恢复的深入了解,诊断参数为index_recovery[index_name]。查看索引恢复信息的命令为:./bin/access.py index_recoveryindex1,返回的响应信息经过关键字提取后得到的内容如下表十所示:
表十
已恢复的shard数量 正在恢复的总shard数量 恢复占比 启动的shard总数 总耗时
245 0 100% 0 2s
索引恢复过程中会占用CPU,而从上述表十中可以看出,当前正在恢复的总shard数量为0,则可以排除由于索引恢复导致的CPU利用率高。
再如,当通过步骤104确定分片分配出现问题,则对其进行详细诊断,诊断参数为:explain[index_name],其中,explain表示诊断分片分配,[index_name]为输入的索引名称。使用的命令为:./bin/access.py explain mytest,返回的响应信息经过关键字提取后得到的内容如下表十一所示:
表十一
Figure BDA0002286826160000151
通过上表八的内容可以看出,导致分片没有分配的原因是节点不允许分配。如果有分片没有分配,Elasticsearch集群是能够感知到的,可以理解为在系统索引里面记录一条错误日志,这条日志描述了为何分片没有分配,上述表十一中的分配描述即为错误日志。
如果使用Elasticsearch的底层API,就需要使用专门的查看分片没有分配的API,带上索引的名称。
例如底层的API如下:
Figure BDA0002286826160000152
Figure BDA0002286826160000161
上述程序用于查看index为mytest的索引的分片没有分配的原因。
返回结果如下:
Figure BDA0002286826160000162
Figure BDA0002286826160000171
可以看出,上述返回结果中包含表十一中分配描述的内容,如果直接查看程序的话,用户还需要自行从程序中提取该分配描述,采用关键字提取则可以得到表十一中易于用户查看的内容,节省了用户提取信息的时间。
再如,当通过步骤104确定查询速度出现问题,查询速度慢,则对该问题进行详细诊断,该过程可类比于关系型数据库的执行计划。诊断参数为profile[query],其中,profile表示用于诊断查询慢的原因,[query]表示输入的查询的语句。调用API的命令为:./bin/access.py profile"″"{"term":{"name":{"value":"john"}}"″",返回的响应信息经过关键字提取后得到的内容如下表十二所示:
表十二
Figure BDA0002286826160000172
从上述响应信息上看,上述查询、rewrite和collector等均耗时时间较长,上述三项是导致查询慢的原因。
在本申请实施例的一种实现方式中,如果目标诊断项出现问题,则显示与问题关联的诊断子项及对应的诊断参数,并提示用户输入诊断子项对应的诊断参数进行详细诊断;接收用户输入的诊断子项对应的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的API中确定子目标API;通过子目标API查询与问题关联的诊断子项的子项信息。也就是说,可以由诊断装置根据整体诊断的结果自动输入预设的诊断参数进行详细诊断,还可以由用户输入诊断参数触发详细诊断。
由于Elasticsearch集群没有主动报错机制,因此,用户不能确定Elasticsearch集群是否出现了问题,以及哪个诊断项出现了问题,也就意味着,用户输入目标诊断项对应的诊断参数进行诊断时,可能得到目标诊断项没有问题的诊断结果。在这种情况下,则提示用户输入除目标诊断项外的其他诊断项对应的诊断参数。
本申请实施例中,将所有用于诊断Elasticsearch集群问题的API封装在一起,并通过定义的诊断参数来调用相应的API获取诊断项的信息,与现有技术中需要用户耗费大量时间了解大量API的使用方法及功能相比,本申请实施例中无需用户关心底层API即可获取所需的诊断项的信息及Elasticsearch集群问题的出现原因,节省了用户时间。
本申请实施例还提供了一种诊断Elasticsearch集群问题的装置,如图2所示,该装置包括接收模块201、获取模块202、判断模块203和确定模块204。
其中,接收模块201,用于接收用户输入的诊断参数。
获取模块202,用于根据接收模块201接收的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API,API用于获取对应的诊断项的信息。
获取模块202,还用于通过目标API获取对应的目标诊断项的信息。
判断模块203,用于根据获取模块202获取的目标诊断项的信息判断目标诊断项是否出现问题。
确定模块204,用于当判断模块203判断目标诊断项出现问题时,通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据子项信息,确定目标诊断项出现问题的原因。
在本申请实施例的一种实现方式中,接收模块201,还用于接收用户输入的请求帮助指令。
显示模块205,用于显示用于获取每个诊断项的信息的诊断参数和诊断项的对应关系。
在本申请实施例的一种实现方式中,装置200还包括:
提取模块206,用于按照预设的关键字从获取模块202获取的目标诊断项的信息中提取关键信息。
显示模块205,用于显示提取模块206提取的关键信息。
在本申请实施例的一种实现方式中,目标诊断项的信息包括状态参数和/或数据参数,判断模块203,用于:
根据状态参数确定目标诊断项是否出现问题;
和/或
将数据参数与预设的基线进行对比,确定目标诊断项是否出现问题。
在本申请实施例的一种实现方式中,如果目标诊断项出现问题,则确定模块204,用于:
如果目标诊断项出现问题,则显示与问题关联的诊断子项及对应的诊断参数,并提示用户输入诊断子项对应的诊断参数进行详细诊断;
接收用户输入的诊断子项对应的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的API中确定子目标API;
通过子目标API查询与问题关联的诊断子项的子项信息。
在本申请实施例的一种实现方式中,装置200还包括:
提示模块207,用于当判断模块203判断目标诊断项没有问题时,提示用户输入除目标诊断项外的其他诊断项对应的诊断参数。
本申请实施例中,将所有用于诊断Elasticsearch集群问题的API封装在一起,并通过定义的诊断参数来调用相应的API获取诊断项的信息,与现有技术中需要用户耗费大量时间了解大量API的使用方法及功能相比,本申请实施例中无需用户关心底层API即可获取所需的诊断项的信息及Elasticsearch集群问题的出现原因,节省了用户时间。
本申请实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现步骤101至步骤105任一方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行步骤101至步骤105任一方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种诊断Elasticsearch集群问题的方法,其特征在于,所述方法包括:
接收用户输入的诊断参数;
根据诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API,所述API用于获取对应的诊断项的信息;
通过所述目标API获取对应的目标诊断项的信息;
根据所述目标诊断项的信息判断目标诊断项是否出现问题;
如果目标诊断项出现问题,则通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据所述子项信息,确定目标诊断项出现问题的原因。
2.根据权利要求1所述的方法,其特征在于,在接收用户输入的诊断参数之前,所述方法还包括:
接收用户输入的请求帮助指令;
显示用于获取每个诊断项的信息的诊断参数和诊断项的对应关系。
3.根据权利要求1所述的方法,其特征在于,在通过所述目标API获取对应的目标诊断项的信息之后,所述方法还包括:
按照预设的关键字从目标诊断项的信息中提取关键信息;
显示所述关键信息。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述目标诊断项的信息包括状态参数和/或数据参数,根据目标诊断项的信息判断诊断项是否出现问题,包括:
根据所述状态参数确定目标诊断项是否出现问题;
和/或
将所述数据参数与预设的基线进行对比,确定目标诊断项是否出现问题。
5.根据权利要求4所述的方法,其特征在于,如果目标诊断项出现问题,则通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息,包括:
如果所述目标诊断项出现问题,则显示与问题关联的诊断子项及对应的诊断参数,并提示用户输入诊断子项对应的诊断参数进行详细诊断;
接收用户输入的诊断子项对应的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的API中确定子目标API;
通过子目标API查询与问题关联的诊断子项的子项信息。
6.根据权利要求1所述的方法,其特征在于,在根据所述目标诊断项的信息判断目标诊断项是否出现问题之后,所述方法还包括:
如果所述目标诊断项没有问题,则提示用户输入除目标诊断项外的其他诊断项对应的诊断参数。
7.一种诊断Elasticsearch集群问题的装置,其特征在于,所述装置包括:
接收模块,用于接收用户输入的诊断参数;
获取模块,用于根据接收模块接收的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API,所述API用于获取对应的诊断项的信息;
所述获取模块,还用于通过所述目标API获取对应的目标诊断项的信息;
判断模块,用于根据获取模块获取的所述目标诊断项的信息判断目标诊断项是否出现问题;
确定模块,用于当判断模块判断目标诊断项出现问题时,通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据所述子项信息,确定目标诊断项出现问题的原因。
8.根据权利要求7所述的装置,其特征在于,
所述接收模块,还用于接收用户输入的请求帮助指令;
显示模块,用于显示用于获取每个诊断项的信息的诊断参数和诊断项的对应关系。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
提取模块,用于按照预设的关键字从获取模块获取的目标诊断项的信息中提取关键信息;
显示模块,用于显示所述提取模块提取的所述关键信息。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述目标诊断项的信息包括状态参数和/或数据参数,所述判断模块,用于:
根据所述状态参数确定目标诊断项是否出现问题;
和/或
将所述数据参数与预设的基线进行对比,确定目标诊断项是否出现问题。
11.根据权利要求10所述的装置,其特征在于,如果目标诊断项出现问题,则确定模块,用于:
如果所述目标诊断项出现问题,则显示与问题关联的诊断子项及对应的诊断参数,并提示用户输入诊断子项对应的诊断参数进行详细诊断;
接收用户输入的诊断子项对应的诊断参数,从封装的所有用于诊断Elasticsearch集群问题的API中确定子目标API;
通过子目标API查询与问题关联的诊断子项的子项信息。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
提示模块,用于当判断模块判断所述目标诊断项没有问题时,提示用户输入除目标诊断项外的其他诊断项对应的诊断参数。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一所述方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一所述方法的计算机程序。
CN201911163627.8A 2019-11-25 2019-11-25 诊断Elasticsearch集群问题的方法及装置 Active CN111026574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911163627.8A CN111026574B (zh) 2019-11-25 2019-11-25 诊断Elasticsearch集群问题的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911163627.8A CN111026574B (zh) 2019-11-25 2019-11-25 诊断Elasticsearch集群问题的方法及装置

Publications (2)

Publication Number Publication Date
CN111026574A true CN111026574A (zh) 2020-04-17
CN111026574B CN111026574B (zh) 2024-03-12

Family

ID=70201929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911163627.8A Active CN111026574B (zh) 2019-11-25 2019-11-25 诊断Elasticsearch集群问题的方法及装置

Country Status (1)

Country Link
CN (1) CN111026574B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631817A (zh) * 2020-12-23 2021-04-09 杭州海康威视系统技术有限公司 一种问题诊断方法、系统及电子设备
CN113507450A (zh) * 2021-06-17 2021-10-15 国网电力科学研究院有限公司 一种基于参数特征向量的内外网数据过滤方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683446A (zh) * 2015-01-29 2015-06-03 广州杰赛科技股份有限公司 一种云存储集群节点服务状态实时监控方法和系统
CN105468709A (zh) * 2015-11-19 2016-04-06 中国建设银行股份有限公司 基于HBase的数据查询装置及数据查询方法
CN106776878A (zh) * 2016-11-29 2017-05-31 西安交通大学 一种基于ElasticSearch对MOOC课程进行分面检索的方法
CN107729210A (zh) * 2017-09-29 2018-02-23 百度在线网络技术(北京)有限公司 分布式服务集群的异常诊断方法和装置
CN107908653A (zh) * 2017-10-12 2018-04-13 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN108520037A (zh) * 2018-03-30 2018-09-11 新华三大数据技术有限公司 数据查询方法、装置及数据可视化系统
CN109189800A (zh) * 2018-08-16 2019-01-11 北京中科梧桐网络科技有限公司 一种数据层分页查询模型以及查询方法
CN109408337A (zh) * 2018-10-31 2019-03-01 京东方科技集团股份有限公司 一种接口运维的方法及装置
CN110113394A (zh) * 2019-04-19 2019-08-09 浙江数链科技有限公司 Api调用方法和装置
CN110427297A (zh) * 2019-07-10 2019-11-08 西门子工厂自动化工程有限公司 诊断信息获取方法、系统及网关和计算机可读介质
CN110489440A (zh) * 2019-07-29 2019-11-22 腾讯科技(深圳)有限公司 数据查询方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683446A (zh) * 2015-01-29 2015-06-03 广州杰赛科技股份有限公司 一种云存储集群节点服务状态实时监控方法和系统
CN105468709A (zh) * 2015-11-19 2016-04-06 中国建设银行股份有限公司 基于HBase的数据查询装置及数据查询方法
CN106776878A (zh) * 2016-11-29 2017-05-31 西安交通大学 一种基于ElasticSearch对MOOC课程进行分面检索的方法
CN107729210A (zh) * 2017-09-29 2018-02-23 百度在线网络技术(北京)有限公司 分布式服务集群的异常诊断方法和装置
CN107908653A (zh) * 2017-10-12 2018-04-13 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN108520037A (zh) * 2018-03-30 2018-09-11 新华三大数据技术有限公司 数据查询方法、装置及数据可视化系统
CN109189800A (zh) * 2018-08-16 2019-01-11 北京中科梧桐网络科技有限公司 一种数据层分页查询模型以及查询方法
CN109408337A (zh) * 2018-10-31 2019-03-01 京东方科技集团股份有限公司 一种接口运维的方法及装置
CN110113394A (zh) * 2019-04-19 2019-08-09 浙江数链科技有限公司 Api调用方法和装置
CN110427297A (zh) * 2019-07-10 2019-11-08 西门子工厂自动化工程有限公司 诊断信息获取方法、系统及网关和计算机可读介质
CN110489440A (zh) * 2019-07-29 2019-11-22 腾讯科技(深圳)有限公司 数据查询方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BOFEI XIA: "Category-Aware API Clustering and Distributed Recommendation for Automatic Mashup Creation", 《IEEE TRANSACTIONS ON SERVICES COMPUTING》 *
王磊;陈青;高洪雨;马志广;张艳杰;何登森;: "基于大数据挖掘技术的智能变电站故障追踪架构", 电力系统自动化, no. 03 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631817A (zh) * 2020-12-23 2021-04-09 杭州海康威视系统技术有限公司 一种问题诊断方法、系统及电子设备
CN113507450A (zh) * 2021-06-17 2021-10-15 国网电力科学研究院有限公司 一种基于参数特征向量的内外网数据过滤方法及装置

Also Published As

Publication number Publication date
CN111026574B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
US11789943B1 (en) Configuring alerts for tags associated with high-latency and error spans for instrumented software
US11775501B2 (en) Trace and span sampling and analysis for instrumented software
US9778967B2 (en) Sophisticated run-time system for graph processing
CN105765560B (zh) 基于多次跟踪执行的软件组件推荐
US9378114B2 (en) Code analysis method, code analysis system and computer storage medium
US9400700B2 (en) Optimized system for analytics (graphs and sparse matrices) operations
US10872086B2 (en) Selectivity estimation for database query planning
US20070156736A1 (en) Method and apparatus for automatically detecting a latent referential integrity relationship between different tables of a database
Roschke et al. A flexible and efficient alert correlation platform for distributed ids
US11893508B1 (en) Aids for porting predictive models across tenants and handling impact of source changes on predictive models
US20110320431A1 (en) Strong typing for querying information graphs
US20140279972A1 (en) Cleansing and standardizing data
CN112181704A (zh) 一种大数据任务处理方法、装置、电子设备及存储介质
US20080098033A1 (en) Detecting performance degrading design and alogorithm issues in database applications
CN111026574A (zh) 诊断Elasticsearch集群问题的方法及装置
CN113297057A (zh) 内存分析方法、装置及系统
US11580251B1 (en) Query-based database redaction
US11157506B2 (en) Multiform persistence abstraction
US11496376B2 (en) Method and apparatus for processing local hot spot, electronic device and storage medium
CN113448985A (zh) 一种api接口生成方法、调用方法、装置及电子设备
CN113886205A (zh) 数据库性能瓶颈定位分析方法、装置、系统及存储介质
JP6646699B2 (ja) 検索装置及び検索方法
CN111159214A (zh) 一种api的访问方法、装置、电子设备及存储介质
CN114584616B (zh) 一种消息推送方法、装置、电子设备及存储介质
US7668877B1 (en) System and methods for defining a canonical query expression

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