ELK Xpack 6.2.4 安装设置教程

最近闲来无事,一看官方的ELK日志已经的版本已经升级到6.2.4,之前弄的还都是2.* 版本,就有来安装了一次,这次添加了Xpack的相关破解内容,本操作仅供个人学习使用,切勿商用,如果商用后果自负

前期准备

  1. logstash 6.2.4
  2. xpack 6.2.4 离线安装包
  3. elasticsearch 6.2.4
  4. kibana 6.2.4
  5. Centos 7
  6. JDK 1.8
  7. yum localinstall

破解Xpack

把下载的安装包安装到Centos 7上,因为是学习使用的,所以部署在同一台机子上,
先安装elasticsearch ,安装之后,安装xpack的破解包,经过反编译源码分析,在6.2.4中定位了三个Java类,修改后可以破解
1. 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.Collections;


public class LicenseVerifier {
    public LicenseVerifier() {
    }

    public static boolean verifyLicense(License license, byte[] encryptedPublicKeyData) {
        //验证证书是否有效,修改为一直有效,不论什么情况
        return true;
    }

    public static boolean verifyLicense(License license) {
        //验证证书是否有效,修改为一直有效,不论什么情况
        return true;
    }
}
  1. XpackBuild.java 用来验证jar包是否被修改过
package org.elasticsearch.xpack.core;

import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;
import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.io.PathUtils;

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() {
        URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();

        try {
            return PathUtils.get(url.toURI());
        } catch (URISyntaxException var2) {
            throw new RuntimeException(var2);
        }
    }

    XPackBuild(String shortHash, String date) {
        this.shortHash = shortHash;
        this.date = date;
    }

    public String shortHash() {
        return this.shortHash;
    }

    public String date() {
        return this.date;
    }

    static {
        Path path = getElasticsearchCodebase();
        String shortHash = null;
        String date = null;
        //核心验证jar包是否被修改过
//        if (path.toString().endsWith(".jar")) {
//            try {
//                JarInputStream jar = new JarInputStream(Files.newInputStream(path));
//                Throwable var4 = null;
//
//                try {
//                    Manifest manifest = jar.getManifest();
//                    shortHash = manifest.getMainAttributes().getValue("Change");
//                    date = manifest.getMainAttributes().getValue("Build-Date");
//                } catch (Throwable var14) {
//                    var4 = var14;
//                    throw var14;
//                } finally {
//                    if (var4 != null) {
//                        try {
//                            jar.close();
//                        } catch (Throwable var13) {
//                            var4.addSuppressed(var13);
//                        }
//                    } else {
//                        jar.close();
//                    }
//
//                }
//            } catch (IOException var16) {
//                throw new RuntimeException(var16);
//            }
//        } else {
//            shortHash = "Unknown";
//            date = "Unknown";
//        }

        CURRENT = new XPackBuild(shortHash, date);
    }
}
  1. License.java 处理上传的授权证书验证,

安装elasticsearch 的xpack和破解xpack

直接安装已经破解过的xpack ,xpack安装包只有一个,可以直接给elasticsearch和kibana一起用

/usr/share/elasticsearch/bin/elasticsearch-plugin install files:///root/x-pack-6.2.4.zip

安装工程中需要输入两次y,同意
安装之后,设置密码,自动生成的密码一定要记住,最好粘贴出来

/usr/share/elasticsearch/bin/x-pack/setpassword auto

证书格式如下,这个日期是unix 时间戳单位,毫秒,这个证书事50年的

{
  "license": {
    "uid": "aa",
    "type": "platinum",
    "issue_date_in_millis": 1519689600000,
    "expiry_date_in_millis": 2524579200999,
    "max_nodes": 1000,
    "issued_to": "aa",
    "issuer": "Web Form",
    "start_date_in_millis": 1519689600000
  }
}

上传证书前,需要修改配置文件,由于6.0之后上传证书必须为ssl模式,这里为了方便,先关了,不然验证无法通过,等上传完证书后,再调整这里的配置

$ vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: false

上传之后,配置文件改为如下内容

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

然后重启elasticsearch
到这里elasticsearch的xpack安装和破解已经完成,接下来设置kibana的xpack和汉化

安装kibana的xpack和汉化

kibana 也需要xpack来,加上xpack之后,可以直接有安全管理,机器学习,图形关系等等功能

已经安装kibana之后,由于上一步,elasticsearch安装之后已经生成了密码,kibana再读取elasticsearch就需要用到上面生成的账号和密码,这里修改一下配置

$ vim /etc/kibana/kibana.yml
elasticsearch.username: elastic
elasticsearch.password: ******

安装xpack

/usr/share/kibana/bin/kibana-plugin install files:///root/x-pack-6.2.4.zip

安装工程中可能会卡在cache bundle的文字中,如果时间过长的话,点击回车即可

安装之后,接下来可以用汉化包 来汉化kibana的界面,汉化程度还是很高的大概有98%以上
汉化流程
先下载汉化库到本地,然后执行以下命令

git clone https://github.com/anbai-inc/Kibana_Hanization kibana-zh
cd kibana-zh
python main.py /usr/share/kibana/

等待汉化完成即可

利用logstash导入json文件

配置如下 记得改密码为你自己生成的密码
vim a.conf

input {
    file {

        path => ["/root/logfile/logstash-2018-06-01.json"]
        codec => json {
            charset => "UTF-8"
        }
        discover_interval => 1
        start_position => "beginning"
    }
}

output {

    stdout {
        codec => rubydebug
    }

    elasticsearch {
        hosts => "localhost:9200"
        user => "elastic"
        password => "*****"

    }
}

命令

/usr/share/logstash/bin/logstash -f a.conf

导入成功,可以在界面查看,查看需要输入账号和密码,第一部生成的

http://localhost:9200/_cat/indices?v&pretty
展开阅读全文

没有更多推荐了,返回首页