Elasticsearch7學習筆記之快速搭建一個ES7測試集群(xpack, kibana)


0x00 概述

最近因為測試需求,需要快速搭建一個ES集群,要求:

'''

1. 開啟xpack

2. 開啟kibana,導入測試數據集

3. ES和kibana版本為7.13.2

4. 集群為3個節點,master節點1個,data節點3個(master節點角色為master+data)
'''

 

0x01 集群部署

1.1 新增es專用用戶和組並開啟權限(3個節點都要操作)

es是無法用root用戶開啟的,所以需要新增es專用用戶和組

groupadd es         # 新建es用戶組
useradd -g es es    # 新建es用戶,屬於es組

給es用戶開啟權限

vim /etc/sudoers

新增一行

# 在 root ALL=(ALL)       ALL下面新增一行

es  ALL=(ALL)       ALL

# 使用wq!保存退出

 

1.2 修改節點系統配置(3個節點都要操作)

#修改elastic系統文件打開數
cat << EOF >> /etc/security/limits.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096 EOF #修改無法分配內存問題 cat << EOF >> /etc/security/limits.conf es soft memlock unlimited es hard memlock unlimited EOF

[root@localhost ~]# cd /etc/security/limits.d
[root@localhost limits.d]# ll
total 4
-rw-r--r--. 1 root root 191 Nov  6  2016 20-nproc.conf
 
[root@localhost limits.d]# vi 20-nproc.conf 
 
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
 
*          soft    nproc     4096
root       soft    nproc     unlimited
~                                                                                                                            
~  
將上面內容的*號改成用戶名


 
# See rhbz #432903 for reasoning.
 
es   soft    nproc     4096
root       soft    nproc     unlimited
#修改max_map_count值 sysctl -w vm.max_map_count=655360 echo 'vm.max_map_count=655360' >> /etc/sysctl.conf sysctl -p # 修改jvm,設置內存為機器內存的50%(測試節點為2g內存) vim elasticsearch-7.13.2/config/jvm.options -Xms1g -Xmx1g

 

1.3 准備安裝包

    # 將下載的安裝包上傳到node1根目錄
    [root@node1 /]# cd /
    
    # 解壓
    [root@node1 /]# tar -zvxf elasticsearch-7.13.2-linux-x86_64.tar.gz 

    # 安裝包改為es用戶所有
    [root@node1 /]# chown -R es:es elasticsearch-7.13.2 

    # 將安裝包拷貝到節點2和節點3的根目錄
    [root@node1 /]# scp -r  elasticsearch-7.13.2  root@$node2:/
    [root@node1 /]# scp -r  elasticsearch-7.13.2  root@$node3:/

 

1.4 修改配置文件

    # 切換到es用戶
    [root@node1 /]# su - es
    
    # 修改es配置文件
    [es@node1 /]# vim  /elasticsearch-7.13.2/conf/elasticsearch.yml

修改節點1的elastisearch.yml為

    cluster.name: elastic_test
    node.name: test_node1
    node.roles: [master, data]

    path.data: /app/data  # 使用chown -R命令改為es組
    path.logs: /app/logs   # 使用chown -R命令改為es組
    bootstrap.memory_lock: false
    http.port: 19200
    discovery.seed_hosts: ["192.168.59.128","192.168.59.129","192.168.59.130"]
    cluster.initial_master_nodes: ["192.168.59.128"]

    # 以下為打開xpack,加密開啟TLS集群通信認證
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

 

修改節點2的elastisearch.yml為

    cluster.name: elastic_test
    node.name: test_node2

    node.roles: [data]

    path.data: /app/data  # 使用chown -R命令改為es組
    path.logs: /app/logs   # 使用chown -R命令改為es組
    bootstrap.memory_lock: false
    http.port: 19200
    discovery.seed_hosts: ["192.168.59.128","192.168.59.129","192.168.59.130"]
    cluster.initial_master_nodes: ["192.168.59.128"]

    # 以下為打開xpack,加密開啟TLS集群通信認證
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

 

修改節點3的elastisearch.yml為

    cluster.name: elastic_test
    node.name: test_node3

    node.roles: [data]

    path.data: /app/data  # 使用chown -R命令改為es組
    path.logs: /app/logs   # 使用chown -R命令改為es組
    bootstrap.memory_lock: false
    http.port: 19200
    discovery.seed_hosts: ["192.168.59.128","192.168.59.129","192.168.59.130"]
    cluster.initial_master_nodes: ["192.168.59.128"]

    # 以下為打開xpack,加密開啟TLS集群通信認證
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

 

0x02 生成集群TLS認證用的證書

先不要着急啟動集群,使用es自帶的工具生成證書

    # 在任意一個節點分別執行下面兩個命令,一路直接enter,不要輸入密碼
    /elasticsearch-7.13.2/bin/elasticsearch-certutil ca
    /elasticsearch-7.13.2/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

執行上面兩個命令后,發現在elasticsearch-7.13.2目錄多出來兩個文件(7.13.2版本文件生成后放到了安裝文件的根目錄)

elastic-certificates.p12
elastic-stack-ca.p12

將這兩個文件分別拷貝到各自節點的以下目錄

/elasticsearch-7.13.2/config

 

0x03 啟動集群

注意切換到es用戶,執行啟動操作

su - es

啟動集群,在各個節點分別執行下面命令,暫時不加 -d后台操作,方便觀察啟動狀態,有報錯可以第一時間看到

/elasticsearch-7.13.2/bin/elasticsearch

 

0x04 設置集群訪問用戶名和密碼

使用es自帶的工具生成訪問用戶名和密碼,用於集群訪問控制

4.1 使用auto參數會隨機生成密碼

在Master節點執行以下命令

/elasticsearch-7.13.2/bin/elasticsearch-setup-password auto 

需要將隨機生成的密碼做好保存!

    [es@node1 ~]$ /elasticsearch-7.13.2/bin/elasticsearch-setup-passwords auto
    Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
    The passwords will be randomly generated and printed to the console.
    Please confirm that you would like to continue [y/N]y       #確認隨機生成密碼
    Changed password for user apm_system
    PASSWORD apm_system = g7JOAUBi4jJh7PAaXdAN
    Changed password for user kibana                            #kibana連接es的用戶名及密碼
    PASSWORD kibana = 0B3EINVicVRbsnyJHk99
    Changed password for user logstash_system                   #logstash連接es的用戶名及密碼
    PASSWORD logstash_system = b34Aradp6gSqJMe3SbXK
    Changed password for user beats_system                      #beats連接es的用戶名及密碼
    PASSWORD beats_system = EWjwNoDZILqCOCjCEjSc
    Changed password for user remote_monitoring_user            #遠程監控es的用戶名及密碼
    PASSWORD remote_monitoring_user = N92vKgJ4AHrSfhg5mFUK
    Changed password for user elastic                           #應用程序連接es API的用戶名及密碼
    PASSWORD elastic = 26tBktGolYCyZD2pPISW

4.2 使用interactive命令手動設置密碼

/elasticsearch-7.13.2/bin/elasticsearch-setup-password interactive

 

0x05 驗證集群訪問用戶名和密碼

 [es@node1 ~]$ curl -u elastic:26tBktGolYCyZD2pPISW -XGET 'http://192.168.59.128:19200/_cat/nodes?v'
    ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
    192.168.59.128           29          68   2    0.04    0.17     0.26 dilm      -      elastic_node1
    192.168.59.129           22          68   1    0.04    0.17     0.26 dilm      *      elastic_node2
    192.168.59.130           28          68   1    0.04    0.17     0.26 dilm      -      elastic_node3

 

0x06 部署kibana

建議將kibana部署到一台配置較低的機器,不要與es節點的機器混用,避免kibana和es節點爭搶資源,導致相互拖累

6.1 開集群監控開關

在kibana dev輸入如下:

PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true
  }
}

 

6.2 修改Kibana配置文件

    [root@kibana ~]$ vim /kibana-7.13.2/config/kibana.yml
    server.port: 15601
    server.host: "192.168.59.131"
    server.name: "kibana"
    elasticsearch.hosts: "http://192.168.59.131:19200"
    kibana.index: ".kibana"
    logging.verbose: true
    elasticsearch.username: "kibana_system"                        #指定剛使用elasticsearch生成的kibana連接的用戶名及密碼
    elasticsearch.password: "0B3EINVicVRbsnyJHk99"

6.3 啟動並kibana

    [root@kibana ~]$ nohup /kibana-7.13.2/bin/kibana --allow-root &

6.4 導入樣本數據

在瀏覽器打開kibana web服務

http://192.168.59.131:15601

根據使用引導,分別導入3類測試數據

 

0x07 參考

https://abcops.cn/1192.html

https://blog.csdn.net/qq_20143059/article/details/112992016

 


免責聲明!

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



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