Elasticsearch配置安裝


跨域

 elasticsearch-head連接es時會提示連接失敗,有可能就是沒有開啟跨域

http.cors.enabled 是否支持跨域,默認為false
http.cors.allow-origin 當設置允許跨域,默認為*,表示支持所有域名,如果我們只是允許某些網站能訪問,那么可以使用正則表達式。比如只允許本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.max-age 瀏覽器發送一個“預檢”OPTIONS請求,以確定CORS設置。最大年齡定義多久的結果應該緩存。默認為1728000(20天)
http.cors.allow-methods 允許跨域的請求方式,默認OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers 跨域允許設置的頭信息,默認為X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials 是否返回設置的跨域Access-Control-Allow-Credentials頭,如果設置為true,那么會返回給客戶端。

 

x-pack

x-pack監控作用 

功能


圖形展示     xpack.graph.enabled       只使用於kibana組件
報表統計     pack.reporting.enabled   只使用於kibana組件
報警通知     xpack.watcher.enabled   只適用於elasticsearch組件
安全認證     xpack.security.enabled   適用於elk的三個組件
監控跟蹤     xpack.monitoring.enabled    適用於elk的三個組件
設備資源分配   xpack.ml.enabled      適用於elasticsearch和kibana組件

#設置                     #描述
xpack.graph.enabled       #設置為false以禁用X-Pack圖形功能。
xpack.ml.enabled          #設置為false以禁用X-Pack機器學習功能。
xpack.monitoring.enabled  #設置為false以禁用X-Pack監視功能。
xpack.reporting.enabled   #設置為false以禁用X-Pack報告功能。
xpack.security.enabled    #設置為false以禁用X-Pack安全功能。
xpack.watcher.enabled     #設置為false以禁用Watche
http.cors.enabled 是否支持跨域,默認為false
http.cors.allow-origin 當設置允許跨域,默認為*,表示支持所有域名,如果我們只是允許某些網站能訪問,那么可以使用正則表達式。比如只允許本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.max-age 瀏覽器發送一個“預檢”OPTIONS請求,以確定CORS設置。最大年齡定義多久的結果應該緩存。默認為1728000(20天)
http.cors.allow-methods 允許跨域的請求方式,默認OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers 跨域允許設置的頭信息,默認為X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials 是否返回設置的跨域Access-Control-Allow-Credentials頭,如果設置為true,那么會返回給客戶端

node.master: false 這樣這個節點就不會成為master節點 

 

 

監視 數據集合

這些xpack.monitoring.collection設置控制如何從Elasticsearch節點收集數據

xpack.monitoring.collection.enabled: true 啟用

xpack.monitoring.collection.interval: 30s  間隔時間、

https://segmentfault.com/a/1190000016824141?utm_source=tag-newest

https://www.elastic.co/guide/en/elasticsearch/reference/6.3/monitoring-settings.html

 

開啟ssl

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

 

開啟跨越

 

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

 

開啟監控

xpack.monitoring.enabled: true
xpack.monitoring.collection.enabled: true
xpack.monitoring.collection.interval: 30s

 

 

 

# 配置X-Pack
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

 

ES插件

官網下載安裝包 

https://www.elastic.co/cn/

然后安裝jdk  node.js環境

https://www.cnblogs.com/wudequn/p/11147869.html

https://www.cnblogs.com/wudequn/p/11072561.html

官方文檔

https://www.elastic.co/cn/blog/security-for-elasticsearch-is-now-free

https://www.elastic.co/guide/cn/index.html

 

 https://discuss.elastic.co

 

https://github.com/elastic

 

一、IK分詞

https://github.com/medcl/elasticsearch-analysis-ik/releases

下載后,加壓,文件夾重命名  ik,放在plugins目錄下。重啟es

查看es安裝的插件 http://192.168.31.102:9200/_cat/plugins

 

安裝ES 7.1.*

 一、修改配置文件

配置文檔

https://www.elastic.co/guide/en/elasticsearch/reference/7.x/important-settings.html

https://www.cnblogs.com/wudequn/p/12933855.html

https://www.cnblogs.com/wudequn/p/12944822.html

 

network.host: 0.0.0.0
http.port: 9200

discovery.seed_hosts: ["node1"]    集群發現:配置該節點會與哪些候選地址進行通信,hostname,ip ,ip+port
cluster.initial_master_nodes: ["node-1"]   master節點:手動指定可以成為 mater 的所有節點的 name 或者 ip,這些配置將會在第一次選舉中進行計算
這幾個要一起配置,不然報錯(可以看錯誤日志)

 

 

主節點配置

# 配置X-Pack
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true


子節點配置

打開另一個新的ES節點的目錄 我的是下圖中的 node,這是master的一個副本,只是文件夾名不一樣(子節點不用設置密碼了,主節點設置了)

修改node的config/elasticsearch.yml
除了和master相同的安全配置之外,還要添加
node.master: false 這樣這個節點就不會成為master節點

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 #此節點不會成為主節點 node.master: false

 

二、安裝證書

在bin下執行 elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

 

三、安裝ES服務

(安裝方法1)控制台啟動ES  或者通過下面的服務啟動ES

 

(安裝方法2)或者安裝ES服務

 

elasticsearch-service.bat后面還可以執行這些命令 
install: 安裝Elasticsearch服務 
remove: 刪除已安裝的Elasticsearch服務(如果啟動則停止服務) 
start: 啟動Elasticsearch服務(如果已安裝) 
stop: 停止服務(如果啟動) 
manager:啟動GUI來管理已安裝的服務

 

 

或者通過nssm

四、生成密碼

bin下執行elasticsearch-setup-passwords auto

密碼將隨機生成並打印到控制台 按下 y 確認

 

密碼手動生成(推薦)

elasticsearch-setup-passwords interactive 

這個命令可以是手動設置密碼

 

 

 

用戶等等

  • elastic 賬號:擁有 superuser 角色,是內置的超級用戶。
  • kibana 賬號:擁有 kibana_system 角色,用戶 kibana 用來連接 elasticsearch 並與之通信。Kibana 服務器以該用戶身份提交請求以訪問集群監視 API 和 .kibana 索引。不能訪問 index。
  • logstash_system 賬號:擁有 logstash_system 角色。用戶 Logstash 在 Elasticsearch 中存儲監控信息時使用

 

修改密碼

curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'

curl -XPUT -u elastic 'http://localhost:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "yourpasswd" }'

 

五、測試

打開時候需要輸入賬號密碼  就是前面自動生成的賬號密碼。

如果服務沒有起來就查看錯誤日志。

 

 

六、安裝es-head

alsticsearch只是后端提供各種API,那么怎么直觀的使用它呢?Elasticsearch-head將是一款專門針對於Elasticsearch的客戶端工具(客戶端最好使用kibana)

Elasticsearch-head安裝包,下載地址:https://github.com/mobz/elasticsearch-head

修改es-head目錄下面的Gruntfile.js文件,添加hostname:’*'

 

1、首先要安裝node.js:安裝教程

2、cmd執行 npm install -g grunt-cli 安裝grunt ,安裝完成后執行grunt -version查看是否安裝成功,會顯示安裝的版本號

3、在es-head目錄下cmd執行  grunt server 或者npm run start 運行head插件

 

如果設置了es安全

則登錄

http://localhost:9100/?auth_user=elastic&auth_password=caKBawShu0Pm7BsjSFbd 

 

 

 

 

集群搭建

1、主節點

# 集群名稱
cluster.name: "es_cluster"
 
# 節點名稱,這兒我直接取名為 master
node.name: master
# 是否可以成為master節點
node.master: true
# 是否允許該節點存儲數據,默認開啟
node.data: true
 
# 網絡綁定,這里我綁定 0.0.0.0,支持外網訪問
network.host: 0.0.0.0
 
# 設置對外服務的http端口,默認為9200
http.port: 9200
 
# 支持跨域訪問
http.cors.enabled: true
http.cors.allow-origin: "*"
 
# 設置節點間交互的tcp端口,默認是9300
transport.tcp.port: 9300
 
# 手動指定可以成為 mater 的所有節點的 name 或者 ip,這些配置將會在第一次選舉中進行計算
cluster.initial_master_nodes: ["127.0.0.1"]

 

2、從節點1

# 集群名稱,處於同一個集群所有節點,該名稱必須相同
cluster.name: "es_cluster"
 
# 節點名稱,這兒我直接取名為 slave1
node.name: slave1
# 是否可以成為master節點
node.master: false
# 是否允許該節點存儲數據,默認開啟
node.data: true
 
# 網絡綁定,這里我綁定 0.0.0.0,支持外網訪問
network.host: 0.0.0.0
 
# 設置對外服務的http端口,默認為9200,這里我們修改為 9201,不然會有端口沖突
http.port: 9201
 
# 支持跨域訪問
http.cors.enabled: true
http.cors.allow-origin: "*"
 
# 集群發現  主節點中配過這個
discovery.seed_hosts: ["127.0.0.1:9300"]

3、從節點2

# 集群名稱,處於同一個集群所有節點,該名稱必須相同
cluster.name: "es_cluster"
 
# 節點名稱,這兒我直接取名為 slave2
node.name: slave2
# 是否可以成為master節點
node.master: false
# 是否允許該節點存儲數據,默認開啟
node.data: true
 
# 網絡綁定,這里我綁定 0.0.0.0,支持外網訪問
network.host: 0.0.0.0
 
# 設置對外服務的http端口,默認為9200,這里我們修改為 9201,不然會有端口沖突
http.port: 9202
 
# 支持跨域訪問
http.cors.enabled: true
http.cors.allow-origin: "*"
 
# 集群發現
discovery.seed_hosts: ["127.0.0.1:9300"]

 

 

 

學習視頻

https://www.elastic.co/cn/webinars/getting-started-elasticsearch?elektra=home&storm=sub1

https://blog.csdn.net/MicoMecy/article/details/90642163

https://www.jianshu.com/p/5e65e04b4b64


免責聲明!

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



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