elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

java.security.AccessControlException: access denied ("java.net.SocketPermission" "192.168.9.108:8099" "connect,resolve");

我用的版本是elasticsearch6.3.0,在配置自定义远程仓库的时候报了这个错误

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

重启以后如下报错:

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

连接被拒绝?什么情况!

经过一番谷歌与百度以后发现是elasticsearch 6.* 以后加入了安全策略

https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugin-authors.html

 

各路大神的解决方法大致如下:

ps : java有一个 java.policy

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

在es 安装目录config下创建一个文件:ik-plugin.policy

 

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

ik-plugin.policy中内容拷贝 java.policy 中的内容,并在内容后追加 你远程字典的 ip+端口号:

permission java.net.SocketPermission "192.168.9.108:8099", "connect,resolve";

如图:

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

 

然后 修改es的配置文件:jvm.options (config目录下)

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

在内容后追加如下配置信息:

-Djava.security.policy=/home/zshs/dev/elasticsearch-6.3.0/config/ik-plugin.policy

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

重启es服务后...

进行测试:成功了。

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

服务会自动嗅探远程字典的变动:

elasticsearch配置远程仓库踩坑记录 AccessControlException: access denied

over...