官网下载压缩包解压后就可以使用bin\elasticsearch.bat
运行了,但是运行时有诸多限制,比如jdbc的部分,开源版本还不能正常使用,查看不同版本的功能对比。
破解过程:
注意:D:\develop\
是我本机路径,你在操作时应该修改成你的路径。
1,将 D:\develop\elasticsearch-7.5.0\modules\x-pack-core\
目录下的x-pack-core-7.5.0.jar
文件赋值一份,
2,手动创建XPackBuild.java
和LicenseVerifier.java
两个文件,
LicenseVerifier.java
内容为:package org.elasticsearch.xpack.core; import org.elasticsearch.common.SuppressForbidden; import org.elasticsearch.common.io.PathUtils; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.util.jar.JarInputStream; import java.util.jar.Manifest; public class XPackBuild { public static final XPackBuild CURRENT; static { CURRENT = new XPackBuild("Unknown", "Unknown"); } /** * Returns path to xpack codebase path */ @SuppressForbidden(reason = "looks up path of xpack.jar directly") static Path getElasticsearchCodebase() { URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation(); try { return PathUtils.get(url.toURI()); } catch (URISyntaxException bogus) { throw new RuntimeException(bogus); } } private String shortHash; private String date; XPackBuild(String shortHash, String date) { this.shortHash = shortHash; this.date = date; } public String shortHash() { return shortHash; } public String date() { return date; } }
LicenseVerifier.java
文件的内容为:package org.elasticsearch.license; /** * Responsible for verifying signed licenses */ public class LicenseVerifier { /** * verifies the license content with the signature using the packaged * public key * @param license to verify * @return true if valid, false otherwise */ public static boolean verifyLicense(final License license, byte[] publicKeyData) { return true; } public static boolean verifyLicense(final License license) { return true; } }
3,使用javac 编译这两个java文件,需要引入import的依赖,使用-cp参数,需要依赖原本的x-pack-core-7.5.0.jar
,lucene-core-8.3.0.jar
,elasticsearch-7.5.0.jar
,elasticsearch-core-7.5.0.jar
这四个jar包,对应的文件都在安装目录,有的在lib目录下,有的在modules目录下。编译命令:
javac -cp "D:\develop\elasticsearch-7.5.0\modules\x-pack-core\x-pack-core-7.5.0.jar;D:\develop\elasticsearch-7.5.0\lib\lucene-core-8.3.0.jar;D:\develop\elasticsearch-7.5.0\lib\elasticsearch-7.5.0.jar;D:\develop\elasticsearch-7.5.0\lib\elasticsearch-core-7.5.0.jar" C:\Users\baibook\Desktop\XPackBuild.java
javac -cp "D:\develop\elasticsearch-7.5.0\modules\x-pack-core\x-pack-core-7.5.0.jar;D:\develop\elasticsearch-7.5.0\lib\lucene-core-8.3.0.jar;D:\develop\elasticsearch-7.5.0\lib\elasticsearch-7.5.0.jar;D:\develop\elasticsearch-7.5.0\lib\elasticsearch-core-7.5.0.jar" C:\Users\baibook\Desktop\LicenseVerifier.java
然后就会在桌面产生对应的class文件。用压缩软件打开第1步中复制的x-pack-core-7.5.0.jar
将自己编译的class文件覆盖到上图对应的目录后,将该jar包与安装目录的进行替换,然后重启Elasticsearch。
4,更新许可证
官方申请地址: https://register.elastic.co/marvel_register
公司地址什么课以随便填写,邮箱要填好,然后收到邮件,进行文件下载。 下载下来,修改里面的内容,主要是把 "basic" 改为 "platinum" 即白金版,"expiry_date_in_millis" 这个时间戳改大点,就够用了。
{"license":{"uid":"21213675-4eee-41fe-a3db-f0f6eb731ac0","type":"platinum","issue_date_in_millis":1578009600000,"expiry_date_in_millis":16097183999990,"max_nodes":100,"issued_to":"test bai (test)","issuer":"Web Form","signature":"AAAAAwAAAA3aGeigKUwHJNzBe9K5AAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQBe9NVefXJFn90DlQlM/EEFWO0MQ+uqXnzyfZ0GlK1dArPd22pTCy6muKo0F8s9fA3iJVczxucdHs5g99vRX4x4cNsQSzFeOIc+Xx/d94ZRIfd92jEelpgjrg9zQMVbVg6It4BMboHMQGePBVleSEpXHpdBeRw+WdeyIlnatxPiDSF3wltagAzpy/ZLjcl0ihG6iV0lW+e0QlG0Xzf4c1/4wSv2Tjq3PU8DDqIvfQZN/GitS2GsnNsCtqqH5WC2oXaIKBGi3q6NoCuBI4QxJbsXhYJcPEFgUj5Fq7Xm/8Ga3c5gOUqNT4xiEtHjSQjRJd2s7kZ2dKNdU1wAJHuwiPoA","start_date_in_millis":1578009600000}}
可以在Kibana上上传许可证激活,也可以用命令的方式
curl -XPUT 'http://localhost:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json
命令方式 返回 {"acknowledged":true,"license_status":"valid"} 就表示续命成功了 。
在Kibana上可以看到