诊断Elasticsearch集群问题的方法及装置制造方法及图纸

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

The method and device of diagnosing the problem of elastic search cluster

【技术实现步骤摘要】
诊断Elasticsearch集群问题的方法及装置
本申请涉及互联网
,尤其涉及一种诊断Elasticsearch集群问题的方法及装置。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。Elasticsearch是一个搜索服务器,其提供了一种分布式多用户能力的全文搜索引擎。Elasticsearch提供了丰富的应用程序接口(ApplicationProgrammingInterface,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-XGEThttp://192.168.118.200:19200/_cat/health?v;查看集群的状态信息,请求调用API的脚本为:curl-XGEThttp://192.168.118.200:19200/_cluster/stats/。而使用本申请实施例中的方案,使用python语言对API进行封装,统一的执行脚本为access.py,查看集群的健康状态可以使用命令:./bin/access.pyclusterhealth,其中,cluster和health是用户输入的诊断参数;查看集群的状态信息时,只需要输入与状态对应的诊断参数即可:./bin/access.pyclusterstate。对比现有技术中使用的脚本与本申请实施例用户输入的诊断参数可见,现有技术中提供的脚本复杂难以记忆,且输入过程中很容易出错,本申请实施例提供的方案则不会出现上述问题。考虑到Elasticsearch集群中用于诊断问题的API众多,而用户可能无法了解调用每一个API的诊断参数,为了便于不了解诊断参数的用户快速获取调用API的诊断参数,本申请实施例中,在接收用户输入的诊断参数之前,还可以接收用户输入的请求帮助指令;响应于请求帮助指令,诊断装置则显示用于获取每个诊断项的信息的诊断参数和诊断项的对应关系,用户可以从该对应关系中选择所需的诊断参数使用。示例性的,用户输入的请求帮助指令可以为“help”,完整的查看帮助命令为:./bin/access.pyhelp,响应信息如下所示:其中,三级选项为二级选项的子选项,也即使用二级选项查找到的内容包含多个三级选项的内容。Elasticsearch对外提供的API是以HTTP协议、通过JSON格式以表述性状态传递(RepresentationalStateTransfer,REST)服务对外提供服务。当用户输入诊断参数之后,与预设的前缀(如./bin/access.py)生成调用指令,诊断装置根据调用指令调用Elasticsearch集群的RESTAPI来执行。其中REST为开发的一种约定,当开发者都遵循这种约定的时候,可大大简化开发沟通的成本。REST的标准方法有Post、Get、Put、Delete,对应CRUD(Create、Read、Update、Delete)四种数据操作。步骤102、根据诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API。其中,API用于获取对应的诊断项的信息。其中,诊断项包括集群的健康状态、CPU利用率、内存使用率、磁盘空间占用率、查询速度、分片分配情况、分片恢复状态是否正常、节点服务是否正常和参数是否合理等。在本申请实施例中,预先将所有用于诊断Elasticsearch集群问题的API封装在一起,并本文档来自技高网...

【技术保护点】
1.一种诊断Elasticsearch集群问题的方法,其特征在于,所述方法包括:/n接收用户输入的诊断参数;/n根据诊断参数,从封装的所有用于诊断Elasticsearch集群问题的应用程序编程接口API中确定目标API,所述API用于获取对应的诊断项的信息;/n通过所述目标API获取对应的目标诊断项的信息;/n根据所述目标诊断项的信息判断目标诊断项是否出现问题;/n如果目标诊断项出现问题,则通过与问题关联的目标诊断项中诊断子项对应的API查询子项信息;根据所述子项信息,确定目标诊断项出现问题的原因。/n

【技术特征摘要】
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集群问题的装置,其特征在于,所述装置包括:
接收模块,用于接收用户输入的诊断参数;
获取模块,用于根...

【专利技术属性】
技术研发人员:周朝卫
申请(专利权)人:中盈优创资讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1