zoukankan      html  css  js  c++  java
  • Elasticsearch 7.4.0 白金版白嫖

    Elasticsearch 7.4.0 白金版白嫖

    最近在学习 ELK 日志分析系统,Elasticsearch X-PACK 白金版只有 30 天试用,这怎么能忍?网上一搜有很多破解教程,不过全是 6.x 版本的,我看了下源代码,和 7.4.0 的不太一样,干脆自己改一份。
    特别强调,仅作学习使用!!!

    首先,从官网下一份 Linux 版的 Elasticsearch 安装包,再从开源社区拉取一份 Elasticsearch 源码。我在 docker 上部署的时候用的还是 7.4.0 ,官网都已经 7.4.1 了,不过依然可以用。

    官方下载页
    https://www.elastic.co/cn/downloads/elasticsearch

    开源仓库地址
    GitHub
    https://github.com/elastic/elasticsearch
    Gitee(推荐,国内网速你懂的)
    https://gitee.com/mirrors/elasticsearch

    然后就是修改源码,再重新编译进行偷梁换柱了

    其中 LicenseVerifier.java 在 elasticsearch/ x-pack / plugin / core / src / main / java / org / elasticsearch / license / 目录下,认证用的,改!

    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;
        }
    }
    

    其中 XPackBuild.java 在 elasticsearch/ x-pack / plugin / core / src / main / java / org / elasticsearch / xpack / core 目录下,校验 jar 包用的,再改!

    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;
        }
    }
    

    在 Linux 上找个位置把 Elasticsearch 安装包解压了,我直接在 / 下搞了,顺便再创建上面那两个改过的 java 文件

    重新编译下

    javac -cp "/elasticsearch-7.4.1/lib/elasticsearch-7.4.1.jar:/elasticsearch-7.4.1/lib/lucene-core-8.2.0.jar:/elasticsearch-7.4.1/modules/x-pack-core/x-pack-core-7.4.1.jar" LicenseVerifier.java
    
    javac -cp "/elasticsearch-7.4.1/lib/elasticsearch-7.4.1.jar:/elasticsearch-7.4.1/lib/lucene-core-8.2.0.jar:/elasticsearch-7.4.1/modules/x-pack-core/x-pack-core-7.4.1.jar:/elasticsearch-7.4.1/lib/elasticsearch-core-7.4.1.jar"  XPackBuild.java
    

    找到安装包 modulesx-pack-core 目录下的 x-pack-core-7.4.1.jar,把编译得到的 class 文件根据相应的类路径替换掉。

    别忘了,咱用的是 7.4.0 版本,把 jar 包名字改成 7.4.0 的,然后把 docker 容器内的 jar 包换了

    docker cp ./x-pack-core-7.4.0.jar 6ead3863ae82:/usr/share/elasticsearch/modules/x-pack-core
    

    接下来就是更新许可证了

    官方申请地址
    https://register.elastic.co/marvel_register

    收到邮件后,里面有个地址,进去后可以下载 json 格式的许可证文件。下载下来,修改里面的内容,主要是把 "basic" 改为 "platinum" 即白金版,"expiry_date_in_millis" 这个时间戳改大点,就够用了。
    这是我的许可证,一直续到了 2049年10月1日:

    {"license":{"uid":"4000d1b5-a06b-4d18-8501-ca3754b2c6c7","type":"platinum","issue_date_in_millis":1571875200000,"expiry_date_in_millis":2516630400000,"max_nodes":100,"issued_to":"bob mike (mikebob)","issuer":"Web Form","signature":"AAAAAwAAAA3CvX09J7V8T5tT0i55AAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQCQmJJzPPt4L/B3VQzRKxSp3Krg6sDfnsnoxSW4Tp2YeH19wfa8fpKaEifYlLTT8PvpExGLyR+STnYv1qI5D9Uhi9jT4THDR5mKasfYvqk/Mz5MLedNCw+Yt/r4u7EC5bFMA0uZis4B+3VqTDrWEvcc1fRyOvjzh2tE29vYDhfUaqTJGXp9VXMooXGx7ZaNy9mIxP4J2ywgtfvj4qFFZeg8ZYUsvAki3Mk4QTiTcSZc3OT9+ZVtO1/3OXpHANmy69ENqpayoJOm3UvRaWkR0ksIzgZkGF5m0S/2iNeFs5OfoBvbjpNcsGRxo/uqIi4fW3J2b/gfaP3DFh1IINK+5Md4","start_date_in_millis":1571875200000}}
    

    你可以在 Kibana UI 上传许可证激活,也可以用命令的方式:

    # 建一个文件命名为 license.json,里面放上面的 json 字符串
    curl -XPUT 'http://localhost:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json
    

    返回 {"acknowledged":true,"license_status":"valid"} 就表示续命成功了。

    最后,别忘了把 xpack security 配置下,不然 Kibana 连不上 Elasticsearch 的。

  • 相关阅读:
    BestCoder17 1001.Chessboard(hdu 5100) 解题报告
    codeforces 485A.Factory 解题报告
    codeforces 485B Valuable Resources 解题报告
    BestCoder16 1002.Revenge of LIS II(hdu 5087) 解题报告
    codeforces 374A Inna and Pink Pony 解题报告
    codeforces 483B Friends and Presents 解题报告
    BestCoder15 1002.Instruction(hdu 5083) 解题报告
    codeforces 483C.Diverse Permutation 解题报告
    codeforces 483A. Counterexample 解题报告
    NSArray中地内存管理 理解
  • 原文地址:https://www.cnblogs.com/vivfeng/p/11735129.html
Copyright © 2011-2022 走看看