访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg

这篇具有很好参考价值的文章主要介绍了访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景:

在运维paas云平台时有研发反馈客户端访问elasticsearch服务偶发性的出现报错,提示报错如下:

 ERROR 1 --- [io-8407-exec-35] c.j.b.c.c.e.s.ElasticOperateServiceImpl  : 新增es数据失败

二、问题分析:

报错日志内容核心点如下:

[business-center-msg] [2024-04-09 15:43:26] 2024-04-09 15:43:26.873 ERROR 1 --- [io-8407-exec-35] c.j.b.c.c.e.s.ElasticOperateServiceImpl  : 新增es数据失败
[business-center-msg] [2024-04-09 15:43:26] 
[business-center-msg] [2024-04-09 15:43:26] org.elasticsearch.ElasticsearchStatusException: Unable to parse response body
[business-center-msg] [2024-04-09 15:43:26] 	at 
[2024-04-09 15:43:26] 2024-04-09 15:43:26.882 ERROR 1 --- [io-8407-exec-35] c.j.c.w.c.GlobalExceptionHandler         : 【异常信息】
[business-center-msg] [2024-04-09 15:43:26] 
[business-center-msg] [2024-04-09 15:43:26] com.jxstjh.common.core.exception.ServiceException: es存储失败:Unable to parse response body
[business-center-msg] [2024-04-09 15:43:26] 	at com.jxstjh.business.center.commons.es.service.ElasticOperateServiceImpl.insert(ElasticOperateServiceImpl.java:148) ~[business-center-commons-es-1.0-SNAPSHOT.jar!/:na]
[business-center-msg] [2024-04-09 15:43:26] 	at 
[business-center-msg] [2024-04-09 15:43:26] Caused by: org.elasticsearch.client.ResponseException: method [PUT], host [http://business-es-service.business-center-prod:9200], URI [/original_message/_create/1777603211016941568?version=-4&timeout=1m], status line [HTTP/1.1 413 Request Entity Too Large]
[business-center-msg] [2024-04-09 15:43:26] <html>

[business-center-msg] [2024-04-09 15:43:26] <head><title>413 Request Entity Too Large</title></head>
[business-center-msg] [2024-04-09 15:43:26] <body>
[business-center-msg] [2024-04-09 15:43:26] <center><h1>413 Request Entity Too Large</h1></center>
[business-center-msg] [2024-04-09 15:43:26] <hr><center>nginx/1.19.10</center>
[business-center-msg] [2024-04-09 15:43:26] </body>
[business-center-msg] [2024-04-09 15:43:26] </html>
[business-center-msg] [2024-04-09 15:43:26] 

根据日志报错内容及研发反馈的信息得到如下有用信息:

1、连接elasticsearch服务并请求处理业务是偶发性的提示报错,也就是说明elasticsearch服务是正常的,能正常对外提供服务;
2、日志主要提示报错有Unable to parse response body和nginx服务的413报错;

3、日志里是直接连接elasticsearch服务的,但是日志里却提示请求有过一层nginx服务代理;

需要确认的信息:

1、偶发性请求失败报错有什么规律性,或者是特征?

2、确认请求elasticsearch服务是否走了一层nginx代理服务?

疑问1:

通过与研发进行沟通发现是只要请求大小超过1m时就会提示报错的,通过接口调时报错如下:

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

请求正常的接口情况:

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

疑问2:

检查elasticsearch服务的statfulset控制器yaml文件内容时,确实发现了elasticsearch服务有一层nginx服务做代理,并且时代理了9200端口。

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

 并检查一下elasticsearch服务和nginx服务的配置文件内容:

nginx服务的配置:


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

elasticsearch服务的配置:

[root@business-es-0 config]# cat elasticsearch.yml 
cluster.name: "docker-cluster"
network.host: 0.0.0.0
path.data: /data/data
path.logs: /data/logs

分析总结:

根据上面的分析可以得出来访问elasticsearch服务出现偶发性的报错,就是因为nginx对http请求有大小的限制,nginx服务默认对http请求有1m大小的限制,elasticsearch服务对http请求有100m的限制。所以需要修复该问题的方式就是将nginx服务的http请求大小配置修改为大于1m的配置就可以了。

三、问题处理:

知道原因之后就好出来了,因为elasticsearch服务是采用statfulset控制器部署的,并且nginx服务的配置文件是因为挂载出来的,现在如果要永久性生效nginx的http请求配置,就需要将nginx配置文件给挂载出来,针对k8s的方式有两种方案:

方案一:

创建一个pvc存储,然后将pvc存储里创建nginx.conf配置文件的内容,但是操作起来麻烦,并且不利于维护;

方案二:

创建configmap组件,并绑定nginx.conf配置文件,操作起来简单,也便以维护;

注:这里选择的是方案二。

1、创建configmap:

这里创建configmap是通过前端操作的,也可以后台操作,这里就说明了

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

2、修改elasticsearch服务的yaml文件配置:

声明configmap:

      volumes:
        - name: proxy
          configMap:
            name: proxy
            defaultMode: 420

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

运用configmap:

          volumeMounts:
            - name: proxy
              mountPath: /etc/nginx/nginx.conf
              subPath: nginx.conf

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

然后点击保存即可,保存之后会自动重启elasticsaerch集群的。

四、验证:

等待elasticsearch集群重启完成之后,通知研发进行验证即可。结果时可以请求http头大于1m的请求。

访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg,kubernetes|docker|podman容器化服务,elasticsearch,kubernetes,nginx

到此就分析并处理了该访问elasticsearch服务提示报错问题,希望可以帮助到大家!!!文章来源地址https://www.toymoban.com/news/detail-854704.html

到了这里,关于访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch ES新增字段并赋初始值

    摘要:es head 新增字段并赋值_xiejunna的博客-CSDN博客_es新增字段并赋值

    2024年02月11日
    浏览(31)
  • elasticsearch创建索引失败报错代码提示400

    提示:一个elasticsearch新手使用者的踩坑日记,如果有认知不对的地方还请指教。 elasticsearch创建索引失败报错代码提示400 `提示:索引名称切勿使用大写,否则也会报错,但不是此类报错,大意就是会提示你改为小写 在kibana的dev tool工具或cerebro工具中使用以下方式手动创建索

    2024年02月13日
    浏览(40)
  • Ruoyi框架中在提示认证失败,无法访问系统资源

    解决办法: 方法1:在 SecurityConfig 中设置httpSecurity 配置匿名访问 方法2:在对应的方法或类上面使用@Anonymous注解。 参考文献:http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#%E5%A6%82%E4%BD%95%E4%B8%8D%E7%99%BB%E5%BD%95%E7%9B%B4%E6%8E%A5%E8%AE%BF%E9%97%AE

    2024年02月16日
    浏览(31)
  • ElasticSearch 启动失败无法访问9200

    1、received plaintext http traffic on an https channel, closing connection Netty4HttpChannel 解决 是因为开启了 ssl 认证。 在 ES/config/elasticsearch.yml 文件中把 xpack.security.http.ssl:enabled 设置成 false 即可 2、elasticsearch 账号密码 windows 下直接启动 ElasticSearch ,见到 started 为成功启动,访问 htttp://localh

    2024年02月10日
    浏览(30)
  • Elasticsearch8节点加入集群失败解决方法

    failed to join {cluster-master2}{DDB9zVg8SQ24a0jD7lno2w}{gLNn_SCQTIely-VWU0yOHA}{poc-cluster-master2}………… 在日志里面可以看到,是因为节点之前使用一个UUID加入了集群,现在使用一个新的UUID加入新的集群,这是不允许的。 在 Elasticsearch 集群中,每个节点都有一个唯一的节点标识符,通常被称

    2024年01月21日
    浏览(42)
  • 五-1、elasticsearch集群搭建(ES集群搭建)

    es下载地址 这里我下载的是 集群搭建方法 上传方式有两种 第一种:使用xftp上传 直接拖动过去就可以了。 第二种:使用lrzsz 先安装 切换到要上传的位置 输入命令 选择你要上传的文件 等待上传完成即可 ①解压到指定目录下 ②修改/config下的elasticsearch.yml 加入如下配置 原来

    2023年04月22日
    浏览(42)
  • VS创建项目提示error MSB4018: “VCMessage”任务意外失败。 解决方法

    1------ 已启动生成: 项目: QtWidgetsApplication1, 配置: Release x64 ------ 1C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.Cpp.Platform.targets(57,5): error MSB4018: “VCMessage”任务意外失败。 1C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.Cpp.Platform.targets(57,5): error MSB4018: System.FormatException

    2024年02月15日
    浏览(65)
  • 【ES专题】ElasticSearch集群架构剖析

    个人感觉集群架构其实都有点大同小异,看了这么多集群架构之后,感觉无非要考虑的地方就几点: 使用何种通信协议去同步数据,互相通信 采用何种策略同步数据(异步还是同步) 如何保证一致性,保证到什么程度(【最终一致性】 or【实时一致性 / 强一致性】) 使用何

    2024年02月04日
    浏览(47)
  • ElasticSearch|ES 连接超时及创建连接失败问题定位过程记录

    socket.timeout:等待源端服务器响应超时 ConnectionRefusedError:尝试创建连接被拒绝 ES 集群中某个节点的 ES 主进程被杀(由于服务器内存不足导致),导致该节点 ES 重新拉起,报 “尝试创建连接被拒绝”; ES 集群中某个节点的服务器内存不足,导致该节点 ES 的 cache 被清空,E

    2024年02月04日
    浏览(35)
  • 【ElasticSearch】ES集群搭建、监控、故障转移

    单机的ES做数据存储与搜索,必然面临两个问题: 海量数据存储问题 单点故障问题 因此,考虑使用ES集群: 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点。如此,ES的存储能力就是所有节点存储能力的总和 单点故障问题:将分片数据 在不同

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包