运维.索引引擎ElasticSearch.记录一个小异常:received plaintext http traffic on an https channel

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 运维.索引引擎ElasticSearch.记录一个小异常:received plaintext http traffic on an https channel

1. 日常日志

[2024-05-23T09:45:03,336][WARN ][o.e.h.n.Netty4HttpServerTransport] [DESKTOP-6GQSTBC] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:63881}
[2024-05-23T10:06:12,670][WARN ][o.e.h.n.Netty4HttpServerTransport] [DESKTOP-6GQSTBC] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:50163}

2. 原因分析

这两条日志的关键信息如下:

  1. 日志级别为WARN,表示有异常情况
  2. 日志来自o.e.h.n.Netty4HttpServerTransport,即ElasticsearchHTTP服务器组件
  3. 日志内容提示"received plaintext http traffic on an https channel",即在HTTPS通道上接收到了明文HTTP流量
  4. Elasticsearch的应对措施是"closing connection",即关闭了这个连接

所以可以判断,Elasticsearch服务器期望客户端使用HTTPS发送请求,但实际收到的是明文HTTP请求,因此拒绝了这些请求。


同时日志中也提到了请求的源地址和目标地址,这里都是[0:0:0:0:0:0:0:1],即IPv6环回地址,相当于IPv4的127.0.0.1,表示请求来自本机。目标端口为9200,即Elasticsearch的默认端口。

3. 如何处理

3.1 方案1:使用HTTPS请求(√)

使用HTTPS协议访问Elasticsearch而不是HTTP

例如你向创建一个名为test_index的索引,之前你PUT访问的是

http://localhost:9200/test_index,现在将设你如将请求的URL改为https://localhost:9200/test_index,并确保Elasticsearch配置了正确的SSL证书。开发环境下可以直接请求。

3.2 方案2:启用HTTP

默认只能用HTTPS。将Elasticsearch配置为允许HTTP明文通信。可以在elasticsearch.yml配置文件中添加以下内容来启用HTTP

http.port: 9200

找到该位置取消注释即可:

3.2 方案3:设置允许HTTP明文通信(×不推荐)

或者,如果你是在本地开发环境中使用Elasticsearch,也可以考虑禁用SSL以方便使用。这通常很没必要,就算你实在不想用HTTPS请求,你启动HTTP就可以了,而不是禁用SSL。可以在elasticsearch.yml中添加以下配置:

xpack.security.http.ssl:
  enabled: false
...
xpack.security.transport.ssl:
  enabled: false
...


这两种修改配置的方式,需要在修改后重启Elasticsearch服务。不过一帮这样配置只适合开发环境,生产环境中还是要启用SSL以保证安全。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
64 5
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
59 3
|
3月前
|
存储 API 数据库
检索服务elasticsearch索引(Index)
【8月更文挑战第23天】
66 6
|
16天前
|
存储 JSON 关系型数据库
Elasticsearch 索引
【11月更文挑战第3天】
32 4
|
18天前
|
前端开发 JavaScript Java
如何捕获和处理HTTP GET请求的异常
如何捕获和处理HTTP GET请求的异常
|
27天前
|
测试技术 API 开发工具
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
41 8
|
1月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
24 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
2月前
|
自然语言处理 搜索推荐 数据库
高性能分布式搜索引擎Elasticsearch详解
高性能分布式搜索引擎Elasticsearch详解
86 4
高性能分布式搜索引擎Elasticsearch详解
|
1月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
131 0
|
2月前
|
JSON 自然语言处理 数据库
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
概念、ik分词器、倒排索引、索引和文档的增删改查、RestClient对索引和文档的增删改查
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
下一篇
无影云桌面