elasticsearch之x-pack破解
環境
作業系統:win7
虛擬機器:centos7
工具:CRT
概要
利用kibana
圖形化介面檢視叢集:
現在發現都訪問不了,查了下日誌才發現,我的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
中的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檔案
把檔案重新命名為: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
之後再把elasticsearch
重啟就OK
了。
我遇到了問題,啟動kibana
時,會使得本來已啟動的elasticsearch
給關閉啦!而且把空指標異常。真是吐血。折騰到現在也沒有搞定。
不過我實踐到,把kibana
中的外掛x-pack
刪除掉,kibana
還是可以正常啟動。但是安裝上x-pack
就會出錯。
參考連結:
晚上一直嘗試到現在,基本可以肯定,上面的破解方式,對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==========
{
"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
重新自動生成密碼;
假設執行上面的命令之後,你又忘記密碼了,畢竟,自動生成的密碼很難記,這個時候,你需要:
建立一個超級使用者,利用這個超級使用者,重置密碼;