官网下载压缩包解压后就可以使用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.javaLicenseVerifier.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.jarlucene-core-8.3.0.jarelasticsearch-7.5.0.jarelasticsearch-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上可以看到

12-16 19:36
查看更多