elasticsearch之x-pack破解

来源:互联网 发布:ubuntu怎么安装exe软件 编辑:程序博客网 时间:2024/05/01 16:36

环境

操作系统: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;    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

③我们把其上传了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
  • 1

这里说明下:

我的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}}
  • 1

其中主要的就是:

"type":"platinum""expiry_date_in_millis":2524579200999
  • 1
  • 2

本来我想把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
  • 1
  • 2
  • 3

这里可以查看官网: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日==========================

今天我再次试验成功。。。 
其实今天打好包后,我一开始还是报错误,和几个月前一样,只要启动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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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

这时再重启elasticsearchkibana就没有报错啦!

执行: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  }}
原创粉丝点击