• [问题求助] 华为云elasticsearch集群有没有自定义词库管理接口
    【功能模块】elasticsearch词库管理【操作步骤&问题现象】希望能够调用某个api能够更新elasticsearch词库,如主词库文件、停用词等【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【es产品】【分片功能】这种每天存一点数据 ,创建一个索引有什么优化方案吗?
    【功能模块】【操作步骤&问题现象】1、默认单节点1000,分片满了该如何存储,(考虑不增加节点的)2、数据量很小3. 这种场景建议如何创建索引【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [交流吐槽] Elasticsearch 求更新
    目前官网已经有 Elasticsearch 7.8.1 7.9.0 7.9.1 ,而目前华为镜像站最新版为 7.8.0请大佬们有空更新一下~
  • [技术干货] [问题案例] 客户端连接 ES出现Connection reset by peer问题
    **客户问题** ``` 客户反馈使用spring boot服务使用ES RestHighLevelClient链接ES运行一段时间 就会出现Connection reset by peer,TCP连接中断,业务数据写入失败。 连接关闭有很多原因,是ES服务器端不能完全控制的 有可能关闭了连接,有可能有防火墙,交换机,vpn等,也有可能是keepalive设置问题,更换了连接服务器节点,网络不稳定等。 ``` **我们先回顾下TCP知识** TCP长连接和短连接 ``` TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后, 会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。 ``` TCP保活机制 ``` 保活机制是由一个保活计时器实现的。当计时器被激发,连接一段将发送一个保活探测报文, 另一端接收报文的同时会发送一个ACK作为响应。 如果客户端无响应服务器将中断连接,否则会重置保活计时器。 服务器端Keepalive设置时间30m,Linux有三个参数可以控制保活时间 tcp_keepalive_time(开启keepalive的闲置时长) tcp_keepalive_intvl(keepalive探测包的发送间隔) tcp_keepalive_probes (如果对方不予应答,探测包的发送次数) ``` http-keepalive http-keepalive 是保证一个tcp连接尽可能传递多的报文,每次交互一个报文后就会更新http-keepalive时间,如果http-keepalive时间超时,意味这个这段时间client和server没有报文交互,本端会主动关闭释放连接。 注意tcp-keepalive是一种探测tcp连接状态的保活机制,tcp连接建立后如果不主动关闭,client和server没有发生异常,这个连接理论上是一直存在的, http-keep是保证一个tcp连接上尽可能传递更多的报文,如果http-keepalive时间内没有报文交互是会主动关闭连接的。 客户的建议修复方案。 方式1 ``` 修改RestHighLevelClient连接请求的超时时间 默认1000ms可以尝试增加到10000ms RestClientBuilder builder = RestClient.builder(new HttpHost(endpoint, port)) .setHttpClientConfigCallback(httpClientBuilder-> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)) .setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(10000).setSocketTimeout(60000)); return new RestHighLevelClient(builder); 单个请求修改:request.timeout(TimeValue.timeValueSeconds(60)); ``` 方式2 ``` 可以尝试在spring boot创建一个定时器定期探测下es保持keepAlive @Scheduled(fixedRate = 60000, initialDelay = 60000) public void keepConnectionAlive() { log.debug("Trying to ping Elasticsearch"); try { final long noOfSportsFacilities = restHighLevelClient.status(); log.debug("Ping succeeded for SportsFacilityViewRepository, it contains {} entities", noOfSportsFacilities); } catch (Exception e) { log.debug("Ping failed for SportsFacilityViewRepository"); } } ``` 方式3 ``` 设置RestHighLevelClient keepalive时间,这个实际设置到15分钟 ``` 方式4 ``` 代码层面捕获异常,重试请求 ``` 参考: https://segmentfault.com/a/1190000021057175 https://discuss.elastic.co/t/restclient-connection-reset-by-peer/235134 https://github.com/elastic/elasticsearch/issues/44546 https://stackoverflow.com/questions/52997697/how-to-get-around-connection-reset-by-peer-when-using-elasticsearchs-restclie
  • [技术干货] 【转载】不当使用scroll导致elasticsearch内存暴涨的问题
    某天发现es集群堆内存暴涨,持续在90%以上,并且一直降不下去,持续告警。这种问题首先就是怀疑内存泄漏,但是没有定位出来哪里泄漏了,用jmap dump了一个20G的内存文件下来,使用MAT打开问题分析可以看到SearchService里的ConcurrentHashMap占了78%的内存,打开SearchService的源码,只能是这个activeContexts了:private final ConcurrentMapLong<SearchContext> activeContexts = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency();问题已经有一点眉目了,是用户执行了某些查询导致的内存使用率上升。首先大致了解一下es的search流程,search可以简单理解为分成两个阶段:query和fetch。client节点接收到search请求后,根据查询的索引的shard所在的节点,将search请求异步转发给每个shardquery阶段在每个shard上执行查询,将这个shard上满足条件的doc id和评分的topN返回给client节点,这样client实际拿到了 topN * shard个数 条记录client汇总每个shard返回的doc id和评分,把这些topN再次排序获取到整个查询的topNclient再将 这些topN的doc id发送给对应的shard节点去获取原文,这个过程是fetch(elasticsearch 源码解析与优化实战)ES在query阶段会构造SearchContext,里面保存着这次查询的query语句、排序字段,以及查询过程中需要用到的IndexReader、IndexSearcher等信息。因为fetch阶段也需要通过IndexReader来读取doc id对应的原文,所以在执行完query节点后,searchContext并不会马上释放,而是被放到了 内存中的 activeContexts,也就是造成客户节点内存暴涨的这个ConcurrentHashMap。那这些放在activeContexts中的SearchContext是在什么时候释放的呢?正常情况下是执行完fetch阶段以后就会释放。有两种特殊的情况:第一种: 在执行完query以后,client节点就挂了,后面的fetch就没执行,那不是就没机会释放了么?这么简单的异常处理es肯定是有的,在SearchService的构造中就 启动了一个Reaper(收割机)来清理过期残留的SearchContextthis.keepAliveReaper = threadPool.scheduleWithFixedDelay(new Reaper(), keepAliveInterval, Names.SAME);在Reaper里面把已经超过keepalive的时间还没有使用的SearchContextfree掉这个keepalive的时间可以通过 search.default_keep_alive 设置,默认值5分钟第二种特殊情况 是scroll,如果查询是个scroll查询,那在fetch阶段执行完成后也不能释放SearchContext,因为Scroll还会有下一次fetch来获取下一页的内容,那Scroll查询的SearchContext是在什么时候释放的呢?有两种方式,第一种用户在scroll完了以后主动调用delete接口释放:DELETE /_search/scroll {     "scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==" }第二种方式是等待scroll超时,scroll超时时间是通过发送的scroll请求来决定的,如下面的这个例子,超时时间设置成了1分钟:POST /twitter/_search?scroll=1m {     "size": 100,     "query": {         "match" : {             "title" : "elasticsearch"         }     } }通过以上的分析,activeContexts大量未释放的SearchContext只能有两种可能:1. es社区代码就有bug,在某种特定场景下有泄漏。2. 客户在执行scroll,并且将超时时间设置的巨长。第一点不太好找,先看第二点吧,我们已经dump了堆内存了,未释放SearchContext都能看到,那不就好办了么。首先看到SearchContext里的ScrollContext不是Null,好的,确实是个scroll请求:接下来得看下超时时间了,240分钟!!整整四个小时。问题结论:到这,问题基本已经清楚了,es里并没有内存泄漏,而是客户在使用scroll的时候将超时时间设置成了四个小时,并且在scroll完了以后并没有主动删除context,导致大量SearchContext无法释放。进一步思考:这么容易触发es服务端故障的问题es竟然防不住,有点说不过去啊,新版本是否有改进呢?找了找社区的issue,果然有。1. 增加一个正在执行的scroll context的限制,虽然有点强盗逻辑,但是至少能防住这个问题https://github.com/elastic/elasticsearch/issues/252442. 在scroll完了以后自动将SearchContext释放,不过目前这个还在讨论中,暂未实现,好几年没动静了 ==||https://github.com/elastic/elasticsearch/issues/23269
  • [内容拦截申诉] 论坛[问题求助] 【ES搜索集群】【搜索功能】指定语句无法查询到对应数据
    发文的版块名:云社区 论坛 全部版块 EI企业智能 云搜索服务发文的标题名:[问题求助] 【ES搜索集群】【搜索功能】指定语句无法查询到对应数据帖子内容链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=72312&page=1&extra=#pid314515
  • [内容拦截申诉] [问题求助] 【ES搜索集群】【搜索功能】指定语句无法查询到对应数据
    【功能模块】原帖被误拦截,请尽快恢复【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【ES搜索集群】【搜索功能】指定语句无法查询到对应数据
    【功能模块】使用ES集群服务存储数据 iMaster MAE-TOOL(SetBaseLine)V100R021C10SPC100B008,存储到ES后,在kibana显示iMaster后面的空格变成了一个红色的小点,该点影响正常的wildcard查询,导致结果错误,请相关人员帮忙尽快定位下原因。(该红点无法复制到外面,会自动变成空格),如有结果,联系ywx830750【操作步骤&问题现象】1、2、【截图信息】具体图片看文档附件【日志信息】(可选,上传日志内容或者附件)
  • [生态对接] FusionInsight Elasticsearch对接Kibana
    ## 对接场景 Kibana提供了图形化操作界面,通过可视化界面对Elasticsearch进行索引构建、查询、分析等操作。 本指导适用FusionInsight HD 6.5.1版本 ## 前提条件 已下载安装Kibana。 - 下载Kibana安装包“kibana-oss-6.7.1-linux-x86_64.tar.gz”并上传至任意EsMaster实例所在节点,例如`/opt`目录下。 开源社区下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-oss-6-7-1。 - 解压安装包,并进入对应解压目录。 ``` cd /opt tar -zxvf kibana-oss-6.7.1-linux-x86_64.tar.gz cd kibana-6.7.1-linux-x86_64/ ``` > - 使用Dev Tools功能的用户,需要在elasticsearch组内。 > - 使用其他功能的用户,需要在supergroup组内。 ## 操作步骤 修改配置并启动Kibana。 - 如果当前系统为TaiShan服务器,需要下载Nodejs的ARM版本替换kibana解压目录下的node目录 下载node-v10.15.2-linux-arm64.tar.gz,解压后替换kibana-6.7.1-linux-x86_64下的node。下载地址:https://nodejs.org/dist/v10.15.2/ ``` tar -zxvf node-v10.15.2-linux-arm64.tar.gz -C /opt rm -rf /opt/kibana-6.7.1-linux-x86_64/node/* mv /opt/node-v10.15.2-linux-arm64/* /opt/kibana-6.7.1-linux-x86_64/node/ ``` - 修改`config/kibana.yml`配置,示例如下: ``` #Kibana在Elasticsearch中使用的索引名称。 #若需要启动多个Kibana,请确保不同用户的该配置项内容不重复。 kibana.index: ".kibana" #Kibana服务端口。 server.port: 5601 #当前节点ip,默认localhost。 server.host: "10.1.1.1" #需要访问的Elasticsearch节点IP及端口号,建议配置EsNode1实例的IP和端口号。普通模式下,请将https修改为http。 elasticsearch.hosts: ["https://10.1.1.1:24100"] #直接填写none即可。 elasticsearch.ssl.verificationMode: none #修改xxxxxx为“用户名:密码”的base64转码结果;普通模式不需要此项配置。 elasticsearch.customHeaders: {"custom-proxy-username":"xxxxxx"} #Kibana日志目录,根据实际场景自定义即可,请提前手动创建该文件。 logging.dest: /opt/kibana-6.7.1-linux-x86_64/log/kibana.log #Kibana健康检查周期,请根据实际使用场景合理填写,单位ms。 elasticsearch.healthCheck.delay: 60000 ``` > - elasticsearch.hosts禁止配置EsMaster节点的IP和Port。EsMaster实例为重要的管理进程,为确保Elasticsearch集群稳定性,不允许配置EsMaster节点IP和Port。 > - 因部分java库仍遵循RFC的Base64规定,在进行加密时会增加换行符,请保证elasticsearch.customHeaders配置项中的信息无换行符。 > - 可下载Elasticsearch客户端,导入RestClient二次开发样例,使用com.huawei.fusioninsight.elasticsearch.example.util.Base64Utils工具类进行Base64加密。 > - 请确保Base64转码结果在填写时,只替换“xxxxxx”部分。 例如,当前用户名为test,密码为123,“test:123”转base64后为“dGVzdDoxMjM=”,则配置项填写为:elasticsearch.customHeaders: {"custom-proxy-username":"dGVzdDoxMjM="} - 使用命令`./bin/kibana`启动Kibana > 如需后台运行,可执行如下命令`nohup ./bin/kibana &`启动Kibana: - 查看Kibana日志,确认启动成功后,登录Kibana界面。 在配置的Kibana日志文件中,找到如下类似日志,即表明Kibana已经启动成功,在浏览器输入日志中打印的链接即可,如http://10.1.1.1:5601。 ``` "type":"log","@timestamp":"2019-06-07T07:07:32Z","tags":["status","plugin:elasticsearch@6.7.1","info"],"pid":44252,"state":"green","message":"Status changed from yellow to green - Ready","prevState":"yellow","prevMsg":"Waiting for Elasticsearch"} {"type":"log","@timestamp":"2019-06-07T07:07:32Z","tags":["listening","info"],"pid":44252,"message":"Server running at http://10.1.1.1:5601"} ``` > - create index pattern等操作,Kibana会创建相关索引,默认为".kibana"开头。 > - Kibana会根据健康检查状态进行信息反馈,如果在healthCheck周期内,信息发生变化(例如切换登录用户),可能需要等到下一次healthCheck的反馈结果才会生效;同时,健康检查会发送多个http请求到Elasticsearch,为防止增加Elasticsearch集群的压力,请根据使用场景,合理配置kibana.yml中的健康检查周期,即参数elasticsearch.healthCheck.delay。
  • [分享交流] Grafana和ES打造的Nginx的仪表盘 ———————————————— 版权声明:本文为CSDN博主「CrissCha
    grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库,官网(http://docs.grafana.org/).我们想要打造一套监控平台,因此我在逐渐的完善我的DashBoard系列文章。如果你也对这部分感兴趣那么欢迎来和我一起构建这个仪表盘。监控指标针对入口Nginx,我设计了如下的监控指标:最近的24小时内访问量Top10的国家最近24小时最受欢迎的页面200状态码和404状态码的比例最受欢迎的世界题图展示构建你的DashBoard再开始构建前,我需要先介绍一下都用到了什么基础软件,Nginx,Redis,Logstash,Elasticsearch,Grafana,Pormetheus。那么,要构建这个DashBoard,我们首先要把Elasticsearch作为数据源配置到Grafana中。打开如下地址,然后输入Grafana的管理员用户名和密码进配置。http://grafana服务ip:3000进入配置页面,在左侧选择数据源,选择添加数据源,选择Elasticsearch后,完成配置。配置完成数据后,我们就要选择dashboard的模板了。我们进入dashboard的配置,我们使用 https://grafana.com/grafana/dashboards/11190,模板。接下啦,我们需要输入dashboard的名字,选择Elasticsearch和Prometheus的数据源就可以看到你的监控数据了。看看我们的DashBoard你需要知道的内容上面看完了,那么下面我介绍一下我系统中用到的这些软件的链接关系。Nginx 会将我们定义的log_format写入/var/log/nginx/access_json.log文件,Filebeat会将其作为输入项。Filebeat会将数据输出到RedisLogstash作为Redis数据的过滤将数据存储ElasticsearchGrafana读取Elasticsearch数据源
  • [技术干货] APP Engine如何与ES对接?
    APP Engine与ES对接ES云搜索引擎用于搜索告警记录和设备列表等场景,因此需要完成与ES的对接。对接过程1、申请ES,登录https://www.huaweicloud.com/,搜索“云搜索”。2、查找并记录ES地址和端口。3、登录APP Engine租户管理台,依次选择“管理>应用管理>连接器”,单击名称为云搜索的图标,进入云搜索详情界面。4、新建云搜索连接器,基本信息中的名称可以自定义,地址为步骤2中获取的ES服务器IP和端口,版本号为7。说明:下图中名称为SmartCampus__ES,其中SmartCampus__为租户下的命名空间前缀,只有在ABC的当前租户下创建了命名空间才会显示。默认情况下在ABC的运行环境上安装园区的基线资产和参考应用,不会创建命名空间,下图中名称的输入框不会有不可编辑的前缀,不影响连接器的使用。5、登录APP Engine租户管理台,依次选择“设置 > 系统参数"。修改以下系统参数为上一步创建的连接器名称,系统参数说明如下:表1 ES连接器相关系统参数系统参数系统参数归属的BO或APPDevice_elastic_connector设备BO(Device)Space_elastic_connector空间BO(Space)Organization_elastic_connector组织BO(Organization)AlarmBO_ElasticConnector告警BO(Alarm)SmartCampus__faceAccess_elastic_connector人员通行APP(Person Pass)AuditLog_elastic_connector日志BO(AuditLog)PersonBO_ElasticConnector人员BO(Person)6、返回云搜索连接器的详情页面,点击下图中红色方框标识的刷新按钮,界面提示刷新成功则表示ES对接成功。同步数据库和ES的数据当环境清理数据库时,可能会出现ES数据同步异常的现象,如APP Engine侧ES数据跟数据库的数据不一致,这种情况下需要手动同步数据。1、登录APP Engine租户管理台。2、选择“管理 > 应用管理 > 连接器 > 云搜索”。3、单击连接器名称,进入连接器详情页面。4、单击“管理脚本”,搜索需要同步的脚本,如“Alarm_syncAllAlarmToES”,选择脚本,再单击“保存”。图1 管理脚本5、单击脚本操作列中的“”执行脚本。图2 执行脚本6、人员实例数据增量同步的实现,需要使用redis记录游标,需要通过配置系统参数PersonBO_SyncAllPersonInstanceToES实现,这个参数是redis的key值,人员BO安装好后就需要配置。单击“值”后面的“”,修改参数值,值参考配置如:参数名+时间戳,确保值的唯一性。单击“保存”。登录APP Engine租户管理台。选择“管理>设置>系统参数”。搜索“PersonBO_SyncAllPersonInstanceToES”。单击参数名称进入系统参数详情页面。i.单击“值”后面的“”,修改参数值,值参考配置如:参数名+时间戳,确保值的唯一性。ii.单击“保存”。
  • [技术干货] ES分片介绍
    Elasticsearch之分片数量问题一、Elasticsearch简单介绍需要研究es集群分片的优化,就必须先了解es集群的架构信息和分片构成原理; 集群主要作用:实现负载均衡和高可用的;通过把业务数据分配到不同的服务器中,从而达到压力分散;通过副本的形式,实现高可用;节点:用来运行es实例Es集群:从虚拟概念上说,在同一个网络内,由多个运行的ES实例组成; 从物理角度说:利用多台物理服务虚拟机器,把数据分散的存储;一个集群最重要是为了让业务稳定的运行;Elasticsearch在重新平衡数据时 (例如 发生故障后) 移动分片的速度 取决于分片的大小和数量以及网络和磁盘性能。 二、es集群分片介绍分片作用机制需要理解分片的机制,整理了以下几点: 1、从物理层面上:集群需要多台物理机组成,通过物理机存储数据; 从数据层面上理解:当需要存储索引数据非常大时,需要存放到不同的虚拟机时,把数据分成一片片的;2、分片分为:主分片 和 副本分片(从分片);3、前面说到集群高可用的问题;从分片的作用,在硬件故障时提供数据保护,同时服务于搜索和检索这种只读请求;4、同一台节点(同一虚机机/es实例),不同时存储主分片和从分片;(高可用)什么是分片分配分片分配就是把一个分片指派到集群中某个节点的过程. 为了能处理大规模的文档数据,提供高可用的集群能力, ElasticSearch把索引中的文档拆分成分片, 并把分片分配到集群中的不同节点 1、当主分片(primary shard)分配失败时, 将会导致索引的数据丢失以及不能为该索引写入新的数据.2、当副本分片(replica shard)分配失败时, 如果相应的主分片彻底坏掉(例如磁盘故障)时, 集群将面临数据丢失的困境.3、当分片分配到较慢的节点上时, 数据传输量大的索引将因为这些较慢分片而遭受影响, 从而导致集群的性能降低.查看分片未分配的原因及触发重分配;通过cerebro工具可以看到改集群存在45个未分配到节点上的shard 通过执行curl命令:curl -XGET localhost:9200/_cat/shards? 显示结果:包括索引名称、分片编号、是主分片还是副本分片、未分配原因等 hole 0PUNASSIGNEDCLUSTER_RECOVERED  对未分配的分片触发重分配:(当然未分配的原因存在很多,比如磁盘占用过高,即使触发了重分配也是无法分配到节点;需要对磁盘进行扩容或清理无用数据释放磁盘空间;) 非安全版,节点上执行重分配指令:curl -XPOST 'http://$IP:9200/_cluster/reroute?retry_failed=true'安全版:$SEARCH_GUARD_KIRK_USER:表示安全模式的用户名;curl -s -k $SEARCH_GUARD_KIRK_USER –XPOST 'https://$ES_IP:9200/_cluster/reroute?retry_failed=true' 正常情况下,会把未分配的分片分配到各个节点上;结果:依然存在分片很难分配到节点上;发现有存个别索引的数量很大,而主分片只有10个;一个副本; 这样每个分片约有45G的数据;索引较大,分片存储的数据大,造成分配到节点上慢;elastic官方的建议: 查官网得知;可通过限制索引的文件数和大小,超过建立新的索引存放数据;参考:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/indices-rollover-index.html#indices-rollover-index分片过少如15个节点,5个主分片,1个副本;会造成每个索引最多只能使用10个节点(5个主分片,5个从分片),剩余5节点并没有利用上;资源浪费;如:3节点; 3分主分片,1副本;当数据量较大的时,每个分片就会比较大;这个例子就是上面索引大,分配慢等问题的出现;分片过多带来的问题1. 创建分片慢:es创建分片的速度会随着集群内分片数的增加而变慢。2.集群易崩溃:在触发es 自动创建Index时,由于创建速度太慢,容易导致大量写入请求堆积在内存,从而压垮集群。3. 写入拒绝:分片过多的场景中,如果不能及时掌控业务的变化,可能经常遇到单分片记录超限、写入拒绝等问题。分片数量多少合适?这时候,可能存在疑问,究竟多少的分片合适?分片大小为50GB通常被界定为适用于各种用例的限制但是为了集群的稳定性,一般不会达到这个值;当然这个应该是根据业务场景分析;
  • Elasticsearch-7.3.1编译过程(CentOS 7.6)
    版本信息:服务器型号:TAISHAN 2280 V2操作系统版本:CentOS 7.6软件版本:Java-12-openjdk-12.0.2.9-1.rolling.el7.aarch64elasticsearch-7.3.1Gradle-5.5-all.zip解决问题概述:在CentOS 7.6系统上进行elasticsearch 7.3.1 编译移植,包含编译过程及问题解决方法。
  • [其他] CSS服务常见问题整理-p5
    Q1:es 9200和9300端口;A1:9200端口为外部访问es集群端口,9300为节点之间通讯端口,要在同VPC子网内访问;Q2:套餐包在余额不足,续费后还是提示报警。A2:充值后只是续费时长,没有扩充容量,所以会有提示,请客户新购买套餐即可;Q3:索引资源释放A3:a、在kibana界面的devTools窗口中执行:DELETE /my_index,手动清理;    b、自动化定期清理,可以写定时任务调用清理索引的请求,定期执行。Q4:是否支持自定义安装插件A4 : 目前不支持客户侧自助安装插件;有需求可咨询相关技术人员;Q5:css目前安装了那些分词器;A5:ik分词、泊松分词(只对6.2.3版本)、拼音分词,ICU分词,dynamic synonym分词,stconvert 分词Q6:云搜索服务Kibana监控板加载慢或加载不出;A6:出现的原因:客户侧浏览器缓存问题,非故障问题。解决方案:短期:建议客户清理浏览器缓存,kibana恢复访问长期:CPU负载过高,建议客户扩容节点Q7:在kibana里面执行从一个索引重新索引到另一个索引  "statusCode": 504;A7:客户单节点集群,请求体不合理;双副本的index有shard未分配,集群状态yellow。先扩容一个节点,集群状态恢复green,然后提供合理的请求体:参考如:POST _reindex{"conflicts": "proceed","source": {"index": "cls_1508212"},"dest": {"index": "cls_1508_v112""version_type": "external"}}Q8:云搜索服务,查询默认最大队列是多少,查询队列最大值与CPU的有没有线性关系A8:查询队列大小默认是1000;  如果只是段时间的高峰,是由于数据量突然增大导致的队列慢,可以通过增加队列长度来解决。 如果是常态,则表明ES处理能力不够,增加队列也没用,需要考虑扩容及调优。 查询队列最大值与CPU没有关系Q9:CSS是否支持自建kibana连接访问A9:CSS内已集成了kibana,不支持自建kibana;Q10:购买折扣套餐后,看不到集群信息数据;A10: 购买套餐后,还需要自行购买相应规格的集群;Q11:购买一个月的套餐,为什么才半个月提示套餐即将使用完;A11:月套餐的提前使用完,主要与三个因素有关系:集群节点中途扩容,集群使用数量,时间;集群中途扩容:如:购买折扣套餐为1节点的套餐*1;创建集群1节点,正常可以使用一个月;月中扩容到2节点,后半个月,两个节点同时消耗该套餐,使得套餐提前使用完毕;集群的数量:如:购买了1节点折扣月套餐*1;正常可以满足一个1节点的集群使用一个月;现创建两个都是1节点的集群;是的只能使用半个月的时间;建议购买多个同规格套餐数量;时间:购买的套餐,只限在当前时间段使用,剩余即作废,提前使用完转为按需收费;Q12:CSS支持的filebeats版本A12:CSS目前仅支持OSS filebeats版本对接;Q13:忘记安全访问密码,需要找回来;A13:用户自行找回密码功能在开发中;如有需要请联系技术人员支持;Q14:当前磁盘空间不足,需要扩容;A14:在console集群列表界面, 列表最右边,”更多“-->”更改规格“执行操作;Q15:自定义localtimestamp,由于无法获取UTC格式,因此上报格式改为为:%Y-%m-%d %H:%M:%S.%f。目前上报内容无法在ES上搜索查看A15:自定义字段类型需遵循既定规范;或者自定义字段当做普通的字符串使用text字段类型;Q16:用自定义主词词库,按照文档创建了utf8 bom编码的txt,然后分行创建了两个词汇:RS485和ABUS。将一个包含“RS485ABUS“文本的字段同步到css中,但是在kibana 中RS485搜索,无法查询出来;只能通过RS485ABUS 搜索才能查询出结果,A16:输入的是一个单词,不是句子,es不会再进行分词,所以搜索的时候必须输入完整的单词才能搜索到;Q17: es在kibana上查看硬盘占用显示磁盘足够,可有空间超过90G,但是日志里面显示磁盘不够,disk threshold would have less than the required threshold of 0b,导致索引无法分配A17:用户根据磁盘空间85%定时清理索引数据,然后新建indx,新建index的时候磁盘没有及时释放,导致创建index时磁盘空间超过阈值,shard无法分配。解决方案:临时方案:触发重新分配,index自动分配到节点。长期:客户优化定时任务,提前释放磁盘空间Q18:CSS是否有限制http连接数;A18:不做限制Q19:CSS集群公网访问方法A19:  6.5.4以上版本开启安全模式后支持绑定弹性IP,具体参考:https://support.huaweicloud.com/usermanual-css/css_01_0076.html5.5.1和6.2.3版本的集群可以参考https://bbs.huaweicloud.com/forum/thread-12072-1-1.html 或者 https://bbs.huaweicloud.com/forum/thread-21639-1-1.htmlQ20:跨region拷贝数据A20:需要把两个region的vpc联通;Q21:ES大数据量下分页的问题A21:大数据量ES查询不建议采用from+size随机分页,在数据量非常大的情况下,from+size分页会把全部记录加载到内存中,这样做不但运行速递特别慢,而且容易让es出现内存不足而挂掉。可以采用scroll滚动分页,但是不支持随机,需要用户进行取舍。Q22:客户的云搜索服务已经新购买套餐包了,但是续费管理那还是显示着即将到期A22:直接新购的套餐包就是按需套餐包,如果买的续费套餐包,它生效时间是必须在之前套餐包有效期之后;Q23:RDS数据如何导入ESA23:1、云上有CDM云迁移服务,支持RDS单表导入CSS服务的ES集群;2、客户可以自己写应用先从RDS读出数据,再调用ES的接口将数据写入ESQ24:es自动创建时间戳方法A24:_timestamp在es5.0之后的版本被废除了,可以通过管道的方式设置:创建pipeline:PUT _ingest/pipeline/timestamp{"processors" : [ {"set" : {"field": "timestamp","value": "{{_ingest.timestamp}}"}} ]}创建索引:PUT newindex/type/3?pipeline=timestamp{"example": "data3"}Q25:集群如何开启安全模式,和下载安全证书A25:集群6.5.4版本及以上版本在创建集群的时候,可开启安全模式并设定密码,安全证书可在集群基本信息中下载;Q26:云搜索服务能否屏蔽只读用户对kibana的访问入口A26:当前还不支持屏蔽只读用户对kibana的访问入口,可以通过开通6.5.4版本集群安全认证来实现对让用户访问的控制。Q27:es集群是否支持绑定弹性IP;A27:es集群暂时不支持绑定弹性IP;Q28:ES是否能够提供接口导数据到客户自建的granafaA28:es提供有读数据接口,需要客户应用从es读数据后再写入granafa,参考https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第047期ElasticSearch-6.3.0安装配置指南
    1、简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方链接:https://www.elastic.co/cn/products/elasticsearch类别:搜索引擎2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包elasticsearch6.3.0https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gzjdk1.8.0yum安装3、依赖安装 安装JDKyum install -y java-1.8.0-openjdk 查看java版本java -version 4、组件编译安装从官网下载elasticsearch并解压wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gztar -xzf elasticsearch-6.3.0.tar.gz5、系统配置   Elasticsearch默认是不允许root用户运行的,添加非root用户。useradd esgroupadd es     修改ES安装目录的权限。chown -R es:es elasticsearch-6.3.0修改/etc/security/limits.conf文件,添加或修改如下行。*        hard    nofile          65536*        soft    nofile           65536修改 /etc/sysctl.conf 文件,添加或修改如下行vm.max_map_count=655360#如果该文件不存在,则应安装initscripts使当前环境设置vm.max_map_count生效sysctl -w vm.max_map_count=655360   修改ES配置禁用xpack.mlecho 'xpack.ml.enabled: false' >> elasticsearch-6.3.0/config/elasticsearch.yml   切换es账号su - es启动ES服务sh elasticsearch-6.3.0/bin/elasticsearch说明:后台启动需要添加-d参数。检查ES端口状态netstat -antlp|grep 9200 6、测试  测试内容:elasticsearch服务是否正常启动  测试结果:启动正常 7、参考信息官方文档:https://www.elastic.co/cn 8、FAQ无
总条数:153 到第
上滑加载中