elk的x-pack需要破解才能使用
首先先正常安装x-pack
$ELASTICSEARCH_PATH/bin/elasticsearch-plugin install x-pack
下载对应版本的x-pack文件, 解压x-pack文件
wget '[<https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip>](<https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip>)'
unzip x-pack-6.2.3.zip
进入elasticsearch/core目录,找到x-pack-core-6.2.3.jar
需要使用luyten反编译 ( luyten项目地址: https://github.com/deathmarine/Luyten )
使用luyten打开后找到两个class文件,分别为 org.elasticsearch.license.LicenseVerifier
和
org.elasticsearch.xpack.core.XPackBuild
新建两个文件,分别为 LicenseVerifier.java 和 XPackBuild.java, 将反编译后的代码写入文件中
LicenseVerifier 中有两个静态方法,这就是验证授权文件是否有效的方法,我们把它修改为全部返回true.
XPackBuild 中 最后一个静态代码块中 try的部分全部删除,这部分会验证jar包是否被修改
修改完成之后执行命令进行编译
需要引入 elasticsearch 6.2.2 中 lib 目录下的jar包 以及 x-pack-core-6.2.2.jar 本身
javac -cp "$ELASTICSEARCH_PATH/lib/*:$ELASTICSEARCH_PATH/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar" LicenseVerifier.java
javac -cp "$ELASTICSEARCH_PATH/lib/*:$ELASTICSEARCH_PATH/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar" XPackBuild.java
创建x-pack-core用来存放解压之后的jar包文件 mkdir x-pack-core
把上面找到的jar文件放到x-pack-core中
cp x-pack-core-6.2.3.jar ./x-pack-core
cd x-pack-core
jar xvf x-pack-core-6.2.3.jar
解压之后将上一步编译完成的class文件覆盖到jar文件中,重新打包,替换原来的jar包