跳步骤
配置完步骤3可以直接使用这里的jar包和json文件完成;直接步骤5。
es 6.4.2 的jar包 x-pack-core-6.4.2.jar(博客不知道怎么上传包)
关闭es服务
systemctl stop elasticsearch.service
备份默认的es的jar包
cd /data/elasticsearch/modules/x-pack-core
mv x-pack-core-6.4.2.jar x-pack-core-6.4.2.jar-old
#替换新jar包
mv x-pack-core-6.4.2.crack.jar x-pack-core-6.4.2.jar
chown -R elasticsearch:elasticsearch x-pack-core-6.4.2.jar
systemctl start elasticsearch.service
#替换es默认的jar包
cp x-pack-core-6.4.2.crack.jar /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar
es 6.4.2 证书json文件(博客不知道怎么上传包)
上传这个json
千万别急着更新,先试用30天,完成服务器更改,在替换证书
1、说明:
es 6.8版本及以后的版本x-pack功能没有有效期限制;es6.4使用x-pack需要破解或者试用一个月。
2、前提:
elk完成
3、配置x-pack
3.1、开启试用
kibana请先点击试用再配置x-pack的相关证书。
证书管理
开启试用
显示一个月的试用期
不这样操作设置密码时会提示x-pack不可用;有其他设置密码不报错可以新加进来。
3.2、生成证书
#创建证书目录
mkdir /etc/elasticsearch/certs/
cd /usr/share/elasticsearch/bin
#生成证书 -out指定生成路径
./elasticsearch-certutil ca -out /etc/elasticsearch/certs/elastic-certificates.p12 -pass ""
#证书文件授权
chmod 660 /etc/elasticsearch/certs/*
3.3、配置证书
#es的主配置文件根据实际的es安装路径决定
vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
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
3.4、重启es
systemctl restart elasticsearch.service
3.5、验证
现在直接请求es或者登陆kiban就不行了
kibana界面提示
到此配置证书成功
3.6、设置密码
./bin/elasticsearch-setup-passwords auto
#生成的密码记录下
3.7、配置Kibana
Kibana连接Elasticsearch的凭据,若使用kibana账户则无法链接
vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "xxxx"
server.name: "xxxx"
elasticsearch.url: "http://xxxx:9200"
elasticsearch.username: "elastic"
elasticsearch.password: "xxxx"
#重启Kibana应用以刷新配置
systemctl restart kibana.service
4、更新证书许可(上传不了包,所以就一步步来吧)
使用反编译工具打开x-pack-core-6.4.2.jar是.class文件
修改的jar包是
/usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar
jar里面的2个文件是
org.elasticsearch.license.LicenseVerifier.java
org.elasticsearch.xpack.core.XPackBuild.java
Java反编译工具luyten
luyten项目地址:
https://github.com/deathmarine/Luyten 下载反编译工具
https://github.com/deathmarine/Luyten/releases/tag/v0.5.4_Rebuilt_with_Latest_depenencies Windows安装包:
https://github.com/deathmarine/Luyten/releases/download/v0.5.4_Rebuilt_with_Latest_depenencies/luyten-0.5.4.exe
4.1、修改文件 ./org/elasticsearch/xpack/core/XPackBuild.class
XPackBuild 中 最后一个静态代码块中 try的部分全部删除,这部分会验证jar包是否被修改
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);
}
}
4.2、修改文件jar/org/elasticsearch/license/LicenseVerifier.class
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;
}
}
4.3、编译Java程序
把es源代码x-pack-core-6.4.2.jar解压,替换掉这2个文件 LicenseVerifier.java、XPackBuild.java
mkdir /mnt/jar/
cd /mnt/jar/
备份
cp /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar x-pack-core-6.4.2.jar-bak
解压:
jar -xvf x-pack-core-6.4.2.jar 该命令会解压到当前目录
编译Java程序,把2个.java文件编译为class文件
#编译LicenseVerifier.java es程序目录/usr/share/elasticsearch/modules/根据实际安装路径决定
javac -cp "/usr/share/elasticsearch/modules/x-pack-core/*:/usr/share/elasticsearch/lib/*" LicenseVerifier.java
#编译XPackBuild.java es程序目录/usr/share/elasticsearch/modules/根据实际安装路径决定
javac -cp "/usr/share/elasticsearch/modules/x-pack-core/*:/usr/share/elasticsearch/lib/*" XPackBuild.java
替换class文件
cp /mnt/LicenseVerifier.class /mnt/jar/org/elasticsearch/license/
cp /mnt/XPackBuild.class /mnt/jar/org/elasticsearch/xpack/core/
打成新的jar包
cd /mnt/
jar -cvf x-pack-core-6.4.2.crack.jar -C jar/ . //把jar目录下所有打包成名为x-pack-core-6.4.2.crack.jar
#替换原始的jar包,将重新打包破解的jar替换到Elasticsearch对应的目录中
cp x-pack-core-6.4.2.crack.jar /usr/share/elasticsearch/modules/x-pack-core/x-pack-core-6.4.2.jar
重启es
logstash 配置
找到logstash所在服务器,修改其配置项
vim conf.d/zhuizhi_logstash.conf
举例说明output下面都要添加的,这里拿一个举例子
output {
if[type] == "monitor"{
elasticsearch{
hosts => ['xxxxxxxx:9200']
user => "elastic"
password => xxxxxxxx
index => "monitor-%{+YYYY.MM.dd}"
timeout => 300
}
#这里填写为elastic的密码
重启logstash
备份别备份在这个目录下,重启他会识别两个文件的,搞了一周就因为这个问题,坑死了!
6、更新普通版本为白金版
在官网上申请一个许可证:https://register.elastic.co/marvel_register
填写资料后会有一个送邮件,下载对应的es版本,是一个json格式的文件,修改完成后kibana上传。
修改type字段为platinum,表示铂金版
修改expiry_date_in_millis字段为2147482800000,表示时间尽头,时间戳格式必须和官方的一致不然上传不成功。
修改max_nodes字段为1000,表示集群数量
json
{
"license": {
"uid": "aa",
"type": "platinum",
"issue_date_in_millis": 1519689600000,
"expiry_date_in_millis": 2524579200999,
"max_nodes": 1000,
"issued_to": "aa",
"issuer": "Web Form",
"signature": "AAAAAwAAAA019",
"start_date_in_millis": 1519689600000
}
}
验证证书