1. 程式人生 > >elasticsearch本地叢集搭建及遠端伺服器搭建注意事項及kibana配置

elasticsearch本地叢集搭建及遠端伺服器搭建注意事項及kibana配置

elasticsearch本地叢集

首先下載解壓elasticsearch壓縮包,我使用的版本為elasticsearch-6.3.2-2,解壓後的路徑為E:\elasticsearch-6.3.2-2。

在解壓目錄下有config資料夾,裡面有elasticsearch.yml檔案,這個即為我們需要修改的配置檔案。

修改以下配置

# 這個引數必須設定  此引數是用來允許單機允許多個例項,預設不允許
node.max_local_storage_nodes: 32

# 叢集名稱 同一個叢集裡的此引數要一致
cluster.name: wk1

# 節點名稱  統一叢集的節點之間需要不一致
node.name: node-1

# 此節點為master候選節點
node.master: true
# 此節點為data節點
node.data: true

### es的節點分為三類  client  master data  
### client的master和data都是false, 作用類似於nginx的請求轉發
### master負責結果聚合等工作,壓力較大  所以不建議節點同時為master和data
### data節點儲存分片負責部分計算

# data存放的路徑
path.data: F:\\es\\data
# log存放的路徑
path.logs: F:\\es\\logs

# 此節點對外的ip  本地直接寫127.0.0.1即可
network.host: s3.wk.com
# 對外暴露的http訪問埠
http.port: 9201
# es內部通訊埠  單播使用
transport.tcp.port: 9301
# 關閉組播
discovery.zen.ping.multicast.enabled: false
# 單播訪問的地址 域名直接改成127.0.0.1即可  或者修改下本機host將127.0.0.1對映到多個域名,我是這麼做的  我的有一個client 3個master  所以配了四個地址
discovery.zen.ping.unicast.hosts: ["s1.wk.com:9301","s2.wk.com:9302","s3.wk.com:9303","s4.wk.com:9304"]

# CORS跨域訪問設定
http.cors.enabled: true
http.cors.allow-origin: "*"

# 設定master選舉需要贊同的最小節點數
# 值得計算方式為 master候選節點數除2加1
# 例如 node.master值為true的節點數量為5 值即為(5/2)+1 = 3
discovery.zen.minimum_master_nodes: 2

修改完配置檔案後,將壓縮目錄複製多份,然後修改對應配置檔案的node.name、http.port、transport.tcp.port、discovery.zen.ping.unicast.hosts即可,node.master和node.data兩個引數看需要修改,預設值都是true。

PS:
1、http.port、transport.tcp.port、discovery.zen.ping.unicast.hosts也可以不設定,es會自動選取合適的埠來啟動,預設使用多播方式通訊,這種方式在本地或者VPC環境下可以使用,但是不建議。
2、network.host這個引數和redis的host引數一樣,根據填寫的IP來限制訪問許可權,例如127.0.0.1那麼就只有本地可以訪問,192等內網IP那麼就只有內網能訪問,寫公網IP的話外網才能訪問。當我們在遠端伺服器上搭建服務時,如果設定的不是外網IP,很可能就是無法訪問的。遇到這個問題我們可以通過使用netstat命令:netstat -tunlp | grep elasticsearch來檢視ip與埠的繫結使用情況來檢查。

kibana配置

server.port: 預設值: 5601 Kibana 由後端伺服器提供服務,該配置指定使用的埠號。

server.host: 預設值: "localhost" 指定後端伺服器的主機地址。限制可訪問的ip地址

server.name: 預設值: "您的主機名" Kibana 例項對外展示的名稱。

server.defaultRoute: 預設值: "/app/kibana" Kibana 的預設路徑,該配置項可改變 Kibana 的登入頁面。

elasticsearch.url: 預設值: "http://localhost:9200" 用來處理所有查詢的 Elasticsearch 例項的 URL 。

elasticsearch.preserveHost: 預設值: true 該設定項的值為 true 時,Kibana 使用 server.host 設定的主機名,該設定項的值為 false 時,Kibana 使用主機的主機名來連線 Kibana 例項。(域名控制)

kibana.index: 預設值: ".kibana" Kibana 使用 Elasticsearch 中的索引來儲存儲存的檢索,視覺化控制元件以及儀表板。如果沒有索引,Kibana 會建立一個新的索引。

kibana.defaultAppId: 預設值: "discover" 預設載入的應用。

elasticsearch.username: 和 elasticsearch.password:  Elasticsearch 設定了基本的許可權認證,該配置項提供了使用者名稱和密碼,用於 Kibana 啟動時維護索引。Kibana 使用者仍需要 Elasticsearch 由 Kibana 服務端代理的認證。

pid.file: 指定 Kibana 的程序 ID 檔案的路徑。

logging.dest: 預設值: stdout 指定 Kibana 日誌輸出的檔案。
logging.silent: 預設值: false 該值設為 true 時,禁止所有日誌輸出。
logging.quiet: 預設值: false 該值設為 true 時,禁止除錯誤資訊除外的所有日誌輸出。
logging.verbose: 預設值: false 該值設為 true 時,記下所有事件包括系統使用資訊和所有請求的日誌。

ops.interval: 預設值: 5000 設定系統和程序取樣間隔,單位微妙,最小值100。