x-pack-5.6.10激活教程

x-pack-5.6.10激活教程

简介

X-Pack 已经作为 Elastic 公司单独的产品线,前身是 Shield, Watcher, Marvel, Graph, 和 reporting,先来说说这几个是做什么的吧:
    Shield: 提供对数据的 Password-Protect,以及加密通信、基于角色的权限控制,IP 过滤,审计,可以有效地:

  •         防止未授权的访问:基于 Password-Protect,基于角色的权限控制,IP过滤;
  •         保证数据的完整性:基于消息认证和 TLS/SSL 加密;
  •         审计跟踪:可以知道谁在什么时候对数据做了什么;

    Watcher: 提供对数据操作的变更的监控和报警。
    Marvel: 基于 Kibana 的插件,主要用于监控 ES 集群。可以看到集群的健康状况、实时的性能指标,分析历史集群、索引、节点的指标等。
    Graph: 用于分析数据间的关系。
    Reporting: 用于快速生成 Kibana Visualization 和 Dashboard 的报表,可以对生成的时间定制计划,并且可以由某些特定条件触发。
X-Pack 是个大合集,便于安装、不用为版本兼容性犯愁,可以灵活 disable / enable 其中的各个组件。他还多干了一件事儿,可以监控 Logstash。

安装

下载对应版本的x-pack,注意一定一定一定要对应,否则装不了,我这里是5.6.10的版本。
下载地址:https://download.csdn.net/download/qq_42986261/10607939

1、elasticsearch安装x-pack,提示[y/N]选择y下一步即可
[elasticsearch@elk-node1 ~]$ cd /usr/local/elasticsearch-5.6.10/bin/
[elasticsearch@elk-node1 bin]$ ./elasticsearch-plugin install file::///usr/local/application/x-pack-5.6.10.zip
2、kibana安装x-pack,由于要刷入缓存文件时间会久点。
[root@elk-node1 ~]# cd /usr/local/kibana-5.6.10-linux-x86_64/bin/
[root@elk-node1 bin]# ./kibana-plugin install file::///usr/local/application/x-pack-5.6.10.zip
3、logstash安装x-pack
[root@elk-node1 bin]# cd /usr/local/logstash-5.6.10/bin
[root@elk-node1 bin]# ./logstash-plugin file::///usr/local/application/x-pack-5.6.10.zip 

 注意:安装完x-pack插件之后logstash的xxx.conf读取日志文件需要添加密码。默认密码:elstic/changeme

破解

1、执行这边命令我们看到license有效期"expiry_date"为30天

[root@localhost bin]# curl -XGET -u elastic:changeme 'http://localhost:9200/_xpack/license'
{
  "license" : {
    "status" : "active",
    "uid" : "45c0eea9-b813-4895-86f5-e7bd824a8e36",
    "type" : "trial",
    "issue_date" : "2018-08-10T09:42:45.745Z",
    "issue_date_in_millis" : 1533894165745,
    "expiry_date" : "2018-09-09T09:42:45.745Z",
    "expiry_date_in_millis" : 1536486165745,
    "max_nodes" : 1000,
    "issued_to" : "elasticsearch",
    "issuer" : "elasticsearch",
    "start_date_in_millis" : -1
  }
}

2、任意目录下创建LicenseVerifier.java 文件

[root@elk-node1 local]# cat 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;
    }
}

3、编译class文件

$ javac -cp "/usr/local/elasticsearch-5.6.10/lib/elasticsearch-5.6.10.jar:/usr/local/elasticsearch-5.6.10/lib/lucene-core-6.6.1.jar:/usr/local/elasticsearch-5.6.10/plugins/x-pack/x-pack-5.6.10.jar"  LicenseVerifier.java
$ ls License*
LicenseVerifier.class  LicenseVerifier.java
# 进入x-pack目录
$ cd /usr/local/elasticsearch-5.6.10/plugins/x-pack
$ mkdir test
$ mv x-pack-5.6.10.jar test/
# 备份文件
$ cp x-pack-5.6.10.jar /tmp
# 解压文件
$ jar xvf x-pack-5.6.10.jar
# 替换 class
$ cp /usr/local/LicenseVerifier.class org/elasticsearch/license
# 删除旧的x-pack-5.6.10.jar
$ rm -fr x-pack-5.6.10.jar
# 打包
$ jar cvf x-pack-5.6.10.jar .
# 打包好的文件放回x-pack目录下
$ cp x-pack-5.6.10.jar /usr/local/elasticsearch-5.6.0/plugins/x-pack/

4、申请license
申请地址 https://license.elastic.co/registration,申请完成后很快会发送到邮箱,而后修改license文件。
它分有不同的版本,版本有不同的权限,如下:

  1.     open source开源版本
  2.     basic基础版本
  3.     gold是黄金版
  4.     PLATINUM铂金版

修改license邮箱中有个链接,点击下载文件。
主要修改:type改为platinum表示可以使用所有功能 ; expiry_date_in_millis表示使用期限,可以根据转换的时间戳填入注意后面的999也加上。
5、重命名为license.json放在自己喜欢的目录下,到该目录下执行更新
[root@localhost local]# curl -XPUT -u elastic:changeme 'http://192.168.1.105:9200/_xpack/license' -d @license.json
{"acknowledged":true,"license_status":"valid"}You have new mail in /var/spool/mail/root
6、重启elasticsearch我们看到license有效期已经为50年了。

[root@localhost local]# curl -XGET -u elastic:changeme 'http://localhost:9200/_xpack/license'
{
  "license" : {
    "status" : "active",
    "uid" : "0788f97d-621c-4317-9ceb-97fe85c69aad",
    "type" : "platinum",
    "issue_date" : "2018-08-11T00:00:00.000Z",
    "issue_date_in_millis" : 1533945600000,
    "expiry_date" : "2068-08-11T14:37:59.999Z",
    "expiry_date_in_millis" : 3111921479999,
    "max_nodes" : 100,
    "issued_to" : "he jianlai (alibaba)",
    "issuer" : "Web Form",
    "start_date_in_millis" : 1533945600000
  }
}

 x-pack功能开关

Setting                                        Description
xpack.security.enabled               设置为 false 可以关闭 X-Pack security 功能。需要在 elasticsearch.yml 和 kibana.yml 同时配置。
xpack.monitoring.enabled          设置为 false 可以关闭 X-Pack monitoring 功能。 需要在elasticsearch.yml 和 kibana.yml 同时配置。
xpack.graph.enabled                 设置为 false 可以关闭 X-Pack graph 功能。 需要在elasticsearch.yml 和 kibana.yml 同时配置。
xpack.watcher.enabled              设置为 false 可以关闭 Watcher 功能。 只需要在 elasticsearch.yml 配置。
xpack.reporting.enabled            设置为 false 可以关闭 reporting 功能。 只需要在 kibana.yml 配置。

登录kibana,也可以看到相关信息:

参数介绍


集群级别:
        Uptime : 集群运行时间;
    节点级别:
        Disk Available:可用磁盘;
        JVM Heap: JVM 使用情况;
    索引级别:
        Indices:索引数量,相当于数据库数;
        Documents:文档数量,相当于记录数;
        Disk Usage:磁盘使用情况;
        Primary Shards:分片数;
        Replica Shards:冗余分片数;

Overview
相较于集群健康视图,这里的指标更多:

    Serach Rate (/s):近1小时的查询速率,QPS;
    Search Latency (ms):近1小时的查询延迟;
    Index Rate (/s):近1小时的索引速率,IPS;
    Index Latency (ms):近1小时的索引延迟;
    Shard Activity:对于 Shard 的操作历史;

Indices
索引视角的监控视图,包含以下指标:
    Document Count:文档数;
    Data:数据量;
    Index Rate:索引速率;
    Search Rate:查询速率;
    Unassigned Shards:未分配的分片数;
点击 Index Name 可以进入查看对于索引的详细基础监控:
    Index Memory (KB):索引内存使用,分为 Lucene、Term、Points;
    Index Size (MB):索引大小;
    Search Rate (/s):查询速率;
    Indexing Rate (/s):索引速率;
    Segment Count:段数;
    Document Count:文档数;
    Shard Legend:分片状态图谱,分为 Primary, Replica,Relocating,Initializing,Unassigned Primary,Unassigned Replica 多个状态。
点击 Advanced 可以看到高级监控页面,请读者自己去感受下。
Nodes
节点监控,首先看到的是概述指标:
    CPU Usage: CPU 使用率;
    Load Average:CPU 平均负载;
    JVM Memory:JVM 使用情况;
    Disk Free Space:磁盘空闲空间;
    Shards:分片数;
点击某个节点我们可以看到详细基础监控:
    JVM Heap (GB):JVM 使用情况;
    Index Memory (KB):索引占用内存;
    CPU Utilization (%):CPU 使用率;
    System Load:系统负载;
    Latency (ms):延迟,分为索引和查询;
    Segment Count:段数量;
    Shard Legend:分片状态图谱, Primary, Replica,Relocating,Initializing多个状态。

基于角色的权限控制
该功能的入口在 Management -> Users/Roles。Users 可以方便的管理用户并且对其赋予角色,角色和权限挂钩。Roles 可以方便的管理角色,对其进行赋权。Role 是 Permission 的集合,Permission 是 Privilege 的集合,下面来说说权限:
    集群权限(Cluster Privilege);
    Run As Privileges:可以使得新建角色拥有所选用户集的权限;
    索引权限(Index Privilege):
        Indices:指定在哪些索引上赋权;
        Privileges:指定赋予哪些权限;
        Granted Documents Query(可选):指定在哪些 Query 上赋权;
        Granted Fields(可选):指定在哪些 fields 上赋权;
其中,集群权限和索引权限的详细细分权限如下:
Cluster Privileges
权限类型                               权限描述
all                                          所有群集管理操作,如快照,节点关闭/重新启动,设置更新,重新路由或管理用户和角色。
monitor                                 所有集群只读操作,如集群健康状态,热线程,节点信息,节点和集群统计信息,快照/恢复状态,挂起集群任务。
manage                                构建在监视器上,并添加可更改集群中值的集群操作。这包括快照,已检查的设置和重新路由。此权限不包括管理安全性的能力。
manage_security                  所有与安全性相关的操作,如对用户和角色的CRUD操作以及缓存清除。
manage_index_templates    对索引模板的所有操作。
manage_pipeline                 对管道的所有操作。
transport_client                    传输客户端连接所需的所有权限。
Indices Privileges
权限类型                              权限描述
all                                         所有索引操作权限。
monitor                                监控(恢复,细分信息,索引统计信息和状态)所需的所有操作。
manage                               所有监视器权限和索引管理( aliases, analyze, cache clear, close, delete, exists, flush, mapping, open, force merge, refresh, settings, search shards, templates, validate
view_index_metadata         只读访问索引元数据(aliases, aliases exists, get index, exists, field mappings, mappings, search shards, type exists, validate, warmers, settings)。此权限主要供Kibana用户使用。
read                                     只读访问操作(count, explain, get, mget, get indexed scripts, more like this, multi percolate/search/termvector, percolate, scroll, clear_scroll, search, suggest, tv)。还授予对更新映射操作的访问权限。
index                                    索引和更新文档的权限。还授予对更新映射操作的访问权限。
create                                   索引文档的权限。还授予对更新映射操作的访问权限。
delete                                   删除文档的权限。
write                                     对文档执行所有写操作的权限,包括对文档进行索引,更新和删除以及执行批量操作的权限。还授予对更新映射操作的访问权限。
delete_index                        删除索引的权限。
create_index                        创建索引的权限。创建索引请求可能包含在创建后添加到索引的别名。在这种情况下,请求还要求在索引和别名名称上具有manage特权。

kibana添加roles授权相关索引。

[root@localhost ~]# curl -XPOST -u elastic 'localhost:9200/_xpack/security/role/test_user' -H "Content-Type: application/json" -d '
> {
>   "indices" : [
>     {
>       "names" : [ "test_resource" ],
>       "privileges" : [ "all" ]
>     },
>     {
>       "names" : [ ".kibana*" ],
>       "privileges" : [ "manage", "read", "index" ]
>     }
>   ]
> }'
Enter host password for user 'elastic':
{"role":{"created":true}}You have new mail in /var/spool/mail/root

修改用户密码语句

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

 

posted @ 2018-08-16 15:13  西门运维  阅读(728)  评论(0编辑  收藏  举报