ElasticSearch-7.14.0 升级log4j,报错java.security.AccessControlException: access denied(“java.lang.Runtim

       2022年log4j爆出严重的安全漏洞,对于ElasticSearch-7.14.0同样使用了log4j的不安全版本。下边就介绍下ElasticSearch-7.14.0升级log4j的方法:

 在ES的安装目录查找所有使用log4j相关jar的地方

find ./ -name "log4j*"

预计可以查到以下文件:

/elasticsearch/lib/log4j-api-2.11.1.jar
/elasticsearch/lib/log4j-core-2.11.1.jar
/elasticsearch/modules/repository-url/log4j-1.2-api-2.11.1.jar
/elasticsearch/modules/x-pack-core/log4j-1.2-api-2.11.1.jar
/elasticsearch/modules/x-pack-identity-provider/log4j-slf4j-impl-2.11.1.jar
/elasticsearch/modules/x-pack-security/log4j-slf4j-impl-2.11.1.jar

 将以上文件更换成log4j安全版本log4j-*-2.17.1.jar

启动ES 

进入ES安装目录的bin子目录下执行以下命令:

./elasticsearch -d

启动遇见的问题:

更换之后,启动ES过程中报了如下错误:

java.security.AccessControlException: access denied("java.lang.RuntimePermission", "getClassLoader")

经过分析排查,原因在于JDK有一些安全限制。

最后解决办法:在es使用的jdk安装目录的/conf/security,修改java.policy,添加一下配置即可

permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "setContextClassLoader";

猜你喜欢

转载自blog.csdn.net/wzl19870309/article/details/131392698
今日推荐