elasticsearch本地叢集搭建及遠端伺服器搭建注意事項及kibana配置
阿新 • • 發佈:2019-02-19
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。