操作系统:win7
虚拟机:centos7
工具:CRT
4月份的时候,我在虚拟机里安装了两个elasticsearch
和kibana
,并且都安装了x-pack
。那个时候,下面两个连接都是可以访问的:
查看集群信息:
http://192.168.116.19:9200/_cluster/health?pretty=true
利用kibana
图形化界面查看集群:
http://192.168.116.19:5601/
现在发现都访问不了,查了下日志才发现,我的license
过期啦!
这时我才想起来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
中的elasticsearch
中x-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.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.3
和kibana-5.4.3
、x-pack-5.4.3
安装了遍。用官方原版的就是没有问题。用自己改的认证文件license.json
就是不行。
=========2017年11月11日================start==========
今天我再次试验成功。。。
其实今天打好包后,我一开始还是报错误,和几个月前一样,只要启动kibana
,elasticsearch
立马就会报空指针。但是评论里又有人成功啦!
后来才发现,原来是打包问题!
千万不要在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文件
这个步骤(已经执行过了,就不用在执行啦!)
这时再重启elasticsearch
和kibana
就没有报错啦!
=========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===