elasticsearch7.x之x-pack 7.14.2优化篇

20.3 x-pack优化篇

elasticsearch7.x之x-pack 7.14.2优化

  • 7版本之后的优化方式应该是一样的,这个是在原来7.6优化基础上来优化7.14.2的
  • 此操作使适用于7之后的版本
说明: elastic官方在elastic stack 6.4.2版本后就在elasticsearch中内置了X-Pack工具,因此下文优化X-Pack7.6.0的版本也是对应elastic stack7.6.0的版本。而X-Pack内置在elasticsearch包中,以下所有操作都是针对elasticsearch7.6.0包中进行的
X-Pack是什么

X-pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,虽然x-pack被设计为一个无缝的工作,但是你可以轻松的启用或者关闭一些功能。

我使用的系统是windows,这里需要使用反编译工具luyten来进行反编译,windows和mac都有这个软件
github下载地址:
    https://github.com/deathmarine/Luyten/releases
百度网盘下载
    链接:https://pan.baidu.com/s/1LJESfm_s4EpV96ZbC9N52w 
    提取码:rmgz 
    
# 这个是通过离线包方式下载,方便提取x-pack的jar包出来修改
elasticsearch下载地址
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
20.3.1 获取x-pack的jar包
  • 官网下载对应版本的离线包,下载链接以再上面给出
    在这里插入图片描述
    在这里插入图片描述

  • 解压下载到的es离线包,window端操作

# jar包路径如下
..\elasticsearch-7.14.2-linux-x86_64\elasticsearch-7.14.2\modules\x-pack-core

在这里插入图片描述

20.3.2 提取jar包中的文件
  • 先复制一份x-pack-core-7.14.2.jar包到其他路径下,本人习惯在桌面新建一个文件临时存放

  • 使用luyten工具打开该包
    在这里插入图片描述

  • org.elasticsearch.license.LicenseVerifierorg.elasticsearch.xpack.core.XPackBuild两个源码文件提取出来,进行编辑

    • 文件另存到其他目录
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
20.3.3 修改提取的文件
  • LicenseVerifier.java文件修改后的内容如下,修改工具可以使用IDEA
    • 删掉第一个和第二个静态方法的内容,统一添加return ture;
package org.elasticsearch.license;

import java.nio.*;
import org.elasticsearch.common.bytes.*;
import java.security.*;
import java.util.*;
import org.elasticsearch.common.xcontent.*;
import org.apache.lucene.util.*;
import org.elasticsearch.core.internal.io.*;
import java.io.*;

public class LicenseVerifier
{
    public static boolean verifyLicense(final License license, final byte[] publicKeyData) {
        return ture;
    }
    
    public static boolean verifyLicense(final License license) {
        return true;
    }
}
  • 修改
    • 删除第二个静态方法中try方法中的内容
package org.elasticsearch.xpack.core;

import java.net.*;
import org.elasticsearch.core.*;
import java.nio.file.*;
import java.io.*;
import java.util.jar.*;

public class XPackBuild
{
    public static final XPackBuild CURRENT;
    private String shortHash;
    private String date;
    
    @SuppressForbidden(reason = "looks up path of xpack.jar directly")
    static Path getElasticsearchCodebase() {
        final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
        try {
            return PathUtils.get(url.toURI());
        }
        catch (URISyntaxException bogus) {
            throw new RuntimeException(bogus);
        }
    }
    
    XPackBuild(final String shortHash, final String date) {
        this.shortHash = shortHash;
        this.date = date;
    }
    
    public String shortHash() {
        return this.shortHash;
    }
    
    public String date() {
        return this.date;
    }
    
    static {
        final Path path = getElasticsearchCodebase();
        String shortHash = null;
        String date = null;
        Label_0109: {
            shortHash = "Unknown";
            date = "Unknown";
        }
        CURRENT = new XPackBuild(shortHash, date);
    }
}

在这里插入图片描述

以上两步都完成修改后另存即可

20.3.4 生成新x-packe的jar包
  • 这一步可在window的命令行模式下操作,也可以在linux环境下操作
  • 以下操作本人选择在linux下演示,因为大多数IT人接触的也是linux,也方便

步骤一:将源码文件编译成类文件

  • 先将es等相关离线包上传到linux服务器
    • 这里之所以上传es的离线包主要是编译时需要用到离线包中自带的jdk环境,如果用其他自己上传的jdk操作会出现版本问题导致编译或打包失败

在这里插入图片描述

# 文件列表,移动到了以下路径,请注意
[root@centos7_02 elk_1]# pwd
/home/hukanfa/elk_1
[root@centos7_02 elk_1]# ls
elasticsearch-7.14.2-linux-x86_64.tar.gz  LicenseVerifier.java  x-pack  XPackBuild.java  x-pack-core-7.14.2.jar

# 解压es离线包,此时需要用到离线包中的jdk环境
tar -zxvf elasticsearch-7.14.2-linux-x86_64.tar.gz

# 编译LicenseVerifier.java,用到了离线包的lib库以及编译需要的相关类文件
[root@centos7_02 elk_1]# ./elasticsearch-7.14.2/jdk/bin/javac -cp "/home/hukanfa/elk_1/elasticsearch-7.14.2/lib/*:/home/hukanfa/elk_1/elasticsearch-7.14.2/modules/x-pack-core/*" ./LicenseVerifier.java

-cp 和 -classpath
一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
分隔,linux上是分号“:”分隔。不支持通配符,需要列出所有jar包,用一点“.”代表当前路径。

# 编译XPackBuild.java
[root@centos7_02 elk_1]# ./elasticsearch-7.14.2/jdk/bin/javac -cp "/home/hukanfa/elk_1/elasticsearch-7.14.2/lib/*:/home/hukanfa/elk_1/elasticsearch-7.14.2/modules/x-pack-core/*" ./XPackBuild.java

# 查看编译后的文件
[root@centos7_02 elk_1]# ls
elasticsearch-7.14.2  elasticsearch-7.14.2-linux-x86_64.tar.gz  LicenseVerifier.class  LicenseVerifier.java   XPackBuild.class  XPackBuild.java  x-pack-core-7.14.2.jar

# 另外把weix-pack-core-7.14.2的jar包移动到一个新的子目录中
# 当前目录创建新的x-pack目录
mkdir x-pack
mv x-pack-core-7.14.2.jar ./x-pack
cd x-pack

# 解压jar包,解压完成后删掉之前的jar包。
jar -xvf x-pack-core-7.14.2.jar
rm -f x-pack-core-7.14.2.jar

# 解压后,替换掉原来的LicenseVerifier.class 和 XPackBuild.class
[root@centos7_02 x-pack]# pwd
/home/hukanfa/elk_1/x-pack
[root@centos7_02 x-pack]# rm -f org/elasticsearch/license/LicenseVerifier.class
[root@centos7_02 x-pack]# rm -f org/elasticsearch/xpack/core/XPackBuild.class
[root@centos7_02 x-pack]# cp ../LicenseVerifier.class  org/elasticsearch/license/
[root@centos7_02 x-pack]# cp ../XPackBuild.class  org/elasticsearch/xpack/core/

步骤二:生成新jar包

  • 首先,需要在把x-pack目录下的所有文件打成新的jar包
# 进入x-pcak目录
[root@centos7_02 x-pack]# pwd
/home/hukanfa/elk_1/x-pack
# 执行命令
jar -cvf x-pack-core-7.14.2.jar .

在这里插入图片描述

以上,所有的文件的修改结束。可以保存这个新jar包,在前面的20.2操作中用到。

20.3.5 获取liscens文件
  • 这个文件最后是在kibana页面中上传导入
elastic官网申请一个license, [License申请地址](https://license.elastic.co/registration),申请完成后,下载下来的License格式为json格式。并将该License的`type``expiry_date_in_millis``max_nodes`分别修改成`platinum``4544447920099``9999`。如下:
# 名字: liscens.json
{
  "license": {
    "uid": "fd2deee3-9cfa-4dbb-b1ee-4fd959056bea", 
    "type": "platinum", 
    "issue_date_in_millis": 1504051200000, 
    "expiry_date_in_millis": 4544447920099, 
    "max_nodes": 9999, 
    "issued_to": "hong king", 
    "issuer": "Web Form", 
    "signature": "AAAAAwAAAA3EOOEKx+1fwxQOjubdAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQBpy3qMeDS5BpDEVYl1vL7dEjMFrz5vXtS3gWMKif6q5pFLP5FyJQEcYbh+rMI9lJ9F7mTT/l8GWEDf1Qqcu5ZuM7AQJDld/qyhj0Z6t6pklUYc0oCqAR2vvnV8BdXAqQhmUHvPaWTcLo7KXnGN1LpK8SFAfF8xwOS15CmK055ao8Gpn/lTxLguV2N8dQ1Qkh1KcpPCmvgoM0uwl4gYq8VFsB1JD/wbn7OiTB9mlFqdLKA5LkR/IgIbkN/k1H5A9w9/CJ8D8UuK3VBu8ueVF2DMc3Mz2oXgiDdZUpecrRTHtAZhxc/6IF9WkdwZr5Of021WCqH6IhZDzdGJHVbnD3yd", 
    "start_date_in_millis": 1504051200000
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值