基于ES6.6.2安装破解x-pack

声明:本文不包含任何交易,如有侵权,请联系我进行删除

本环境版本为:elasticsearch-6.6.2

从6.3+版本起,xpack已内置于es,已不需要安装插件。

正题开始:

第一步:生成ca证书

在elasticsearch/bin目录下执行:(我四条命令均是一直按回车,不设置密码)

./elasticsearch-certutil ca ##会让输入密码,也可以直接回车使用默认密码 
./elasticsearch-certutil cert --ca elastic-stack-ca.p12 
./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password 
./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

执行完成后,在bin下产生elastic-stack-ca.p12、elastic-certificates.p12 两个文件,在config目录下产生elasticsearch.keystore文件(如果不在config下,将elasticsearch.keystore移动到config)。将三个文件发送至所有es服务对应目录下。

第二步:配置x-pack

在config下创建certs目录。(所有es服务均需要操作)

mkdir certs

将elastic-stack-ca.p12、elastic-certificates.p12 两个文件放在certs目录下(所有es服务均需要操作)

三个文件结构如下图:(一定注意文件位置!!)

添加配置 elasticsearch.yml (所有es服务均需要操作)

xpack.security.enabled: true 
xpack.license.self_generated.type: basic 
xpack.security.transport.ssl.enabled: true 

xpack.security.transport.ssl.verification_mode: certificate 
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

第三步:开启x-pack试用和破解

开启试用:

curl -H "Content-Type:application/json" -XPOST http://10.91.1.87:9200/_xpack/license/start_trial?acknowledge=true

不开启试用,执行./elasticsearch-setup-passwords interactive会报如下错误

破解x-pack方法

创建一个临时录目录,并进入目录

mkdir /root/xpack

创建 LicenseVerifier.java

vim 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; 
    } 
}

创建 XPackBuild.java

vim XPackBuild.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); 
    }
}

分别编译 LicenseVerifier.java 和 XPackBuild.java

javac -cp "/opt/bdp/data01/es01/elasticsearch-6.6.2/lib/elasticsearch-6.6.2.jar:/opt/bdp/data01/es01/elasticsearch-6.6.2/lib/lucene-core-7.6.0.jar:/opt/bdp/data01/es01/elasticsearch-6.6.2/modules/x-pack-core/x-pack-core-6.6.2.jar" LicenseVerifier.java 
javac -cp "/opt/bdp/data01/es01/elasticsearch-6.6.2/lib/elasticsearch-6.6.2.jar:/opt/bdp/data01/es01/elasticsearch-6.6.2/lib/lucene-core-7.6.0.jar:/opt/bdp/data01/es01/elasticsearch-6.6.2/modules/x-pack-core/x-pack-core-6.6.2.jar:/opt/bdp/data01/es01/elasticsearch-6.6.2/lib/elasticsearch-core-6.6.2.jar" XPackBuild.java

编译后生成两个与 .java同名的 .class文件

将原来的x-pack-core-6.6.2.jar class文件覆盖。

mkdir tmp && cd tmp 
cp /opt/bdp/data01/es01/elasticsearch-6.6.2/modules/x-pack-core/x-pack-core-6.6.2.jar ./ 
jar -xf x-pack-core-6.6.2.jar ##解压 
cp ../LicenseVerifier.class org/elasticsearch/license/ ##替换文件 
cp ../XPackBuild.class org/elasticsearch/xpack/core/ ##替换文件 
jar -cvf x-pack-core-6.6.2.jar * ##再压缩

将生成的 x-pack-core-6.6.2.jar 发送到所有es,覆盖原来的jar文件

第四步:重启机器并设置密码

重启es

此时 通过 curl http://10.91.1.87:9200/_cluster/health?pretty 无法观察集群状态

观察其中一台master日志,集群状态由red变为yellow

Cluster health status changed from [RED] to [YELLOW]

执行生成密码:

./elasticsearch-setup-passwords interactive

输入自己的密码。直至结束。

通过用户密码查看集群将康状态,可以查看,x-pack生效。

第五步:申请license

查看当前es集群的license信息

curl -u "elastic":"123123" http://10.91.1.81:9200/_license

type 表示在试用,expiry_date 显示一个月后过期

登录官网,申请一个license

Register | Elastic

国家选 china , 邮箱写自己能接收邮件的邮箱,其他随便写。

接收邮件并下载json文件。

打开文件并修改内容:

"type": "platinum" ##白金版

"expiry_date_in_millis": 2547615064000 ##到期日期2050-09-24 14:51:04

第六步:上传license

上传license 三台master都要执行

curl -XPUT -u "elastic":"123123" 'http://10.91.1.81:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json

再次查看license信息,到期时间已经变为2050年了

至此 结束,搞了一天半(烦死了),查了各种文档博客,此篇为综合了自己的操作和文档支持揉搓的我的整体心酸流程,希望其他人不要踩坑,顺利完成。

参考文献:

感谢各位博客大佬提供的文档支持!!!!!

Elasticsearch6.3.2之x-pack-腾讯云开发者社区-腾讯云

Elasticsearch 安装 X-pack_elasticsearch xpack-CSDN博客

ElasticSearch学习(十二)—— es7.2日志警告SSLHandshakeException: no cipher suites in common-CSDN博客

elk集群配置并破解x-pack,部署elk - 开发者博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 3.6.2是一个非常流行的Python版本。以下是一些Python 3.6.2项目实践的建议: 1. 使用Python虚拟环境:虚拟环境是Python项目中的一个重要组成部分。它可以帮助您在项目之间隔离依赖关系,以确保不同项目之间的依赖关系不会相互干扰。 2. 使用模块和包:Python的模块和包是组织和管理代码的重要工具。使用模块和包可以将您的代码分解为较小、更易于管理的部分。 3. 使用Python标准库:Python标准库包含许多有用的模块和工具,可以帮助您完成各种任务。在编写Python 3.6.2项目时,应始终考虑使用适当的标准库模块。 4. 使用第三方库:Python社区中有许多优秀的第三方库可供使用。在编写Python 3.6.2项目时,应始终考虑使用适当的第三方库。 5. 使用适当的工具:Python有许多工具可以帮助您编写、测试和部署项目。例如,使用Pytest进行单元测试,使用Sphinx生成文档,使用Git进行版本控制等。 6. 采用良好的代码风格:良好的代码风格可以让您的代码更易于阅读和维护。应该遵循PEP 8代码风格指南,并使用适当的命名约定、注释和缩进。 7. 进行代码审查:代码审查是确保代码质量和可维护性的重要步骤。应该让其他人审查您的代码,并处理他们提出的任何问题和建议。 8. 使用适当的开发方法论:使用适当的开发方法论可以帮助您更好地组织和管理项目。例如,可以使用敏捷开发方法论进行迭代式开发,使用持续集成和交付进行自动化构建和测试等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值