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文件。
它分有不同的版本,版本有不同的權限,如下:
- 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/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" }‘
x-pack-5.6.10激活教程