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/106079391、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.zip2、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.zip3、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.javapackage 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文件。它分有不同的版本,版本有不同的权限,如下:- open source开源版本
- basic基础版本
- gold是黄金版
- 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/root6、重启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, validateview_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"}'