xpackのインストールについては前に具体的に説明しましたが、プロセス全体がより煩雑になるため、この章では操作を簡略化します。
1環境紹介
ip | ソフトウェアバージョン | ノード属性 | ノード環境 | オペレーティング・システム |
---|---|---|---|---|
192.168.116.2 | elaticsearch6.5.1 | 主人 | java、ノード | CentOS 7.6.1810 |
192.168.116.3 | elaticsearch6.5.1 | 奴隷 | java、ノード | CentOS 7.6.1810 |
192.168.116.4 | elaticsearch6.5.1 | 奴隷 | java、ノード | CentOS 7.6.1810 |
elaticsearch6.5.1クラスターのインストールについては、以下を参照してください。
インストール後、ログと証明書の種類から検出されます。現在の証明書の種類は基本です。
2 x-pack-core-6.5.1.jarを変更し、逆コンパイルして2つの検証ファイルを変更します
1)jarパッケージを解凍します
jarパッケージのパス:elasticsearch-6.5.1/modules/x-pack-core/x-pack-core-6.5.1.jar
LicenseVerifier.classがありますx-pack-core-6.5.1\org\elasticsearch\license
cd /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core
mkdir /tmp/core #创建临时目录
unzip x-pack-core-6.5.1.jar -d /tmp/core/ #解压jar包,或者通过jar -xf 解压也可以
filezillaを介して2つのクラスファイルをローカルコンピューターにダウンロードします
2)2つの静的メソッドのファイルを逆コンパイルして編集します
これらの2つのファイルを変更せずにライセンスを直接インポートすると、インポートは失敗します
1>逆コンパイラjd-guiをインストールします
https://github.com/java-decompiler/jd-gui/releases/download/v1.6.6/jd-gui-windows-1.6.6.zip
、GUI-JDを開く打开文件
- 选择目标文件
(確認後の選択打开
- )file
- save
(として保存された.java
ファイルは可能) -でnotepad++
開い編集それは-保存
<1> LicenseVerifier.classファイルを逆コンパイルします
Notepad ++編集、LicenseVerifier.javaとして保存
package org.elasticsearch.license;
import java.nio.*;
import java.util.*;
import java.security.*;
import org.elasticsearch.common.xcontent.*;
import org.apache.lucene.util.*;
import org.elasticsearch.common.io.*;
import java.io.*;
public class LicenseVerifier {
public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
return true;
}
public static boolean verifyLicense(final License license) {
return true;
}
}
<2> XPackBuild.classファイルを逆コンパイルします
Notepad ++編集、XPackPlugin.javaとして保存
package org.elasticsearch.xpack.core;
import org.elasticsearch.common.io.*;
import java.net.*;
import org.elasticsearch.common.*;
import java.nio.file.*;
import java.io.*;
import java.util.jar.*;
public class XPackBuild {
public static final XPackBuild CURRENT;
private String shortHash;
private String date;
@SuppressForbidden(reason = "looks up path of xpack.jar directly") static Path getElasticsearchCodebase() {
final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
try {
return PathUtils.get(url.toURI()); }
catch (URISyntaxException bogus) {
throw new RuntimeException(bogus); }
}
XPackBuild(final String shortHash, final String date) {
this.shortHash = shortHash;
this.date = date;
}
public String shortHash() {
return this.shortHash;
}
public String date(){
return this.date;
}
static {
final Path path = getElasticsearchCodebase();
String shortHash = null;
String date = null;
Label_0157: {
shortHash = "Unknown"; date = "Unknown";
}
CURRENT = new XPackBuild(shortHash, date);
}
}
2> filezillaを介して編集したファイルをシステムにアップロードします
3>ファイルをコンパイルする
javac -cp "/u01/isi/application/component/elasticsearch-6.5.1/lib/elasticsearch-6.5.1.jar:/u01/isi/application/component/elasticsearch-6.5.1/lib/lucene-core-7.5.0.jar:/u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/x-pack-core-6.5.1.jar:/u01/isi/application/component/elasticsearch-6.5.1/lib/elasticsearch-core-6.5.1.jar" XPackBuild.java
javac -cp "/u01/isi/application/component/elasticsearch-6.5.1/lib/elasticsearch-6.5.1.jar:/u01/isi/application/component/elasticsearch-6.5.1/lib/lucene-core-7.5.0.jar:/u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/x-pack-core-6.5.1.jar" LicenseVerifier.java
4>コンパイルされたファイルをパックして元のディレクトリにコピーします
cd /tmp/core
mv LicenseVerifier.class org/elasticsearch/license/ #将编译好的class文件移到到原来的路径下
mv XPackBuild.class org/elasticsearch/xpack/core/ #将编译好的class文件移到到原来的路径下
rm -rf XPackBuild.java LicenseVerifier.java #删除java文件
jar -cvf x-pack-core-6.5.1.jar ./* #打包
cp /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/{
x-pack-core-6.5.1.jar,x-pack-core-6.5.1.jar.bak} #备份原有的jar包
mv x-pack-core-6.5.1.jar /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/ #替换jar包
chown -R isi:isi /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/ #统一文件的属性
chmod -R 755 /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/* #统一文件的权限
3証明書申請
1)公式ウェブサイトから基本認証書類を申請する
https://license.elastic.co/registration #其他信息随便写,邮箱必须真实,country写china
2)承認文書の変更
"type":"basic" 替换为"platinum" # 基础版变更为铂金版
"expiry_date_in_millis":1561420799999 替换为3107746200000 #1年变为50年
4復号化を開始し、証明書をアップロードします
1)コンパイルされたjarパッケージを他のノードにコピーします
scp -p /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/x-pack-core-6.5.1.jar 192.168.116.3:/u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/
scp -p /u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/x-pack-core-6.5.1.jar 192.168.116.4:/u01/isi/application/component/elasticsearch-6.5.1/modules/x-pack-core/
2)認証(構成ファイルを変更した後に再起動することを忘れないでください)
1>セキュリティを無効にします。無効にしないと、認証ファイルを正常にインポートできません。
cat elasticsearch.yml
...
...
xpack.security.enabled: false
2>ライセンス証明書をアップロードし、filezillaを介してelasticsearchディレクトリにアップロードします
curl -H "Content-Type: application/json" -XPUT '192.168.1.156:9200/_xpack/license?acknowledge=true' -d @license.json
3> xpack証明書を生成します(メインサーバーによって生成され、他のノードノードに配布されます)
cd /u01/isi/application/component/elasticsearch-6.5.1/bin
./elasticsearch-certutil ca #按两次回车即可
./elasticsearch-certutil cert --ca elastic-stack-ca.p12 #按三次回车即可
mv ./elastic-certificates.p12 ../config/ #移动到config目录下
mv ./elastic-stack-ca.p12 ../config/ #移动到config目录下
scp -p ../config/elastic-certificates.p12 192.168.116.3:/u01/isi/application/component/elasticsearch-6.5.1/config/ #分到到116.3节点
scp -p ../config/elastic-certificates.p12 192.168.116.4:/u01/isi/application/component/elasticsearch-6.5.1/config/ #分到到116.4节点
4> xpack構成を構成ファイルに追加して再起動します(すべてのノード)
cat elasticsearch.yml
...
#启用security
xpack.security.enabled: true
#开启集群中https传输
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
#解决head无法登录问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
5>パスワードを変更します(そうしないと、データを読み取ることができません)
X-Packをインストールした後、ElasticsearchとKibanaを再起動し、ElasticsearchとKibanaに再度ログインすると、ユーザー名とパスワードの入力を求められるため、パスワードを変更する必要があります。
cd /u01/isi/application/component/elasticsearch-6.5.1/bin
./elasticsearch-setup-passwords interactive #自定义修改
或(二选一)
./elasticsearch-setup-passwords auto #自动生成密码,默认密码:changeme
また、kibanaを使用して管理->セキュリティ->ユーザー->パスワードを変更することもできます。
注:パスワードを変更した後は、kibana.ymlでユーザー名とパスワードを同期的に構成することを忘れないでください。
6>ライセンスが有効かどうかを確認します
curl '192.168.116.2:9200/_xpack/license?pretty' -u elastic:password -H "Content-Type: application/json"
7> kibana構成が追加されました
cat kibana.yml
...
elasticsearch.username: elastic
elasticsearch.password: zkwg123
#因为开启了elastic https传输所以要把http改为https
elasticsearch.hosts: ["https://localhost:9200"]
#ssl证书认证为none
elasticsearch.ssl.verificationMode: none
8>ヘッドポートメソッドへのアクセス(URLに追加されたパラメーター)
http://192.168.116.2:9100/?auth_user=elastic&auth_password=zkwg123