美文网首页
[8]es和kibana安装x-pack以及使用x-pack进行

[8]es和kibana安装x-pack以及使用x-pack进行

作者: 不怕天黑_0819 | 来源:发表于2022-03-25 14:19 被阅读0次

    本文集主要是总结自己在项目中使用ES 的经验教训,包括各种实战和调优。

    安装前需要先关闭elasticsearch的服务

    wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.3.0.zip

    bin/elasticsearch-plugin install file:///path/to/file/x-pack-5.3.0.zip

    bin/kibana-plugin install file:///path/to/file/x-pack-5.3.0.zip 安装之后会在plugins下面出现一个x-pack的文件夹。

    之后在elasticsearch.yml中添加权限验证 xpack.security.enabled: false

    卸载的方式:

    bin/elasticsearch-plugin remove x-pack

    bin/elasticsearch-plugin install x-pack

    激活license:curl -XPUT -u elastic:password 'http://<host>:<port>/_xpack/license' -d @license.json

    如果前后版本变化需要添加上acknowledge=true

    curl -XPUT -u elastic:password 'http://<host>:<port>/_xpack/license?acknowledge=true' -d @license.json

    curl -XPUT 'http://localhost:9200/_xpack/license?acknowledge=true' -d @test1-test1-53425a61-bea9-4a37-8a39-3b70298f516c.json(这个json文件需要去官网上注册下载)

    kibana后台启动: nohup bin/kibana & 。然后在按任意键就可以了。

    关于kibana界面功能的使用介绍:http://www.cnblogs.com/Leo_wl/p/6181563.html



    X-pack的破解说明


    主要总结x-pack的破解说明:elasticsearch的x-pack主要做监控使用,但是同时涵盖了其他丰富的功能,具体使用可以参考x-pack的官方文档。https://www.elastic.co/guide/en/x-pack/current/installing-license.html

    但是x-pack只有一个月的有效期,注册以后免费版可以使用一年。但是只能使用基本版。功能会受到影响。 具体区别参照链接: https://www.elastic.co/subscriptions

    x-pack获取一年免费使用的网址,注册后会给邮箱发送链接,按照邮箱提示下载相应版本得license,注册链接:https://register.elastic.co/xpack_register


    下载5.3.0的zip文件,wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.3.0.zip

    解压后找到x-pack-5.3.0.jar,其中的org.elasticsearch/license/LicenseVerifier.class主要用来进行权限验证,修改相应文件。修改后的文件如下,可以通过main方法编译,也可以用过tomcat编译成class文件。其中需要如下jar包,已放置文件最底部。之后将编译好的class文件替换原先的x-pack-5.3.0.jar中。


    然后将该jar包传到elasticsearch安装路径的plugin/x-pack下,替换掉原先的jar包。

    执行激活license命令:curl -XPUT -u elastic:password 'http://<host>:<port>/_xpack/license?acknowledge=true' -d @license.json

    其中license.json为我们官网注册以后获得的json文件,可以对这个文件进行修改。

    文件中的type分为三种,即basic、gold、platinum三种。expiry_date_millis为到期时间,写的是unix时间格式。其他参数可以根据自己的需求进行更改。其中signature貌似不能大改,会验证长度之类的吧,要改动的话需要自己修改其他的class文件。可以通过curl -XGET 'http://localhost:9200/_xpack/license'查看license的信息,也可以在kibana的monitoring中看到我们的license信息。

    破解的代码

    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 void main(String[] args){
            System.out.println("wyj 破解成功");
        }
        public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
            return true;
        }
    
        public static boolean verifyLicense(final License license) {
            return true;
        }
    
    }
    

    参考链接:http://blog.csdn.net/mvpboss1004/article/details/65445023

    es 文集里需要的各项文件都存储在网盘上。
    链接: https://pan.baidu.com/s/1FcV-V9ie0Lf3aW1J5bpfrQ 提取码: 73et



    如何注册License

    注册es产品:https://register.elastic.co/xpack_register

    更新license,Updating Your License 官方文档https://www.elastic.co/guide/en/x-pack/current/installing-license.html

    注册用户获取基础license,有效期1年https://register.elastic.co/xpack_register

    curl -XPUT -u elastic:password 'http://<host>:<port>/_xpack/license' -d @license.json

    @license.json 申请得到的json文件,复制文件中的所有内容,粘贴在此。

    如果提示需要acknowledge,则设置为true curl -XPUT -u elastic:password 'http://<host>:<port>/_xpack/license?acknowledge=true' -d @license.json

    查看license的:curl -XGET 'http://localhost:9200/_xpack/license'


    使用x-pack进行权限验证

    es使用x-pack进行权限验证的过程记录:

    • 首先在es和kibana的配置中把xpack.security.enabled: true.

    • 同时kibana的配置文件中设置
      elasticsearch.username: "elastic"
      elasticsearch.password: "changeme" //es x-pack中默认的帐号密码是elastic:changeme

    • 开启权限验证以后,登录kibana就需要输入帐号密码了。同时在kibana的management里面可以新建帐号和密码,同时可以配置权限。具体可参考官网链接:https://www.elastic.co/guide/en/x-pack/current/security-getting-started.html 可以设置用户组、修改密码等等.具体命令的使用还是以官方文档为标准。

    修改elastic用户的密码:(修改密码需要高级权限的帐号作为严重。所以命令都有带上 -u elastic,之后会让输入elastic账号的密码进行验证)

    curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{
      "password" : "123456"
    }'
    

    修改kibana用户的密码:

    curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/kibana/_password' -d '{
      "password" : "123456"
    }'
    

    创建用户组和角色,创建所属用户

    eg:创建beats_admin用户组,该用户组对filebeat有all权限,对.kibana有manage,read,index权限

    curl -XPOST -u elastic 'localhost:9200/_xpack/security/role/beats_admin' -d '{
      "indices" : [
        {
          "names" : [ "filebeat*" ],
          "privileges" : [ "all" ]
        },
        {
          "names" : [ ".kibana*" ],
          "privileges" : [ "manage", "read", "index" ]
        }
      ]
    }'
    

    创建jockbeat用户,密码是jockbeat

    curl -XPOST -u elastic 'localhost:9200/_xpack/security/user/jockbeat' -d '{
      "password" : "jockbeat",
      "full_name" : "jock beat",
      "email" : "john.doe@anony.mous",
      "roles" : [ "beats_admin" ]
    }'
    
    

    查看一个用户的权限:
    GET /_xpack/security/user/userName

    查看两个用户的权限:
    GET /_xpack/security/user/userName1,userName2

    查看全部用户的权限:
    GET /_xpack/security/user

    其他删除、更新命令可参考官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.5/security-api-users.html

    网上找了个实例,说是可以设置分片的rerouting。链接如下:http://www.wklken.me/posts/2015/05/23/elasticsearch-issues.html 但是rerouting也有可能丢数据,同时连接中的方法在5.3的情况下不太对,所以还需要参考官网的rerouting方法。如下:https://www.elastic.co/guide/en/elasticsearch/reference/5.3/cluster-reroute.html


    使用x-pack以后,API使用上的变化。

    原先的api方法:

    @PostConstruct
    
    public void init() throws UnknownHostException {
    
    // 设置集群名称
    
    Settings settings = null;
    
    if (Constant.isLocal) {
    
    settings = Settings.builder().put("cluster.name", clusterName).build();
    
    } else {
    
    settings = Settings.builder().put("cluster.name", clusterName).put("client.transport.sniff", true).build();
    
    }
    
    // 创建client
    
    client = new PreBuiltTransportClient(settings);
    
    if (hosts.get(0).equalsIgnoreCase(hosts.get(hosts.size() - 1))) {
    
    client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(hosts.get(0)), Integer.parseInt(port)));
    
    } else {
    
    for (String host : hosts) {
    
    client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), Integer.parseInt(port)));
    
    }
    
    }
    
    if (client == null) {
    
    log.error("create client error");
    
    }
    
    }
    
    

    变更之后的api:

    变更之后,需要使用PreBuiltXPackTransportClient 来创建新的client,同时配置如下属性,.put("xpack.security.user", "transport_client_user:changeme")

    官网示例如下:

    
    
    TransportClient client = new PreBuiltXPackTransportClient(Settings.builder()
            .put("cluster.name", "myClusterName")
            .put("xpack.security.user", "transport_client_user:changeme")
            ...
            .build())
        .addTransportAddress(new InetSocketTransportAddress("localhost", 9300))
        .addTransportAddress(new InetSocketTransportAddress("localhost", 9301));
    
    

    需要配置pom.xml ,依赖的配置可以参考官方文档:https://www.elastic.co/guide/en/x-pack/5.3/java-clients.html

    相关文章

      网友评论

          本文标题:[8]es和kibana安装x-pack以及使用x-pack进行

          本文链接:https://www.haomeiwen.com/subject/wsiirktx.html