elasticsearch操作
文件:LicenseVerifier.java
路径:elasticsearch/x-pack/plugin/core/src/main/java/org/elasticsearch/license/
文件:XPackBuild.java
路径:elasticsearch/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core
1. ES安装前进行破解
软件名称:elasticsearch-7.3.0-linux-x86_64.tar.gz
操作环境:
系统:windows 10系统
解压缩软件:7z
反编译工具:Luyten
操作步骤:
- 解压缩文件elasticsearch-7.3.0-linux-x86_64.tar.gz,得到elasticsearch-7.3.0-linux-x86_64.tar文件夹,进入该文件夹,解压缩elasticsearch-7.3.0-linux-x86_64.tar,得到目录elasticsearch-7.3.0-linux-x86_64,再进入该文件夹,里面有一个elasticsearch-7.3.0文件夹,进入.
这些操作在linux系统下操作的话就很简单:tar -zxv -f elasticsearch-7.3.0-linux-x86_64.tar.gz 直接得到文件夹elasticsearch-7.3.0
- 进入modules\x-pack-core文件夹内,找到x-pack-core-7.3.0.jar文件,这个就是要操作的文件
2. 下载反编译工具Luyten
破解x-pack-core-7.3.0.jar需要反编译工具Luyten(https://github.com/deathmarine/Luyten/releases),我们可以前往下载地址下载Luyten工具。
我们这里下载Luyten.exe windows版本,下载下来后打开,并将x-pack-core-7.3.0.jar文件拖进去,即可展开jar包的源代码了。
3. 修改X-Pack源码文件
在Luyten工具中我们需要把2个文件提取出来进行修改。org.elasticsearch.license.LicenseVerifier和org.elasticsearch.xpack.core.XPackBuild。
导出LicenseVerifier.class文件为LicenseVerifier.java源码文件,导出XPackBuild.class文件为XPackBuild.java源码文件
导出步骤
1. 修改LicenseVerifier.java
LicenseVerifier中有两个静态方法,这就是验证授权文件是否有效的方法,把它修改为全部返回true.
修改后的文档如下:
1 | package org.elasticsearch.license; |
2. 修改XPackBuild.java
XPackBuild中最后一个静态代码块中try的部分全部删除,这部分会验证jar包是否被修改.
修改后的文档如下:
1 | package org.elasticsearch.xpack.core; |
或者这样的:
1 | package org.elasticsearch.xpack.core; |
3. 生成.class
文件
上述LicenseVerifier.java和XPackBuild.java两个文件在本地电脑windows修改完成后,需要将其复制到elasticsearch服务器上并编译成class文件,然后打包到x-pack-core-7.3.0.jar中。这里将这2个文件放到了/opt目录下。
1 | # 生成LicenseVerifier.class文件 |
4. 替换LicenseVerifier.class和XPackBuild.class
把/opt/elasticsearch-7.3.0/modules/x-pack-core/目录下的x-pack-core-7.3.0.jar提取出来,放到/opt/tmp目录中。
1 | cp /opt/elasticsearch-7.3.0/modules/x-pack-core/x-pack-core-7.3.0.jar /opt/tmp |
5. 打包新x-pack-core-7.3.0.jar文件
1 | cd /opt/tmp |
至此在/opt/tmp目录下会新生成一个x-pack-core-7.3.0.jar文件,也就是破解后的文件。
6. 替换x-pack-core-7.3.0.jar文件
1 | cp /opt/tmp/x-pack-core-7.3.0.jar /opt/elasticsearch-7.3.0/modules/x-pack-core/ |
7. 申请License
完成以上步骤后,还需要去elastic官网申请一个license, License申请地址,申请完成后,下载下来的License格式为json格式。并将该License的type
、expiry_date_in_millis
、max_nodes
分别修改成platinum
、2524579200999
、1000
。如下:
1 | {"license": |
文件存为license.json
将过期时间写到2049年,type改为platinum 白金版,这样我们就会拥有全部的x-pack功能。
8. 配置elasticsearch安全协议
完成以上所有操作在启动elasticsearch前,需要配置elasticsearch的SSL/TLS安全协议,如果不配置的话,需要禁止security才能配置License。
当License配置完成后我们需要再开启security,并开启SSL\TLS。
1 | # 加载License到elasticsearch之前操作 |
9. 加载License到elasticsearch
1 | curl -XPUT 'http://localhost:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json |
但是再次查看证书信息的话会报错,因为没有开启ssl/tlscurl 'http://localhost:9200/_xpack/license'
1 | `{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/_xpack/license]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/_xpack/license]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}` |
1 | # 开启ssl/tls,打开认证 |
10. 查看License
1 | curl -XGET -u elastic:3tdAyUIFLMdg79EBnrsg http://localhost:9200/_license |
由结果可以看出x-pack到期时间为2049-12-31,破解完成。也可以在kibana web页面管理中查看破解详情。
kibana操作
1 | useradd kibana |
浏览器访问:http://192.168.0.253:5601
左侧导航查看
ES安装后操作
之前已经开启ssl/tls并设置账号等
停用es,关闭security验证,替换jar包,开启es,导入license,启动es
说明:此方法暂时走不通。
以上说的步骤指的是尚未开启security,未设置账号密码的情况。
破解文件和license下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/7.3.0%E7%A0%B4%E8%A7%A3%E6%96%87%E4%BB%B6%E5%92%8Clicense.7z
ES版本升级操作
先按照上述步骤生成破解文件,然后再替换操作