CN112714018B - 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 - Google Patents

基于网关的ElasticSearch搜索服务方法、系统、介质及终端 Download PDF

Info

Publication number
CN112714018B
CN112714018B CN202011577239.7A CN202011577239A CN112714018B CN 112714018 B CN112714018 B CN 112714018B CN 202011577239 A CN202011577239 A CN 202011577239A CN 112714018 B CN112714018 B CN 112714018B
Authority
CN
China
Prior art keywords
cluster
gateway
deployment
user
nodes
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.)
Active
Application number
CN202011577239.7A
Other languages
English (en)
Other versions
CN112714018A (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.)
Shanghai Linkedcare Information Technology Co ltd
Original Assignee
Shanghai Linkedcare 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 Shanghai Linkedcare Information Technology Co ltd filed Critical Shanghai Linkedcare Information Technology Co ltd
Priority to CN202011577239.7A priority Critical patent/CN112714018B/zh
Publication of CN112714018A publication Critical patent/CN112714018A/zh
Application granted granted Critical
Publication of CN112714018B publication Critical patent/CN112714018B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供基于网关的ElasticSearch搜索服务方法、系统、介质及终端。所述方法包括:标准容器化部署ES集群;基于Spring Cloud Gateway部署网关以代理所述ES集群;采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务。本发明解决了现有技术中的ES搜索方法的安全性能不足、访问和管理权限不合理、日志查看不便以及缺乏自动化横向扩展能力等技术问题。本发明通过设置网关代理节点使得ES的安全性能得到加强;通过网关将索引和部门相关联,提高了ES索引管理功能;得益于kubernetes的横向扩容机制,网关/ES数据节点能够调整资源,这样既能够保证在高流量下用户访问顺利,又能够保证低流量下不浪费资源;由于采用监控报警以及日志采集,ES可用性大大加强,运维难度降低。

Description

基于网关的ElasticSearch搜索服务方法、系统、介质及终端
技术领域
本发明涉及互联网搜索服务领域,特别是涉及基于网关的ElasticSearch搜索服务方法、系统、介质及终端。
背景技术
搜索引擎在业界广泛用于搜索信息、日志查询、数据存储等领域,其中ElasticSearch(下文简称ES)是其中最主要的搜索解决方案。然而ES在生产环境中存在各种问题:在安全方面,ES无法对访问进行审查,索引容易被非法删除,却没有日志审计,ES也无法提供基于角色的访问控制和索引管理(RBAC-Role-Based Access Control);在监控报警方面,ES只提供原生的监控指标REST API接口,无法提供监控指标图形化界面展示;在日志采集方面,ES提供了原生日志,但随着节点增多,日志查看十分不方便;在可用性方面,ES部署在物理服务器上,没有自动化横向扩展能力,一旦遇到访问量突增,CPU/内存资源紧缺,需要新增物理服务器并且安装ES,既耗费时间又容易出错。
针对上述ES在生产环境中存在的各种问题,已有的改进方案如下所述:在安全方面,通过修改ES源码或开发ES插件,增加白名单,从而限制部分节点访问ES,但是代码改动只支持部分ES版本,如果ES升级,还需要额外开发;采用nginx作为网关,在提高安全性的同时提高了检索速度,但是该方法基于LUA,编程灵活性较差;采用ES 7.x原生网关,安全性强,支持https且索引按照权限分配,但ES 5.x、ES 6.x不支持LDAP,并且集成需要收费。综上可知,现有技术在提高ES搜索的安全性能方面适用范围小、编程灵活差、且所需成本较高。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于网关的ElasticSearch搜索服务方法、系统、介质及终端,用于解决现有技术中的ES搜索方法的安全性能不足、访问和管理权限不合理、日志查看不便以及缺乏自动化横向扩展能力等技术问题。
为实现上述目的及其它相关目的,本发明的第一方面提供一种基于网关的ElasticSearch搜索服务方法,包括:标准容器化部署ES集群;基于Spring Cloud Gateway部署网关以代理所述ES集群;采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务。
于本发明的第一方面的一些实施例中,所述方法采用LDAP设置用户的账号权限;所述网关基于所设置的权限并结合用户信息以管理用户对所述ES集群的操作。
于本发明的第一方面的一些实施例中,所述网关的部署方式包括分布式网关部署;所述分布式网关部署包括:每个网关节点代理所述ES集群中的一个ES节点,以节约网关代理ES的性能开销。
于本发明的第一方面的一些实施例中,所述方法包括:采用kubernetes部署所述ES集群;所述kubernetes使用statefulset部署ES集群的data节点和master节点;其中,data节点配置有高配CPU、高配内存、固态硬盘且设置有污点,master节点配置有低配CPU、低配内存、NAS存储且不设置污点。
于本发明的第一方面的一些实施例中,所述kubernetes通过比较实际资源使用率和目标资源使用率来决定资源扩容数量。
于本发明的第一方面的一些实施例中,所述方法包括:对所述ES集群采用灾难管理模式。
于本发明的第一方面的一些实施例中,所述方法包括:采集并管理网关审计日志、ES服务日志、ES慢日志,供追踪对所述ES集群进行的操作。
为实现上述目的及其它相关目的,本发明的第二方面提供一种基于网关的ElasticSearch搜索服务系统,包括:ES集群部署模块,标准容器化部署ES集群;网关部署模块,基于Spring Cloud Gateway部署网关以代理所述ES集群;ES集群管理模块,采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务。
为实现上述目的及其它相关目的,本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于网关的ElasticSearch搜索服务方法。
为实现上述目的及其它相关目的,本发明的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述基于网关的ElasticSearch搜索服务方法。
如上所述,本发明提出的基于网关的ElasticSearch搜索服务方法、系统、介质及终端,具有以下有益效果:采用Spring Cloud Gateway网关代理ES,使得ES安全得到明显加强,不仅可以将用户的所有操作都记录在日志里面,而且如果用户不携带LDAP信息,其访问ES会被拒绝以防止非法访问;ES索引管理得到加强,所有索引和部门相关联,各个部门只能操作本角色授权的索引;得益于kubernetes的横向扩容机制,网关/ES数据节点都会调整资源,这样既能够保证在高流量下用户访问顺利,又能够保证低流量下不浪费资源;由于采用普罗米修斯(promethous)监控报警以及ELK日志采集,ES可用性大大加强,运维难度降低。
附图说明
图1显示为本发明一实施例中一种基于网关的ElasticSearch搜索服务方法流程示意图。
图2显示为本发明一实施例中另一种基于网关的ElasticSearch搜索服务方法流程示意图。
图3显示为本发明一实施例中一种基于网关的ElasticSearch搜索服务系统结构示意图。
图4显示为本发明一实施例中电子终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其它实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其它特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本发明的目的在于提供一种基于网关的ElasticSearch搜索服务方法、系统、介质及终端,用于解决现有技术中的ES搜索方法的安全性能不足、访问和管理权限不合理、日志查看不便以及缺乏自动化横向扩展能力等技术问题。
为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
图1显示为本发明实施例的一种基于网关的ElasticSearch搜索服务方法流程示意图,具体包括步骤如下:
步骤S11.标准容器化部署ES集群。具体的,基于云原生的方式对ES集群进行标准容器化部署,从而为所述ES集群提供更丰富可靠的高可用运维手段。可选的标准容器化方式包括:基于swarm进行封装或基于kubernetes(k8s)进行封装。并且,ES(ElasticSearch)集群角色包括:data节点(数据节点)、master节点(主节点)和负载均衡节点,其中,data节点用于存储数据并承担搜索和索引任务;master节点为集群的管理节点,用于维护数据并管理集群各个节点的状态,负载均衡节点主要用于查询负载均衡。
步骤S12.基于Spring Cloud Gateway部署网关以代理所述ES集群。具体的,采用可编程方式,基于Spring Cloud Gateway实现ES搜索服务的落地,具有较高的编程灵活性,不仅可以完成针对特定访问的路由,还可以为所述搜索服务增加索引管理、日志审计、限流/熔断等功能。
步骤S13.采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务。CMDB(Configuration Management Database,配置管理数据库)除包括虚拟机、IP、域名等狭义上的资源类管理外,还包括中间件、ES、企业组织架构、应用拓扑结构等的资源类管理。本实施例采用CMDB可实现对ES集群的精细化分类管理。
图2显示为采用kubernetes(k8s)部署所述ES集群的搜索服务方法流程示意图。由于k8s内部自带负载均衡服务,所以舍去ES集群的负载均衡节点。并且,所述kubernetes使用statefulset部署ES集群的data节点和master节点,其中,data节点配置有高配CPU、高配内存、固态硬盘(SSD,Solid State Disk)且设置有污点(taints),master节点配置有低配CPU、低配内存、NAS存储且不设置污点。本实施方式支持节点自动获取PVC存储,方便ES集群的横向扩容(HPA,horizontal pod autoscaling)。
在本实施例较佳的实施方式中,所述网关部署方式包括分布式网关部署。可选的,采用sidecar模式部署网关,即一个网关节点代理一个ES节点。本实施方式可以有效节约网关代理ES的性能开销。
在一些示例中,所述网关部署方式为集中式网关部署,即采用一个网关代理多个ES集群,网关内部根据URL做出路由转发。
在本实施例较佳的实施方式中,采用k8s负载均衡svc代理网关节点,其中k8s负载均衡svc内置round-robin算法,能够使流量平均分配在所有ES网关节点。
在本实施例较佳的实施方式中,所述方法还包括:采用LDAP设置用户的账号权限;所述网关基于所设置的权限并结合用户信息以管理用户对所述ES集群的操作。具体的,基于LDAP(Lightweight Directory Access Protocol,轻型目录访问协议)目录树指定用户的账号权限,并结合CMDB,从而实现对ES集群基于角色的权限管理。
在本实施例较佳的实施方式中,所述方法还包括:采用K8s HPA机制,通过比较实际资源使用率和目标资源使用率来决定资源扩容数量。举例,在生产环境中对ES配置如下:
cpu.hpa.autoscaling.banzaicloud.io/targetAverageUtilization(目标cpu使用率):"70";
hpa.autoscaling.banzaicloud.io/maxReplicas(副本最大值):"50";
hpa.autoscaling.banzaicloud.io/minReplicas(副本最小值):"10";
memory.hpa.autoscaling.banzaicloud.io/targetAverageUtilization(目标内存使用率):"80";
上述配置表示:节点数量扩容范围为10~50,如果POD(包括网关和ES数据节点)的平均CPU使用率为140%,POD数量会翻倍;如果POD平均内存使用率为40%,POD数量会减半。
由上述举例可知,得益于k8s HPA横向扩容机制,网关/ES数据节点可以自由增加/减少资源数量,这样既能够保证在高流量下用户访问顺利,又能够保证低流量下不浪费资源。
在本实施例较佳的实施方式中,所述方法还包括:在网关/ES节点加入readiness探针,使得只有当网关和ES完全启动后,才能接受用户的请求。本实施方式可有效避免节点还没启动完毕的情况下,用户请求被直接发送至节点,导致请求失败。
在本实施例较佳的实施方式中,所述方法还包括:在ES客户端通过HTTP协议REST接口请求ES服务端的情况下,网关可以获取用户信息,并结合所获取的用户信息和LDAP设置的权限管理用户对所述ES集群的操作。所述用户信息包括但不限于:URL、用户名、密码(http header)、REST方法(POST,GET,DELETE,PUT...)等等。例如,公司LDAP服务可以给出相关用户的部门,网关可以设置为只允许用户访问指定部门的ES系统。又例如,LDAP可设置文档索引delete权限只对ES管理员开放,其他权限对所有人开放,以防其他人误删索引。诸如此类,本实施方式利用网关可以设置用户对ES的访问权限,提高ES搜索服务的安全性和为用户提供服务的多样性、灵活性。
在本实施例较佳的实施方式中,所述方法还包括:通过网关分配索引以实现索引管理。具体的,网关将获得的部门信息与索引相互关联,并将索引和部门信息对应存储于CMDB,这样用户在前端只会看到其所属部门的索引,避免其它部门的信息对用户产生干扰。
在本实施例较佳的实施方式中,所述方法还包括:对并发请求进行限流。可选的,限流的方式有拒绝服务、排队等待、降级等。本实施例基于Spring Cloud Gateway部署的网关主要依靠过滤器实现限流。优选的,Spring Cloud Gateway采用令牌桶算法,结合应用路由对ES请求限流。
在一些示例中,所述方法设置ES业务的优先级别。如将业务分为低优先级别业务和高优先级别业务,其中,低优先级别业务的访问流量不超过整体集群的30%,紧急情况可切断访问;高优先级别业务的访问流量不设限。
在本实施例较佳的实施方式中,所述方法还包括:引入定时任务框架xxl-job,定时通过REST接口抽取ES监控数据插入时序数据库promethous(普罗米修斯),Grafana把promethous时序数据库中的数据展示到前端界面,alert manager对所有组件进行报警。举例,表1为ES的报警指标及其他信息。
表1.ES报警指标
Figure BDA0002864688040000061
在本实施例较佳的实施方式中,所述方法还包括:采集并管理网关审计日志、ES服务日志、ES慢日志,供追踪对所述ES集群进行的操作。具体的,采用经典的ELK(filebeat+kafka+logstash+elasticsearch+kibana)系统采集所述日志。其中,网关审计日志包括:请求体、相应体、URL、用户名、密码(http header)、REST方法(POST,GET,DELETE,PUT...)等等;ES服务日志包括:记录时间、错误等级、java方法、Java类、线程、正文等等;ES慢日志包括:记录查询、DSL执行时间、执行索引、REST API请求体等等。本实施方式通过ELK系统采集所述日志到kibana供运维人员查看,这样可以实现对ES所有操作的可追踪。
在本实施例较佳的实施方式中,所述方法还包括:利用CMDB对ES集群的服务进行平台化管理,所述ES集群的服务包括:集群列表,用于展示ES集群的连接地址、功能、集群状态、节点数量、版本信息、k8s集群信息以及网关信息等;集群部署,业务部门可以自助创建/删除ES集群;索引管理,用于展示索引分区数量/副本数量、提供创建/删/修改副本数量功能;开发工具,类似kibana的dev tools,用于对所选择的集群发送REST请求。
在本实施例较佳的实施方式中,所述方法还包括:对所述ES集群采用灾难管理模式。具体的,每个网关代理两个ES集群,该两个集群日常同时写,但正常情况下只访问其中一个集群;当正常情况访问的ES集群不可用(升级或者灾难发生)时,下线该ES集群,由另一个ES集群提供所需功能服务。
在一些示例中,基于K8s和Spring Cloud Gateway,在同一个k8s集群部署esrally容器,随后登陆esrally对容器内的ES网关压测,对直接访问ES和通过网关访问ES的搜索服务方法的性能进行比较。表2.1为ES配置表,表2.2为指标比较结果,表2.3为性能测试报告。由表2.1~表2.3可知,本发明实施例通过Spring Cloud Gateway网关访问ES集群,有效节约了ES的性能开销。
表2.1 ES配置表
环境 内存(GB) Cpu(m) 节点数量 存储
数据节点 阿里云 8 200 3 SSD
表2.2指标比较结果(+代表增加,-代表减少)
内存消耗 写入吞吐量 写入延迟 搜索吞吐量 搜索延迟
通过网关访问ES +50% +10%
直接访问ES -20% -80% +10%
在一些实施方式中,所述方法可应用于控制器,所述电控单元例如为ARM(Advanced RISC Machines)控制器、FPGA(Field Programmable Gate Array)控制器、SoC(System on Chip)控制器、DSP(Digital Signal Processing)控制器、或者MCU(Microcontroller Unit)控制器等等。在一些实施方式中,所述方法也可应用于包括存储器、存储控制器、一个或多个处理单元(CPU)、外设接口、RF电路、音频电路、扬声器、麦克风、输入/输出(I/O)子系统、显示屏、其它输出或控制设备,以及外部端口等组件的计算机;所述计算机包括但不限于如台式电脑、笔记本电脑、平板电脑、智能手机、智能电视、个人数字助理(Personal Digital Assistant,简称PDA)等个人电脑。在另一些实施方式中,所述方法还可应用于服务器,所述服务器可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以由分布的或集中的服务器集群构成。
综上所述,本发明实施例提出的基于网关的ElasticSearch搜索服务方法具有以下有益效果:ES安全得到明显加强,不仅可以将用户的所有操作都记录在日志里面,而且如果用户不携带LDAP信息,其访问ES会被拒绝以防止非法访问;ES索引管理得到加强,所有索引和部门相关联,各个部门只能操作本角色授权的索引;得益于k8s HPA横向扩容机制,网关/ES数据节点都会调整资源,这样既能够保证在高流量下用户访问顺利,又能够保证低流量下不浪费资源;由于采用普罗米修斯(promethous)监控报警以及ELK日志采集,ES可用性大大加强,运维难度降低。
实施例二
图3显示为本发明实施例中一种基于网关的ElasticSearch搜索服务系统结构示意图,包括:ES集群部署模块31,标准容器化部署ES集群;网关部署模块32,基于SpringCloud Gateway部署网关以代理所述ES集群;ES集群管理模块33,采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务。
需要说明的是,本实施例提供的模块与上文中提供的方法、实施方式类似,故不再赘述。另外需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,ES集群部署模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上ES集群部署模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
实施例三
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序。所述计算机程序被处理器执行时实现所述基于网关的ElasticSearch搜索服务方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
实施例四
图4显示为本发明实施例提供的一种电子终端的结构示意图。本实施例提供的电子终端,包括:处理器41、存储器42、通信器43;存储器42通过系统总线与处理器41和通信器43连接并完成相互间的通信,存储器42用于存储计算机程序,通信器43用于和其它设备进行通信,处理器41用于运行计算机程序,使电子终端执行如上基于网关的ElasticSearch搜索服务方法的各个步骤。
上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其它设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明提供的基于网关的ElasticSearch搜索服务方法、系统、介质及终端,解决了现有技术中的ES搜索方法的安全性能不足、访问和管理权限不合理、日志查看不便以及缺乏自动化横向扩展能力等技术问题。本发明采用Spring Cloud Gateway网关代理ES,使得ES安全得到明显加强,不仅可以将用户的所有操作都记录在日志里面,而且如果用户不携带LDAP信息,其访问ES会被拒绝以防止非法访问;ES索引管理得到加强,所有索引和部门相关联,各个部门只能操作本角色授权的索引;得益于k8s HPA横向扩容机制,网关/ES数据节点都会调整资源,这样既能够保证在高流量下用户访问顺利,又能够保证低流量下不浪费资源;由于采用普罗米修斯(promethous)监控报警以及ELK日志采集,ES可用性大大加强,运维难度降低。因此,本发明有效克服了现有技术中的种种缺点而具有高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (8)

1.一种基于网关的ElasticSearch搜索服务方法,其特征在于,包括:
基于云原生的方式进行标准容器化部署ES集群;标准容器化方式包括:基于kubernetes进行封装;
基于Spring Cloud Gateway部署网关以代理所述ES集群;其中,采用k8s负载均衡svc代理ES集群的ES节点,其中k8s负载均衡svc内置round-robin算法,能够使流量平均分配在所有ES节点;所述Spring Cloud Gateway采用令牌桶算法,结合应用路由对ES请求限流;
采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务;
所述方法还包括:采用K8s HPA机制,通过比较实际资源使用率和目标资源使用率来决定资源扩容数量;
在网关/ES节点加入readiness探针,使得只有当网关和ES完全启动后,才能接受用户的请求
在ES客户端通过HTTP协议REST接口请求ES服务端的情况下,网关可以获取用户信息,并结合所获取的用户信息和LDAP设置的权限管理用户对所述ES集群的操作;其中,所述用户信息包括:URL、用户名、密码以及REST方法;
引入定时任务框架xxl-job,定时通过REST接口抽取ES监控数据插入时序数据库promethous,Grafana把promethous时序数据库中的数据展示到前端界面,alert manager对所有组件进行报警;
利用CMDB对ES集群的服务进行平台化管理,所述ES集群的服务包括:集群列表,用于展示ES集群的连接地址、功能、集群状态、节点数量、版本信息、k8s集群信息以及网关信息;集群部署,业务部门可以自助创建/删除ES集群;索引管理,用于展示索引分区数量/副本数量、提供创建/删/修改副本数量功能;开发工具,用于对所选择的集群发送REST请求;对所述ES集群采用灾难管理模式;其中,该模式包括:每个网关代理两个ES集群,该两个集群日常同时写,但正常情况下只访问其中一个集群;当正常情况访问的ES集群不可用时,下线该ES集群,由另一个ES集群提供所需功能服务。
2.根据权利要求1所述的方法,其特征在于,所述方法采用LDAP设置用户的账号权限;所述网关基于所设置的权限并结合用户信息以管理用户对所述ES集群的操作。
3.根据权利要求1所述的方法,其特征在于,所述网关的部署方式包括分布式网关部署;所述分布式网关部署包括:每个网关节点代理所述ES集群中的一个ES节点,以节约网关代理ES的性能开销。
4.根据权利要求1所述的方法,其特征在于,所述方法包括:采用kubernetes部署所述ES集群;所述kubernetes使用statefulset部署ES集群的data节点和master节点;其中,data节点配置有高配CPU、高配内存、固态硬盘且设置有污点,master节点配置有低配CPU、低配内存、NAS存储且不设置污点。
5.根据权利要求1所述的方法,其特征在于,所述方法包括:采集并管理网关审计日志、ES服务日志、ES慢日志,供追踪对所述ES集群进行的操作。
6.一种基于网关的ElasticSearch搜索服务系统,其特征在于,包括:
ES集群部署模块,基于云原生的方式进行标准容器化部署ES集群;
网关部署模块,基于Spring Cloud Gateway部署网关以代理所述ES集群;其中,采用k8s负载均衡svc代理ES集群的ES节点,其中k8s负载均衡svc内置round-robin算法,能够使流量平均分配在所有ES节点;所述Spring Cloud Gateway采用令牌桶算法,结合应用路由对ES请求限流;
ES集群管理模块,采用CMDB对网关代理的ES集群进行管理,以响应用户请求并提供搜索服务;
基于网关的ElasticSearch搜索服务系统还用于采用K8s HPA机制,通过比较实际资源使用率和目标资源使用率来决定资源扩容数量;
在网关/ES节点加入readiness探针,使得只有当网关和ES完全启动后,才能接受用户的请求;
在ES客户端通过HTTP协议REST接口请求ES服务端的情况下,网关可以获取用户信息,并结合所获取的用户信息和LDAP设置的权限管理用户对所述ES集群的操作;其中,所述用户信息包括:URL、用户名、密码以及REST方法;
引入定时任务框架xxl-job,定时通过REST接口抽取ES监控数据插入时序数据库promethous,Grafana把promethous时序数据库中的数据展示到前端界面,alert manager对所有组件进行报警;
利用CMDB对ES集群的服务进行平台化管理,所述ES集群的服务包括:集群列表,用于展示ES集群的连接地址、功能、集群状态、节点数量、版本信息、k8s集群信息以及网关信息;集群部署,业务部门可以自助创建/删除ES集群;索引管理,用于展示索引分区数量/副本数量、提供创建/删/修改副本数量功能;开发工具,用于对所选择的集群发送REST请求;
对所述ES集群采用灾难管理模式;其中,该模式包括:每个网关代理两个ES集群,该两个集群日常同时写,但正常情况下只访问其中一个集群;当正常情况访问的ES集群不可用时,下线该ES集群,由另一个ES集群提供所需功能服务。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述基于网关的ElasticSearch搜索服务方法。
8.一种电子终端,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如权利要求1至5中任一项所述基于网关的ElasticSearch搜索服务方法。
CN202011577239.7A 2020-12-28 2020-12-28 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 Active CN112714018B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011577239.7A CN112714018B (zh) 2020-12-28 2020-12-28 基于网关的ElasticSearch搜索服务方法、系统、介质及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011577239.7A CN112714018B (zh) 2020-12-28 2020-12-28 基于网关的ElasticSearch搜索服务方法、系统、介质及终端

Publications (2)

Publication Number Publication Date
CN112714018A CN112714018A (zh) 2021-04-27
CN112714018B true CN112714018B (zh) 2023-04-18

Family

ID=75545653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011577239.7A Active CN112714018B (zh) 2020-12-28 2020-12-28 基于网关的ElasticSearch搜索服务方法、系统、介质及终端

Country Status (1)

Country Link
CN (1) CN112714018B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113110917B (zh) * 2021-04-28 2024-03-15 北京链道科技有限公司 基于Kubernetes的数据发现和安全访问方法
CN114039982B (zh) * 2021-09-28 2023-04-07 杭州博盾习言科技有限公司 Node服务器、基于Node服务器实现多Master负载均衡的方法和系统
CN114826882A (zh) * 2022-04-26 2022-07-29 中煤科工集团重庆智慧城市科技研究院有限公司 应用于智慧城市的通讯适配方法及系统
CN115118705B (zh) * 2022-06-28 2024-03-15 重庆大学 一种基于微服务的工业边缘管控平台

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943872A (zh) * 2019-12-31 2020-03-31 上海擎感智能科技有限公司 数据采集服务配置/性能分析方法/系统、介质及服务器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019113216A1 (en) * 2017-12-05 2019-06-13 Agile Stacks Inc. Machine generated automation code for software development and infrastructure operations
CN109828960A (zh) * 2018-12-14 2019-05-31 平安科技(深圳)有限公司 日志库扩容方法、系统、计算机装置及可读存储介质
CN110633186A (zh) * 2019-08-16 2019-12-31 南方电网科学研究院有限责任公司 用于电力计量微服务架构的日志监控系统及实现方法
CN110807038A (zh) * 2019-09-18 2020-02-18 国网江苏省电力有限公司 一种基于Elasticsearch的CMDB信息全文检索方法
CN110704164A (zh) * 2019-09-30 2020-01-17 珠海市新德汇信息技术有限公司 一种基于Kubernetes技术的云原生应用平台构建方法
CN111209011A (zh) * 2019-12-31 2020-05-29 烽火通信科技股份有限公司 一种跨平台的容器云自动化部署系统
CN111327681A (zh) * 2020-01-21 2020-06-23 北京工业大学 一种基于Kubernetes的云计算数据平台构建方法
CN111581635B (zh) * 2020-05-13 2023-09-05 中国民航信息网络股份有限公司 一种数据处理方法及系统
CN111787073B (zh) * 2020-06-18 2023-08-22 庞茂林 一种统一服务的限流熔断平台及其方法
CN112102111B (zh) * 2020-09-27 2021-06-08 华电福新广州能源有限公司 一种发电厂数据智能处理系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943872A (zh) * 2019-12-31 2020-03-31 上海擎感智能科技有限公司 数据采集服务配置/性能分析方法/系统、介质及服务器

Also Published As

Publication number Publication date
CN112714018A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN112714018B (zh) 基于网关的ElasticSearch搜索服务方法、系统、介质及终端
US9971823B2 (en) Dynamic replica failure detection and healing
US10986168B2 (en) Distributed catalog service for multi-cluster data processing platform
US11086531B2 (en) Scaling events for hosting hierarchical data structures
US10326769B2 (en) Extensible multi-tenant cloud-management system and methods for extending functionalities and services provided by multi-tenant cloud-management system
US11550763B2 (en) Versioning schemas for hierarchical data structures
US11132278B2 (en) Application programming interface security validation for system integration testing
JP2018088293A (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
US9438665B1 (en) Scheduling and tracking control plane operations for distributed storage systems
US20150074670A1 (en) Method and system for distributed processing of http requests
US20140108358A1 (en) System and method for supporting transient partition consistency in a distributed data grid
US11080253B1 (en) Dynamic splitting of contentious index data pages
US10013449B1 (en) Validating and non-validating secondary indexes for a table in a non-relational data store
US10102230B1 (en) Rate-limiting secondary index creation for an online table
US9910881B1 (en) Maintaining versions of control plane data for a network-based service control plane
US9875270B1 (en) Locking item ranges for creating a secondary index from an online table
WO2024016624A1 (zh) 多集群访问方法和系统
US20190296962A1 (en) Storage system for network information
CN113204353B (zh) 一种大数据平台组件部署方法及装置
US10466991B1 (en) Computing instance software package installation
US8621260B1 (en) Site-level sub-cluster dependencies
CN112039963B (zh) 一种处理器的绑定方法、装置、计算机设备和存储介质
US20210224102A1 (en) Characterizing operation of software applications having large number of components
CN116016028B (zh) 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备
US11656972B1 (en) Paginating results obtained from separate programmatic interfaces

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Gateway based ElasticSearch search service method, system, medium, and terminal

Effective date of registration: 20231127

Granted publication date: 20230418

Pledgee: China Minsheng Banking Corp Shanghai branch

Pledgor: SHANGHAI LINKEDCARE INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2023310000785

PE01 Entry into force of the registration of the contract for pledge of patent right