centos7安裝elasticsearch6.3.x集群並破解安裝x-pack


一、環境信息及安裝前准備

主機角色(內存不要小於1G):

 

軟件及版本(百度網盤鏈接地址和密碼:鏈接: https://pan.baidu.com/s/17bYc8MRw54GWCQCXR6pKjg 提取碼: f6w8)  #如果失效可以發送郵件到13693200275@163.com

部署前操作:

關閉防火牆,關閉selinux(生產環境按需關閉或打開)
同步服務器時間,選擇公網ntpd服務器或者自建ntpd服務器

二、ES集群安裝配置

1.安裝jvm依賴環境(其他節點相同操作)

elk運行需要jvm環境,5.X及6.X版本需要orcale JDK 1.8或者open-jdk1.8.0版本(多節點的JDK版本確保一致,包括小版本號,否則加入集群時可能報錯,另外小版本號請優先選擇結尾為奇數的版本。)
[root@es-node1 ~]# rpm -ivh jdk-8u25-x64.rpm Preparing... ########################################### [100%] 1:jdk1.8.0_181           ########################################### [100%]

設置Java環境

[root@es-node-1 ~]# cat /etc/profile.d/java.sh #編輯java環境變量配置文件 export JAVA_HOME=/usr/java/latest export CLASSPATH=$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH [root@es-node-1 ~]# . /etc/profile.d/java.sh [root@es-node-1 ~]# java -version #檢查版本 java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2.安裝及配置elasticsearch

#關閉新郵件提示(重新登錄生效),很煩.......... [root@es-node1 ~]# echo "unset MAILCHECK">> /etc/profile #解壓elastic到/usr/local下 [root@es-node1 ~]# tar xf elasticsearch-6.3.2.tar.gz -C /usr/local/ [root@es-node1 ~]# cd /usr/local/ [root@es-node1 local]# ln -sv elasticsearch-6.3.2/ elasticsearch "elasticsearch" -> "elasticsearch-6.3.2/" [root@es-node1 local]# cd elasticsearch/config/ #配置JVM參數,最大不要超過32G,並且留一半內存給操作系統 [root@es-node1 config]# vim jvm.options -Xms400m -Xmx400m #配置elastic信息,其他節點需要修改node.name和network.host的值 [root@es-node1 config]# cp elasticsearch.yml elasticsearch.yml-bak [root@es-node1 config]# vim elasticsearch.yml [root@es-node1 config]# grep  "^[a-z]" elasticsearch.yml cluster.name: my-app node.name: node-1.107 path.data: /Data/es/data path.logs: /Data/es/logs bootstrap.memory_lock: true network.host: 192.168.1.107 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.1.107", "192.168.1.108","192.168.1.109"] discovery.zen.minimum_master_nodes: 2

設置打開文件描述符、進程數、內存限制

[root@es-node1 config]# vim /etc/security/limits.conf * soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
* soft memlock unlimited * hard memlock unlimited

配置內核參數

[root@es-node1 config]# vim /usr/lib/sysctl.d/50-default.conf vm.max_map_count=362144 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 [root@es-node1 config]# sysctl -p  #此命令可能不生效,可以重啟使配置生效

創建elastic用戶

[root@es-node1 ~]# useradd elastic [root@es-node1 ~]# echo "123456" |passwd --stdin elastic

創建相關目錄及授權

[root@es-node1 ~]# mkdir -pv /Data/es/ mkdir: 已創建目錄 "/Data" mkdir: 已創建目錄 "/Data/es/"
[root@es-node1 ~]# chown -R elastic:elastic /Data/es/ [root@es-node1 ~]# chown -R elastic:elastic /usr/local/elasticsearch-6.3.2/ #退出,重新登錄(可以的話最好重啟服務器,發現有些參數不重啟不生效) [root@es-node1 config]# exit

切換用戶並啟動服務

[root@es-node1 ~]# su - elastic [elastic@es-node1 ~]$ cd /usr/local/elasticsearch [elastic@es-node1 elasticsearch]$ nohup ./bin/elasticsearch > /tmp/elastic.log & #或者添加 -d/--daemonize 參數后台運行,日志文件在path.logs指定的目錄下 [1] 2426 [elastic@es-node1 elasticsearch]$ nohup: 忽略輸入重定向錯誤到標准輸出端 [elastic@es-node1 elasticsearch]$ tailf /tmp/elastic.log 

通過屏幕輸出可以看到服務啟動並通過自動發現方式添加集群內其他節點,並且node-1.107被選舉為master

檢查服務是否正常

[elastic@es-node1 elasticsearch]$ netstat -tnlp Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp 0      0 192.168.1.107:9200      0.0.0.0:*               LISTEN      2072/java #9200是http協議的RESTful接口 tcp 0      0 192.168.1.107:9300      0.0.0.0:*               LISTEN      2072/java #9300是tcp通訊端口,集群間和TCPClient都走的它 tcp 0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      - tcp6 0      0 :::22                   :::*                    LISTEN      -    
[elastic@es-node1 elasticsearch]$ curl http://192.168.1.107:9200
{ "name" : "node-1.107", "cluster_name" : "my-app", "cluster_uuid" : "Zk1xQhbyRlS6r99uAfk51Q", "version" : { "number" : "6.3.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "053779d", "build_date" : "2018-07-20T05:20:23.451332Z", "build_snapshot" : false, "lucene_version" : "7.3.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }

 三、安裝配置kibana

[root@kb-node1 ~]# tar xf kibana-6.3.2-linux-x86_64.tar.gz -C /usr/local/
[root@kb-node1 ~]# cd /usr/local/
[root@kb-node1 local]# ln -sv kibana-6.3.2-linux-x86_64/ kibana
"kibana" -> "kibana-6.3.2-linux-x86_64/"
[root@kb-node1 local]# cd kibana
[root@kb-node1 kibana]# vim config/kibana.yml
[root@kb-node1 kibana]# grep "^[a-z]" config/kibana.yml
server.port: 5601 #監聽的端口
server.host: "192.168.1.110" #監聽的地址
elasticsearch.url: "http://192.168.1.107:9200" #elasticsearch訪問的URL地址
[root@kb-node1 kibana]# ./bin/kibana & #啟動服務

我們可以看到啟動后服務監聽的地址,訪問這個URL

kibana主頁面,大致意思就是告訴我們kibana可以做哪些事

點擊Monitoring標簽可以開啟監控設置,並且我們的license是basic版本的(即基礎版)

四、安裝破解版x-pack   #本教程只供交流學習使用,切勿運用到商業用途。如有需要請購買官方正版授權

由於在elasticsearch在6.3版本之后x-pack是默認安裝好的,所以不再需要用戶自己去安裝

1.替換x-pack包,並重啟elasticsearch服務

[elastic@es-node1 elasticsearch]$ cd modules/x-pack/x-pack-core/
[elastic@es-node1 x-pack-core]$ ll x-pack-core-6.3.2.jar #用我們破解后的包進行替換
-rw-r--r-- 1 elastic elastic 1773114 8月 21 17:48 x-pack-core-6.3.2.jar
[elastic@es-node1 x-pack-core]$cd /usr/local/elasticsearch
[elastic@es-node1 elasticsearch]$ vim config/elasticsearch.yml
[elastic@es-node1 elasticsearch]$ tail -1 config/elasticsearch.yml
xpack.security.enabled: false #關閉x-pack

重啟elasticsearch服務,並把license.json上傳到服務器

[elastic@es-node1 elasticsearch]$ curl -XPUT -u elastic 'http://192.168.1.107:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json Enter host password for user 'elastic': #密碼為:change {"acknowledged":true,"license_status":"valid"}

在kibana上查看license

Platinum表示白金版  過期時間為2099 年12月31日,但是我們暫時還不能使用x-pack,因為白金版的x-pack需要SSL進行數據傳輸,所以我們需要先配置SSL

五、配置SSL並啟用x-apck

1.創建證書

[elastic@es-node1 elasticsearch]$ cd /usr/local/elasticsearch/bin/ [elastic@es-node1 bin]$ ./elasticsearch-certgen  

2.解壓證書

[elastic@es-node1 bin]$ mkdir /tmp/cert [elastic@es-node1 bin]$ mv cert.zip /tmp/cert/ [elastic@es-node1 bin]$ cd /tmp/cert/ [elastic@es-node1 cert]$ unzip cert.zip Archive: cert.zip creating: ca/ inflating: ca/ca.crt inflating: ca/ca.key creating: elasticsearch/ inflating: elasticsearch/elasticsearch.crt inflating: elasticsearch/elasticsearch.key [elastic@es-node1 cert]$ ll 總用量 8 drwxrwxr-x 2 elastic elastic   34 9月  20 13:47 ca -rw------- 1 elastic elastic 5157 9月  20 13:47 cert.zip drwxrwxr-x 2 elastic elastic   56 9月  20 13:47 elasticsearch [elastic@es-node1 cert]$ mv ca/* /usr/local/elasticsearch/config/ [elastic@es-node1 cert]$ mv elasticsearch/* /usr/local/elasticsearch/config/ [elastic@es-node1 cert]$ cd /usr/local/elasticsearch/config/ [elastic@es-node1 config]$ ll -rct #最后四個 總用量 48 -rw-rw---- 1 elastic elastic 0 9月 19 16:15 users_roles -rw-rw---- 1 elastic elastic 0 9月 19 16:15 users -rw-rw---- 1 elastic elastic 197 9月 19 16:15 roles.yml -rw-rw---- 1 elastic elastic 473 9月 19 16:15 role_mapping.yml -rw-rw---- 1 elastic elastic 6380 9月 19 16:15 log4j2.properties -rw-rw---- 1 elastic elastic 2942 9月 19 16:15 jvm.options -rw-r----- 1 elastic elastic 2853 9月 19 16:15 elasticsearch.yml-bak -rw-rw---- 1 elastic elastic 207 9月 19 16:20 elasticsearch.keystore -rw-rw---- 1 elastic elastic 2905 9月 20 13:27 elasticsearch.yml -rw-rw-r-- 1 elastic elastic 1671 9月 20 13:57 ca.key -rw-rw-r-- 1 elastic elastic 1200 9月 20 13:57 ca.crt -rw-rw-r-- 1 elastic elastic 1675 9月 20 13:57 elasticsearch.key -rw-rw-r-- 1 elastic elastic 1237 9月 20 13:57 elasticsearch.crt

將證書拷貝到其他節點,放入 usr/local/elasticsearch/config/ 目錄下

[elastic@es-node1 config]$ scp *.crt  *.key  192.168.1.108:/usr/local/elasticsearch/config/ [elastic@es-node1 config]$ scp *.crt  *.key  192.168.1.109:/usr/local/elasticsearch/config/

3.配置SSL,其他節點相同配置

[elastic@es-node1 config]$ vim elasticsearch.yml
[elastic@es-node1 config]$ tail elasticsearch.yml
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
xpack.security.enabled: true              #之前配置為false注意刪除或者修改
xpack.security.transport.ssl.enabled: true
xpack.ssl.key: elasticsearch.key
xpack.ssl.certificate: elasticsearch.crt
xpack.ssl.certificate_authorities: ca.crt

重啟elasticsearch服務

打開kibana web界面,發現無法登陸,並且無法使用用戶名密碼登錄,下一步我們需要配置kibana使用用戶名密碼登錄

4.創建elk集群相關用戶

[elastic@es-node1 bin]$ ./elasticsearch-setup-passwords -h  #查看命令幫助 Sets the passwords for reserved users Commands -------- auto - Uses randomly generated passwords #主要命令選項,表示系統將使用隨機字符串設置密碼 interactive - Uses passwords entered by a user #主要命令選項,表示使用用戶輸入的字符串作為密碼  Non-option arguments: command Option Description ------         -----------        
-h, --help show help -s, --silent show minimal output -v, --verbose show verbose output [elastic@es-node1 bin]$ ./elasticsearch-setup-passwords auto #為了演示效果,這里我們使用系統自動創建 Initiating the setup of passwords for reserved users elastic,kibana,logstash_system,beats_system. The passwords will be randomly generated and printed to the console. Please confirm that you would like to continue [y/N]y #選擇y Changed password for user kibana  #kibana角色和密碼 PASSWORD kibana = 4VXPRYIVibyAbjugK6Ok Changed password for user logstash_system #logstash角色和密碼 PASSWORD logstash_system = 2m4uVdSzDzpt9OEmNin5 Changed password for user beats_system #beast角色和密碼 PASSWORD beats_system = O8VOzAaD3fO6bstCGDyQ Changed password for user elastic #elasticsearch角色和密碼 PASSWORD elastic = 1TWVMeN8tiBy917thUxq

#可以先將以上用戶和密碼保存下來,具體的用戶介紹見最后

配置kibana添加elasticsearch用戶認證

[root@kb-node1 ~]# vim /usr/local/kibana/config/kibana.yml [root@kb-node1 ~]# grep "^elastic"  /usr/local/kibana/config/kibana.yml elasticsearch.url: "http://192.168.1.107:9200" elasticsearch.username: "elastic" elasticsearch.password: "1TWVMeN8tiBy917thUxq" #就是上一步創建的elastic的賬號和密碼

重啟kibana,重啟后打開kibana web頁面

可以使用用戶名和密碼登錄了(使用之前創建的用戶名和密碼登錄即可),這里我們選擇elastic用戶登錄

左下角可以看到我們的用戶名,到此,我們所有的配置都已經完成了

 

#注:x-pack的內置用戶

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM