elasticsearch之x-pack破解

环境

操作系统:win7
虚拟机:centos7
工具:CRT

概要

4月份的时候,我在虚拟机里安装了两个elasticsearchkibana,并且都安装了x-pack。那个时候,下面两个连接都是可以访问的:
查看集群信息:
http://192.168.116.19:9200/_cluster/health?pretty=true

利用kibana图形化界面查看集群:

http://192.168.116.19:5601/

现在发现都访问不了,查了下日志才发现,我的license过期啦!
这时我才想起来x-pack好像是收费的。

无奈,只好破解啦

破解 x-pack

我的版本是x-pack-5.2.2,去官网下载x-pack-5.2.2.zip包。
进行解压,在elasticsearch目录中找到x-pack-5.2.2.jar
再把x-pack-5.2.2.jar进行解压。找到LicenseVerifier.class文件。
(全路径:org.elasticsearch/license/LicenseVerifier.class

这里我们需要用反编译软件查看。jd-gui反编译出来的不准,我们使用Luyten来进行反编译。

①我们需要先把内容复制到一个文件(自己创建LicenseVerifier.java)中。
②将其改为如下代码,(下面的代码是为了方便我们替换license.json文件,所以全部返回true):

package org.elasticsearch.license;

public class LicenseVerifier
{
    public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
        return true;
    }

    public static boolean verifyLicense(final License license) {
        return true;
    }
}

③我们把其上传了Linux服务器中,随便哪个目录。
我是在/usr/programe_files/LicenseVerifier.java

④接着我们需要进行编译,正常情况,我们可能需要对这个项目编译,其实javac命令也可以对单个文件进行编译,只需要进入相应的类路径就可以啦。

javac -cp "/usr/programe_files/elasticsearch-5.2.2/lib/elasticsearch-5.2.2.jar:/usr/programe_files/elasticsearch-5.2.2/lib/lucene-core-6.4.1.jar:/usr/programe_files/elasticsearch-5.2.2/plugins/x-pack/x-pack-5.2.2.jar" LicenseVerifier.java

这里说明下:

我的elasticsearch安装目录在/usr/programe_files/elasticsearch-5.2.2

⑤把编译后得到的LicenseVerifier.class替换原有的那个。我的做法是,把其下载到window系统中,利用好压进行替换。再把x-pack-5.2.2.jar上传上去进行替换。
千万不要像我一样下载到window中利用好压进行替换
千万不要像我一样下载到window中利用好压进行替换
千万不要像我一样下载到window中利用好压进行替换
文章最后会解释

替换的地方:elasticsearch安装目录中的plugins –> x-pack
你安装了几个elasticsearch,就要替换几个。

如果你还没有安装x-pack,你可以把x-pack-5.2.2.zip中的elasticsearchx-pack-5.2.2.jar进行替换。然后利用替换后的x-pack-5.2.2.zip进行x-pack插件的安装。

⑥去官网申请免费license,会发邮件给你进行下载。
将得到的文件进行如下修改:

{"license":{"uid":"ba9ae270-28ee-4051-810f-09469dfd4aa4","type":"platinum","issue_date_in_millis":1498694400000,"expiry_date_in_millis":2524579200999,"max_nodes":100,"issued_to":"yu tao (shanghai)","issuer":"Web Form","signature":"AAAAAwAAAA0d3SXUL/5bRSxB/OU4AAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQCBFriH7K2dVFXmsQLHDvpY0Ppda0FHGTDSjAmnCcplQWaNKHtX+DR6znV+vOiokhQ8s/Yz5PmI5GFhsqkLEWXl975x1/8GHaDgb7aMv7UzciFw2duWsrH8mKTGGr2wHUKMVW7pUx2Kcr5WkH0G3ax3gynsvnYTApqWiyWdkdPX/jR/T1UhfjEqpCKCQryj+aNLxy2GP+4wF/wH4NvmDF0aWALFCKDAWhuDMCNmm+oKrLrgcIXyQERk7JBf5rZG5Xm7ViiyQ8aFf8X4CN7hA8xxrPmT57jtTrX9d4Q3Kf4jEBVeUnk/qa1Doj0/Ezn2G0vVE2oRQOXmUp9nwo0JTAHj","start_date_in_millis":1498694400000}}

其中主要的就是:

"type":"platinum""expiry_date_in_millis":2524579200999

本来我想把type改为enterprise的,结果它不认。platinum是白金版,权限也很高。
expiry_date_in_millis就是你要截止的日期,我配置的是到2050年。

更新 license文件

把文件重命名为:license.json,接着上次到服务器,放在自己喜欢的目录中,接着在该目录中执行如下命令:

[root@localhost Downloads]#curl -XPUT -u elastic:changeme 'http://192.168.100.50:9200/_xpack/license' -d @license.json
或者
[root@localhost Downloads]#curl -XPUT -u elastic:changeme 'http://192.168.100.50:9200/_xpack/license?acknowledge=true' -d @license.json

这里可以查看官网:https://www.elastic.co/guide/en/x-pack/5.2/installing-license.html

之后再把elasticsearch重启就OK了。

我遇到了问题,启动kibana时,会使得本来已启动的elasticsearch给关闭啦!而且把空指针异常。真是吐血。折腾到现在也没有搞定。

不过我实践到,把kibana中的插件x-pack删除掉,kibana还是可以正常启动。但是安装上x-pack就会出错。

参考链接:

http://www.cnblogs.com/benwu/articles/6648471.html
http://blog.csdn.net/mvpboss1004/article/details/65445023


晚上一直尝试到现在,基本可以肯定,上面的破解方式,对kibana来说是不成功的。
因为我又在elasticsearch-5.4.3kibana-5.4.3x-pack-5.4.3安装了遍。用官方原版的就是没有问题。用自己改的认证文件license.json就是不行。


=========2017年11月11日================start==========

今天我再次试验成功。。。
其实今天打好包后,我一开始还是报错误,和几个月前一样,只要启动kibanaelasticsearch立马就会报空指针。但是评论里又有人成功啦!

后来才发现,原来是打包问题!
千万不要在window上打包
千万不要在window上打包
千万不要在window上打包
我上面的教程里写着,利用好压进行打包压缩,我本来是为了省事情,结果把自己给坑了。

Linux上打包命令:

# 解压 x-pack-5.6.4.zip 得到 x-pack-5.6.4.jar
# 或者假设你已经安装了`x-pack`,去elasticsearch安装目录的`plugin`目录里找。

# 建立临时文件夹
[yutao@localhost downloads]$ mkdir test
[yutao@localhost downloads]$ mv /usr/programe_files/elasticsearch-5.6.4/plugins/x-pack/x-pack-5.6.4.jar test/
[yutao@localhost downloads]$ cd test/
[yutao@localhost test]$ jar -xvf x-pack-5.6.4.jar
[yutao@localhost test]$ rm -rf x-pack-5.6.4.jar

#删除原文件,将新编译的拷贝到该位置
[yutao@localhost test]$ rm -rf org/elasticsearch/license/LicenseVerifier.class 
[yutao@localhost test]$ cp ../LicenseVerifier.class org/elasticsearch/license/

#重新打包
[yutao@localhost test]$ jar -cvf x-pack-5.6.4.jar ./*

#覆盖plugins文件夹里面的jar包
[yutao@localhost test]$ rm -rf /usr/programe_files/elasticsearch-5.6.4/plugins/x-pack/x-pack-5.6.4.jar 
[yutao@localhost test]$ mv x-pack-5.6.4.jar /usr/programe_files/elasticsearch-5.6.4/plugins/x-pack

之后再去执行 # 更新 license文件 这个步骤(已经执行过了,就不用在执行啦!)

这时再重启elasticsearchkibana就没有报错啦!
=========2017年11月11日================end==========

执行:http://192.168.116.131:9200/_license
(http://192.168.116.131:5601 也可以正常打开啦)

{
  "license" : {
    "status" : "active",
    "uid" : "947be22c-3bbf-408a-a387-018bbd7eb8f9",
    # 这里已经发生改变↓
    "type" : "platinum",
    "issue_date" : "2017-11-11T00:00:00.000Z",
    "issue_date_in_millis" : 1510358400000,
    # 还有这里↓
    "expiry_date" : "2049-12-31T16:00:00.999Z",
    "expiry_date_in_millis" : 2524579200999,
    "max_nodes" : 100,
    "issued_to" : "yu tao (上海)",
    "issuer" : "Web Form",
    "start_date_in_millis" : 1510358400000
  }
}

======2017年12月22日===14点22======start===
版本6之前密码默认都是changeme,我在版本6.0.0上测试的时候,发现这个密码不行了;后来我执行:

# 这个命令你只能执行一次,之后就不能执行了
bin/x-pack/setup-passwords auto

重新自动生成密码;
假设执行上面的命令之后,你又忘记密码了,毕竟,自动生成的密码很难记,这个时候,你需要:
创建一个超级用户,利用这个超级用户,重置密码;

具体参考:I lost the password that has been changed
======2017年12月22日===14点22======end===

你可能感兴趣的:(es库,Java,linux,centos,elasticsearch)