ELK 5.0 安装X-Pack

       最近在测试ELK5.0,因为当前环境需求,只部署了接收来自Windows AD server的日志,并且做了筛选,只接收一些重要的日志信息。因为是测试,也只部署了单点环境,运行了一个多月很稳定。

      当时为了测试X-Pack组件,所以下载了该组件,并参考了:http://www.jianshu.com/p/76abe4419465#comment-11172306,感谢分享!所以尝试对x-pack进行反编译,可以延长有效期并且升级到白金版,当然这只是用于测试,如果正式用于商业还是请购买License。

本例是基于先安装好免费版x-pack插件的情况下,对原来包文件进行反编译,修改免费许可文件,再重新编译,更新许可。

步骤概要:

1). 反编译x-pack-5.3.0.jar

下载Java反编译工具Windows 版 JD-GUI,地址:http://jd.benow.ca/。

打开jd-gui并添加x-pack-5.3.0.jar,找到org.elasticsearch/license/LicenseVerifier.class 对其进行反编译并保存为LicenseVerifier.java文件。

打开LicenseVerifier.java,将内容替换为:

package org.elasticsearch.license;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.nio.ByteBuffer;

import java.security.InvalidKeyException;

import java.security.NoSuchAlgorithmException;

import java.security.Signature;

import java.security.SignatureException;

import java.util.Arrays;

import java.util.Base64;

import java.util.Base64.Decoder;

import java.util.Base64.Encoder;

import java.util.Collections;

import org.apache.lucene.util.BytesRef;

import org.apache.lucene.util.BytesRefIterator;

import org.elasticsearch.common.bytes.BytesReference;

import org.elasticsearch.common.io.Streams;

import org.elasticsearch.common.xcontent.ToXContent.MapParams;

import org.elasticsearch.common.xcontent.XContentBuilder;

import org.elasticsearch.common.xcontent.XContentFactory;

import org.elasticsearch.common.xcontent.XContentType;

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). 将LicenseVerifier.java上传到ELK服务器/opt并重新编译成LicenseVerifier.class

# javac -cp "/usr/share/elasticsearch/lib/elasticsearch-5.3.0.jar:/usr/share/elasticsearch/lib/lucene-core-6.4.1.jar:/usr/share/elasticsearch/plugins/x-pack/x-pack-5.3.0.jar” LicenseVerifier.java

3). 将 /usr/share/elasticsearch/plugins/x-pack-5.3.0.jar 拷贝出到一个单独目录并解压缩,然后将刚生成的LicenseVerifier.class替换,然后重新生成x-pack-5.3.0.jar:

# cp /usr/share/elasticsearch/plugins/x-pack/x-pack-5.3.0.jar ./

# unzip x-pack-5.3.0.jar

# cp /opt/LicenseVerifier.class ./org/elasticsearch/license/

cp: overwrite ‘./org/elasticsearch/license/LicenseVerifier.class’? y

4). 重新将文件打包成x-pack-5.3.0.jar

# jar cf x-pack-5.3.0.jar *

5). 将新生成的x-pack-5.3.0.jar 拷贝到原来文件存放位置并覆盖旧文件

# cp x-pack-5.3.0.jar /usr/share/elasticsearch/plugins/x-pack/

cp: overwrite ‘/usr/share/elasticsearch/plugins/x-pack/x-pack-5.3.0.jar’? y

6). 到官网免费申请一个月有效期的license,地址为:https://license.elastic.co/registration, 申请License文件后下载到本地后修改字段:type后面的basic为platinum,即白金版,有所有功能,然后修改有效期expiry_date_in_millis后面的数字为:1811254440000,即2027年到期,可以通过命令 #date -d '2027-5-25 22:14' +%s 生成想要的日期,也可根据需要修改节点数max_nodes。

# date -d '2027-5-25 22:14' +%s

1811254440

此处生成的1811254440后面需要再加000,因为ELK官网生成的License时间格式有毫秒,否则License更新后无效!

7).更新 License:

# curl -XPUT -u elastic 'http://localhost:9200/_xpack/license' -H "Content-Type: application/json" -d @fly-fish-27156872a-a62d-416545-9e53-8ee6d542daas-v5.json

Enter host password for user 'elastic':

{"acknowledged":true,"license_status":"expired"}[root@elk-hz opt]#

“fly-fish-2756872a-a62d-4145-9e53-8eecd6d542da-v5.json”为License文件

8). 重新启动Elasticsearch服务,打开Kibana查看即可。

日期切换:

# date -d @2526601599999

Thu Oct 26 09:46:39 CST 82034

[root@elk-xx ~]# date -d @5526601599999

Sun Jan 13 15:06:39 CST 177101

[root@elk-xx ~]# date -d '2027-5-25 22:14' +%s

1811254440

[root@elk-xx ~]# date -d @1811254440

Tue May 25 22:14:00 CST 2027

注意官方的License文件日期后面有000,即精确到毫秒,所以文件里面所有日期都要这样,否则生成的license无效。

默认免费许可为1个月,延长10年后效果:


ELK 5.0 安装X-Pack_第1张图片

你可能感兴趣的:(ELK 5.0 安装X-Pack)