如何移除RestHighLevelClient产生的Elasticsearch警告日志?
移除Elasticsearch安全警告日志的简便方案
针对你使用RestHighLevelClient(Elasticsearch 7.14.1)时频繁出现的安全未启用警告,以下是无需迁移新API或升级ES的简便解决办法:
方法1:调整日志级别过滤警告
直接通过日志框架将org.elasticsearch.client.RestClient的日志级别从WARN提升至ERROR,这样该类的警告日志就不会被输出。
配置示例:
- Logback(logback-spring.xml):
<logger name="org.elasticsearch.client.RestClient" level="ERROR" additivity="false"> <appender-ref ref="控制台或文件输出"/> </logger>
- Spring Boot配置文件(application.yml):
logging: level: org.elasticsearch.client.RestClient: ERROR
方法2:通过RequestOptions禁用特定警告
在发起ES请求时,通过RequestOptions.Builder配置忽略指定的警告信息,精准过滤这条安全提示。
代码示例:
// 构建RequestOptions,禁用安全相关警告 RequestOptions requestOptions = RequestOptions.DEFAULT.toBuilder() .disableWarnings("Elasticsearch built-in security features are not enabled") .build(); // 在查询时使用该配置 SearchResponse response = restHighLevelClient.search(searchRequest, requestOptions);
如果这条警告的标识是299,也可以直接用错误码过滤:
RequestOptions requestOptions = RequestOptions.DEFAULT.toBuilder() .disableWarnings("299") .build();
方法3:临时启用ES最小安全配置(可选)
如果允许修改ES集群配置,可启用最小安全认证从根源消除警告。修改elasticsearch.yml添加以下配置后重启集群:
xpack.security.enabled: true xpack.security.enrollment.enabled: true
之后设置初始账号密码即可,此方法适合非生产测试环境快速解决。
内容的提问来源于stack exchange,提问作者Cugomastik
相关产品推荐
相关产品推荐

